---
name: "fido_bio_dev_get_template_array"
section: "3"
platform: "linux"
package: "libfido2"
version: "1.17.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/fido_bio_dev_get_info"
---

# fido\_bio\_dev\_get\_template\_array(3)

FIDO2 biometric authenticator API

Part of [fido\_bio\_dev\_get\_info(3)](/fido_bio_dev_get_info/3.md).

## NAME

**fido\_bio\_dev\_get\_info**, **fido\_bio\_dev\_enroll\_begin**, **fido\_bio\_dev\_enroll\_continue**, **fido\_bio\_dev\_enroll\_cancel**, **fido\_bio\_dev\_enroll\_remove**, **fido\_bio\_dev\_get\_template\_array**, **fido\_bio\_dev\_set\_template\_name** – FIDO2 biometric authenticator API

## SYNOPSIS

**#include \<fido.h\>**

**#include \<fido/bio.h\>**

*int*\

**fido\_bio\_dev\_get\_info**(*fido\_dev\_t \*dev*, *fido\_bio\_info\_t \*info*);

*int*\

**fido\_bio\_dev\_enroll\_begin**(*fido\_dev\_t \*dev*, *fido\_bio\_template\_t \*template*, *fido\_bio\_enroll\_t \*enroll*, *uint32\_t timeout\_ms*, *const char \*pin*);

*int*\

**fido\_bio\_dev\_enroll\_continue**(*fido\_dev\_t \*dev*, *const fido\_bio\_template\_t \*template*, *fido\_bio\_enroll\_t \*enroll*, *uint32\_t timeout\_ms*);

*int*\

**fido\_bio\_dev\_enroll\_cancel**(*fido\_dev\_t \*dev*);

*int*\

**fido\_bio\_dev\_enroll\_remove**(*fido\_dev\_t \*dev*, *const fido\_bio\_template\_t \*template*, *const char \*pin*);

*int*\

**fido\_bio\_dev\_get\_template\_array**(*fido\_dev\_t \*dev*, *fido\_bio\_template\_array\_t \*template\_array*, *const char \*pin*);

*int*\

**fido\_bio\_dev\_set\_template\_name**(*fido\_dev\_t \*dev*, *const fido\_bio\_template\_t \*template*, *const char \*pin*);

## DESCRIPTION

The functions described in this page allow biometric templates on a FIDO2 authenticator to be listed, created, removed, and customised. Please note that not all FIDO2 authenticators support biometric enrollment. For a description of the types involved, please refer to [fido\_bio\_info\_new(3)](/fido_bio_info_new/3.md), [fido\_bio\_enroll\_new(3)](/fido_bio_enroll_new/3.md), and [fido\_bio\_template(3)](/fido_bio_template/3.md).

The **fido\_bio\_dev\_get\_info**() function populates *info* with sensor information from *dev*.

The **fido\_bio\_dev\_enroll\_begin**() function initiates a biometric enrollment on *dev*, instructing the authenticator to wait *timeout\_ms* milliseconds. On success, *template* and *enroll* will be populated with the newly created template's information and enrollment status, respectively.

The **fido\_bio\_dev\_enroll\_continue**() function continues an ongoing enrollment on *dev*, instructing the authenticator to wait *timeout\_ms* milliseconds. On success, *enroll* will be updated to reflect the status of the biometric enrollment.

The **fido\_bio\_dev\_enroll\_cancel**() function cancels an ongoing enrollment on *dev*.

The **fido\_bio\_dev\_enroll\_remove**() function removes *template* from *dev*.

The **fido\_bio\_dev\_get\_template\_array**() function populates *template\_array* with the templates currently enrolled on *dev*.

The **fido\_bio\_dev\_set\_template\_name**() function sets the friendly name of *template* on *dev*.

## RETURN VALUES

The error codes returned by **fido\_bio\_dev\_get\_info**(), **fido\_bio\_dev\_enroll\_begin**(), **fido\_bio\_dev\_enroll\_continue**(), **fido\_bio\_dev\_enroll\_cancel**(), **fido\_bio\_dev\_enroll\_remove**(), **fido\_bio\_dev\_get\_template\_array**(), and **fido\_bio\_dev\_set\_template\_name**() are defined in ⟨fido/err.h⟩. On success, FIDO\_OK is returned.

## SEE ALSO

[fido\_bio\_enroll\_new(3)](/fido_bio_enroll_new/3.md), [fido\_bio\_info\_new(3)](/fido_bio_info_new/3.md), [fido\_bio\_template(3)](/fido_bio_template/3.md)
