10afa8e06SEd Maste.\" Copyright (c) 2019 Yubico AB. All rights reserved. 2*2ccfa855SEd Maste.\" 3*2ccfa855SEd Maste.\" Redistribution and use in source and binary forms, with or without 4*2ccfa855SEd Maste.\" modification, are permitted provided that the following conditions are 5*2ccfa855SEd Maste.\" met: 6*2ccfa855SEd Maste.\" 7*2ccfa855SEd Maste.\" 1. Redistributions of source code must retain the above copyright 8*2ccfa855SEd Maste.\" notice, this list of conditions and the following disclaimer. 9*2ccfa855SEd Maste.\" 2. Redistributions in binary form must reproduce the above copyright 10*2ccfa855SEd Maste.\" notice, this list of conditions and the following disclaimer in 11*2ccfa855SEd Maste.\" the documentation and/or other materials provided with the 12*2ccfa855SEd Maste.\" distribution. 13*2ccfa855SEd Maste.\" 14*2ccfa855SEd Maste.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 15*2ccfa855SEd Maste.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 16*2ccfa855SEd Maste.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 17*2ccfa855SEd Maste.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 18*2ccfa855SEd Maste.\" HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19*2ccfa855SEd Maste.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 20*2ccfa855SEd Maste.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21*2ccfa855SEd Maste.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22*2ccfa855SEd Maste.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23*2ccfa855SEd Maste.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 24*2ccfa855SEd Maste.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25*2ccfa855SEd Maste.\" 26*2ccfa855SEd Maste.\" SPDX-License-Identifier: BSD-2-Clause 270afa8e06SEd Maste.\" 280afa8e06SEd Maste.Dd $Mdocdate: September 13 2019 $ 290afa8e06SEd Maste.Dt FIDO_BIO_DEV_GET_INFO 3 300afa8e06SEd Maste.Os 310afa8e06SEd Maste.Sh NAME 320afa8e06SEd Maste.Nm fido_bio_dev_get_info , 330afa8e06SEd Maste.Nm fido_bio_dev_enroll_begin , 340afa8e06SEd Maste.Nm fido_bio_dev_enroll_continue , 350afa8e06SEd Maste.Nm fido_bio_dev_enroll_cancel , 360afa8e06SEd Maste.Nm fido_bio_dev_enroll_remove , 370afa8e06SEd Maste.Nm fido_bio_dev_get_template_array , 380afa8e06SEd Maste.Nm fido_bio_dev_set_template_name 390afa8e06SEd Maste.Nd FIDO2 biometric authenticator API 400afa8e06SEd Maste.Sh SYNOPSIS 410afa8e06SEd Maste.In fido.h 420afa8e06SEd Maste.In fido/bio.h 430afa8e06SEd Maste.Ft int 440afa8e06SEd Maste.Fn fido_bio_dev_get_info "fido_dev_t *dev" "fido_bio_info_t *info" 450afa8e06SEd Maste.Ft int 460afa8e06SEd Maste.Fn 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" 470afa8e06SEd Maste.Ft int 480afa8e06SEd Maste.Fn fido_bio_dev_enroll_continue "fido_dev_t *dev" "const fido_bio_template_t *template" "fido_bio_enroll_t *enroll" "uint32_t timeout_ms" 490afa8e06SEd Maste.Ft int 500afa8e06SEd Maste.Fn fido_bio_dev_enroll_cancel "fido_dev_t *dev" 510afa8e06SEd Maste.Ft int 520afa8e06SEd Maste.Fn fido_bio_dev_enroll_remove "fido_dev_t *dev" "const fido_bio_template_t *template" "const char *pin" 530afa8e06SEd Maste.Ft int 540afa8e06SEd Maste.Fn fido_bio_dev_get_template_array "fido_dev_t *dev" "fido_bio_template_array_t *template_array" "const char *pin" 550afa8e06SEd Maste.Ft int 560afa8e06SEd Maste.Fn fido_bio_dev_set_template_name "fido_dev_t *dev" "const fido_bio_template_t *template" "const char *pin" 570afa8e06SEd Maste.Sh DESCRIPTION 580afa8e06SEd MasteThe functions described in this page allow biometric 590afa8e06SEd Mastetemplates on a FIDO2 authenticator to be listed, created, 600afa8e06SEd Masteremoved, and customised. 610afa8e06SEd MastePlease note that not all FIDO2 authenticators support biometric 620afa8e06SEd Masteenrollment. 630afa8e06SEd MasteFor a description of the types involved, please refer to 640afa8e06SEd Maste.Xr fido_bio_info_new 3 , 650afa8e06SEd Maste.Xr fido_bio_enroll_new 3 , 660afa8e06SEd Masteand 670afa8e06SEd Maste.Xr fido_bio_template 3 . 680afa8e06SEd Maste.Pp 690afa8e06SEd MasteThe 700afa8e06SEd Maste.Fn fido_bio_dev_get_info 710afa8e06SEd Mastefunction populates 720afa8e06SEd Maste.Fa info 730afa8e06SEd Mastewith sensor information from 740afa8e06SEd Maste.Fa dev . 750afa8e06SEd Maste.Pp 760afa8e06SEd MasteThe 770afa8e06SEd Maste.Fn fido_bio_dev_enroll_begin 780afa8e06SEd Mastefunction initiates a biometric enrollment on 790afa8e06SEd Maste.Fa dev , 800afa8e06SEd Masteinstructing the authenticator to wait 810afa8e06SEd Maste.Fa timeout_ms 820afa8e06SEd Mastemilliseconds. 830afa8e06SEd MasteOn success, 840afa8e06SEd Maste.Fa template 850afa8e06SEd Masteand 860afa8e06SEd Maste.Fa enroll 870afa8e06SEd Mastewill be populated with the newly created template's 880afa8e06SEd Masteinformation and enrollment status, respectively. 890afa8e06SEd Maste.Pp 900afa8e06SEd MasteThe 910afa8e06SEd Maste.Fn fido_bio_dev_enroll_continue 920afa8e06SEd Mastefunction continues an ongoing enrollment on 930afa8e06SEd Maste.Fa dev , 940afa8e06SEd Masteinstructing the authenticator to wait 950afa8e06SEd Maste.Fa timeout_ms 960afa8e06SEd Mastemilliseconds. 970afa8e06SEd MasteOn success, 980afa8e06SEd Maste.Fa enroll 990afa8e06SEd Mastewill be updated to reflect the status of the biometric 1000afa8e06SEd Masteenrollment. 1010afa8e06SEd Maste.Pp 1020afa8e06SEd MasteThe 1030afa8e06SEd Maste.Fn fido_bio_dev_enroll_cancel 1040afa8e06SEd Mastefunction cancels an ongoing enrollment on 1050afa8e06SEd Maste.Fa dev . 1060afa8e06SEd Maste.Pp 1070afa8e06SEd MasteThe 1080afa8e06SEd Maste.Fn fido_bio_dev_enroll_remove 1090afa8e06SEd Mastefunction removes 1100afa8e06SEd Maste.Fa template 1110afa8e06SEd Mastefrom 1120afa8e06SEd Maste.Fa dev . 1130afa8e06SEd Maste.Pp 1140afa8e06SEd MasteThe 1150afa8e06SEd Maste.Fn fido_bio_dev_get_template_array 1160afa8e06SEd Mastefunction populates 1170afa8e06SEd Maste.Fa template_array 1180afa8e06SEd Mastewith the templates currently enrolled on 1190afa8e06SEd Maste.Fa dev . 1200afa8e06SEd Maste.Pp 1210afa8e06SEd MasteThe 1220afa8e06SEd Maste.Fn fido_bio_dev_set_template_name 1230afa8e06SEd Mastefunction sets the friendly name of 1240afa8e06SEd Maste.Fa template 1250afa8e06SEd Masteon 1260afa8e06SEd Maste.Fa dev . 1270afa8e06SEd Maste.Sh RETURN VALUES 1280afa8e06SEd MasteThe error codes returned by 1290afa8e06SEd Maste.Fn fido_bio_dev_get_info , 1300afa8e06SEd Maste.Fn fido_bio_dev_enroll_begin , 1310afa8e06SEd Maste.Fn fido_bio_dev_enroll_continue , 1320afa8e06SEd Maste.Fn fido_bio_dev_enroll_cancel , 1330afa8e06SEd Maste.Fn fido_bio_dev_enroll_remove , 1340afa8e06SEd Maste.Fn fido_bio_dev_get_template_array , 1350afa8e06SEd Masteand 1360afa8e06SEd Maste.Fn fido_bio_dev_set_template_name 1370afa8e06SEd Masteare defined in 1380afa8e06SEd Maste.In fido/err.h . 1390afa8e06SEd MasteOn success, 1400afa8e06SEd Maste.Dv FIDO_OK 1410afa8e06SEd Masteis returned. 1420afa8e06SEd Maste.Sh SEE ALSO 1430afa8e06SEd Maste.Xr fido_bio_enroll_new 3 , 1440afa8e06SEd Maste.Xr fido_bio_info_new 3 , 1450afa8e06SEd Maste.Xr fido_bio_template 3 146