xref: /freebsd/contrib/libfido2/man/fido_cbor_info_new.3 (revision 2ccfa855b2fc331819953e3de1b1c15ce5b95a7e)
1*2ccfa855SEd Maste.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved.
20afa8e06SEd 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
27*2ccfa855SEd Maste.\"
28*2ccfa855SEd Maste.Dd $Mdocdate: April 22 2022 $
290afa8e06SEd Maste.Dt FIDO_CBOR_INFO_NEW 3
300afa8e06SEd Maste.Os
310afa8e06SEd Maste.Sh NAME
320afa8e06SEd Maste.Nm fido_cbor_info_new ,
330afa8e06SEd Maste.Nm fido_cbor_info_free ,
340afa8e06SEd Maste.Nm fido_dev_get_cbor_info ,
350afa8e06SEd Maste.Nm fido_cbor_info_aaguid_ptr ,
360afa8e06SEd Maste.Nm fido_cbor_info_extensions_ptr ,
370afa8e06SEd Maste.Nm fido_cbor_info_protocols_ptr ,
380afa8e06SEd Maste.Nm fido_cbor_info_transports_ptr ,
390afa8e06SEd Maste.Nm fido_cbor_info_versions_ptr ,
400afa8e06SEd Maste.Nm fido_cbor_info_options_name_ptr ,
410afa8e06SEd Maste.Nm fido_cbor_info_options_value_ptr ,
420afa8e06SEd Maste.Nm fido_cbor_info_algorithm_type ,
430afa8e06SEd Maste.Nm fido_cbor_info_algorithm_cose ,
440afa8e06SEd Maste.Nm fido_cbor_info_algorithm_count ,
45*2ccfa855SEd Maste.Nm fido_cbor_info_certs_name_ptr ,
46*2ccfa855SEd Maste.Nm fido_cbor_info_certs_value_ptr ,
47*2ccfa855SEd Maste.Nm fido_cbor_info_certs_len ,
480afa8e06SEd Maste.Nm fido_cbor_info_aaguid_len ,
490afa8e06SEd Maste.Nm fido_cbor_info_extensions_len ,
500afa8e06SEd Maste.Nm fido_cbor_info_protocols_len ,
510afa8e06SEd Maste.Nm fido_cbor_info_transports_len ,
520afa8e06SEd Maste.Nm fido_cbor_info_versions_len ,
530afa8e06SEd Maste.Nm fido_cbor_info_options_len ,
540afa8e06SEd Maste.Nm fido_cbor_info_maxmsgsiz ,
553e696dfbSEd Maste.Nm fido_cbor_info_maxcredbloblen ,
560afa8e06SEd Maste.Nm fido_cbor_info_maxcredcntlst ,
570afa8e06SEd Maste.Nm fido_cbor_info_maxcredidlen ,
58*2ccfa855SEd Maste.Nm fido_cbor_info_maxlargeblob ,
59*2ccfa855SEd Maste.Nm fido_cbor_info_maxrpid_minpinlen ,
60*2ccfa855SEd Maste.Nm fido_cbor_info_minpinlen ,
61*2ccfa855SEd Maste.Nm fido_cbor_info_fwversion ,
62*2ccfa855SEd Maste.Nm fido_cbor_info_uv_attempts ,
63*2ccfa855SEd Maste.Nm fido_cbor_info_uv_modality ,
64*2ccfa855SEd Maste.Nm fido_cbor_info_rk_remaining ,
65*2ccfa855SEd Maste.Nm fido_cbor_info_new_pin_required
660afa8e06SEd Maste.Nd FIDO2 CBOR Info API
670afa8e06SEd Maste.Sh SYNOPSIS
680afa8e06SEd Maste.In fido.h
690afa8e06SEd Maste.Ft fido_cbor_info_t *
700afa8e06SEd Maste.Fn fido_cbor_info_new "void"
710afa8e06SEd Maste.Ft void
720afa8e06SEd Maste.Fn fido_cbor_info_free "fido_cbor_info_t **ci_p"
730afa8e06SEd Maste.Ft int
740afa8e06SEd Maste.Fn fido_dev_get_cbor_info "fido_dev_t *dev" "fido_cbor_info_t *ci"
750afa8e06SEd Maste.Ft const unsigned char *
760afa8e06SEd Maste.Fn fido_cbor_info_aaguid_ptr "const fido_cbor_info_t *ci"
770afa8e06SEd Maste.Ft char **
780afa8e06SEd Maste.Fn fido_cbor_info_extensions_ptr "const fido_cbor_info_t *ci"
790afa8e06SEd Maste.Ft const uint8_t *
800afa8e06SEd Maste.Fn fido_cbor_info_protocols_ptr "const fido_cbor_info_t *ci"
810afa8e06SEd Maste.Ft char **
820afa8e06SEd Maste.Fn fido_cbor_info_transports_ptr "const fido_cbor_info_t *ci"
830afa8e06SEd Maste.Ft char **
840afa8e06SEd Maste.Fn fido_cbor_info_versions_ptr "const fido_cbor_info_t *ci"
850afa8e06SEd Maste.Ft char **
860afa8e06SEd Maste.Fn fido_cbor_info_options_name_ptr "const fido_cbor_info_t *ci"
870afa8e06SEd Maste.Ft const bool *
880afa8e06SEd Maste.Fn fido_cbor_info_options_value_ptr "const fido_cbor_info_t *ci"
890afa8e06SEd Maste.Ft const char *
900afa8e06SEd Maste.Fn fido_cbor_info_algorithm_type "const fido_cbor_info_t *ci" "size_t idx"
910afa8e06SEd Maste.Ft int
920afa8e06SEd Maste.Fn fido_cbor_info_algorithm_cose "const fido_cbor_info_t *ci" "size_t idx"
930afa8e06SEd Maste.Ft size_t
940afa8e06SEd Maste.Fn fido_cbor_info_algorithm_count "const fido_cbor_info_t *ci"
95*2ccfa855SEd Maste.Ft char **
96*2ccfa855SEd Maste.Fn fido_cbor_info_certs_name_ptr "const fido_cbor_info_t *ci"
97*2ccfa855SEd Maste.Ft const uint64_t *
98*2ccfa855SEd Maste.Fn fido_cbor_info_certs_value_ptr "const fido_cbor_info_t *ci"
99*2ccfa855SEd Maste.Ft size_t
100*2ccfa855SEd Maste.Fn fido_cbor_info_certs_len "const fido_cbor_info_t *ci"
1010afa8e06SEd Maste.Ft size_t
1020afa8e06SEd Maste.Fn fido_cbor_info_aaguid_len "const fido_cbor_info_t *ci"
1030afa8e06SEd Maste.Ft size_t
1040afa8e06SEd Maste.Fn fido_cbor_info_extensions_len "const fido_cbor_info_t *ci"
1050afa8e06SEd Maste.Ft size_t
1060afa8e06SEd Maste.Fn fido_cbor_info_protocols_len "const fido_cbor_info_t *ci"
1070afa8e06SEd Maste.Ft size_t
1080afa8e06SEd Maste.Fn fido_cbor_info_transports_len "const fido_cbor_info_t *ci"
1090afa8e06SEd Maste.Ft size_t
1100afa8e06SEd Maste.Fn fido_cbor_info_versions_len "const fido_cbor_info_t *ci"
1110afa8e06SEd Maste.Ft size_t
1120afa8e06SEd Maste.Fn fido_cbor_info_options_len "const fido_cbor_info_t *ci"
1130afa8e06SEd Maste.Ft uint64_t
1140afa8e06SEd Maste.Fn fido_cbor_info_maxmsgsiz "const fido_cbor_info_t *ci"
1150afa8e06SEd Maste.Ft uint64_t
1160afa8e06SEd Maste.Fn fido_cbor_info_maxcredbloblen "const fido_cbor_info_t *ci"
1170afa8e06SEd Maste.Ft uint64_t
1180afa8e06SEd Maste.Fn fido_cbor_info_maxcredcntlst "const fido_cbor_info_t *ci"
1190afa8e06SEd Maste.Ft uint64_t
1200afa8e06SEd Maste.Fn fido_cbor_info_maxcredidlen "const fido_cbor_info_t *ci"
1210afa8e06SEd Maste.Ft uint64_t
122*2ccfa855SEd Maste.Fn fido_cbor_info_maxlargeblob "const fido_cbor_info_t *ci"
123*2ccfa855SEd Maste.Ft uint64_t
124*2ccfa855SEd Maste.Fn fido_cbor_info_maxrpid_minpinlen "const fido_cbor_info_t *ci"
125*2ccfa855SEd Maste.Ft uint64_t
126*2ccfa855SEd Maste.Fn fido_cbor_info_minpinlen "const fido_cbor_info_t *ci"
127*2ccfa855SEd Maste.Ft uint64_t
1280afa8e06SEd Maste.Fn fido_cbor_info_fwversion "const fido_cbor_info_t *ci"
129*2ccfa855SEd Maste.Ft uint64_t
130*2ccfa855SEd Maste.Fn fido_cbor_info_uv_attempts "const fido_cbor_info_t *ci"
131*2ccfa855SEd Maste.Ft uint64_t
132*2ccfa855SEd Maste.Fn fido_cbor_info_uv_modality "const fido_cbor_info_t *ci"
133*2ccfa855SEd Maste.Ft int64_t
134*2ccfa855SEd Maste.Fn fido_cbor_info_rk_remaining "const fido_cbor_info_t *ci"
135*2ccfa855SEd Maste.Ft bool
136*2ccfa855SEd Maste.Fn fido_cbor_info_new_pin_required "const fido_cbor_info_t *ci"
1370afa8e06SEd Maste.Sh DESCRIPTION
1380afa8e06SEd MasteThe
1390afa8e06SEd Maste.Fn fido_cbor_info_new
1400afa8e06SEd Mastefunction returns a pointer to a newly allocated, empty
1410afa8e06SEd Maste.Vt fido_cbor_info_t
1420afa8e06SEd Mastetype.
1430afa8e06SEd MasteIf memory cannot be allocated, NULL is returned.
1440afa8e06SEd Maste.Pp
1450afa8e06SEd MasteThe
1460afa8e06SEd Maste.Fn fido_cbor_info_free
1470afa8e06SEd Mastefunction releases the memory backing
1480afa8e06SEd Maste.Fa *ci_p ,
1490afa8e06SEd Mastewhere
1500afa8e06SEd Maste.Fa *ci_p
1510afa8e06SEd Mastemust have been previously allocated by
1520afa8e06SEd Maste.Fn fido_cbor_info_new .
1530afa8e06SEd MasteOn return,
1540afa8e06SEd Maste.Fa *ci_p
1550afa8e06SEd Masteis set to NULL.
1560afa8e06SEd MasteEither
1570afa8e06SEd Maste.Fa ci_p
1580afa8e06SEd Masteor
1590afa8e06SEd Maste.Fa *ci_p
1600afa8e06SEd Mastemay be NULL, in which case
1610afa8e06SEd Maste.Fn fido_cbor_info_free
1620afa8e06SEd Masteis a NOP.
1630afa8e06SEd Maste.Pp
1640afa8e06SEd MasteThe
1650afa8e06SEd Maste.Fn fido_dev_get_cbor_info
1660afa8e06SEd Mastefunction transmits a
1670afa8e06SEd Maste.Dv CTAP_CBOR_GETINFO
1680afa8e06SEd Mastecommand to
1690afa8e06SEd Maste.Fa dev
1700afa8e06SEd Masteand fills
1710afa8e06SEd Maste.Fa ci
1720afa8e06SEd Mastewith attributes retrieved from the command's response.
1730afa8e06SEd MasteThe
1740afa8e06SEd Maste.Fn fido_dev_get_cbor_info
1750afa8e06SEd Mastefunction may block.
1760afa8e06SEd Maste.Pp
1770afa8e06SEd MasteThe
1780afa8e06SEd Maste.Fn fido_cbor_info_aaguid_ptr ,
1790afa8e06SEd Maste.Fn fido_cbor_info_extensions_ptr ,
1800afa8e06SEd Maste.Fn fido_cbor_info_protocols_ptr ,
1810afa8e06SEd Maste.Fn fido_cbor_info_transports_ptr ,
1820afa8e06SEd Masteand
1830afa8e06SEd Maste.Fn fido_cbor_info_versions_ptr
1840afa8e06SEd Mastefunctions return pointers to the authenticator attestation GUID,
1850afa8e06SEd Mastesupported extensions, PIN protocol, transports, and CTAP version
1860afa8e06SEd Mastestrings of
1870afa8e06SEd Maste.Fa ci .
1880afa8e06SEd MasteThe corresponding length of a given attribute can be
1890afa8e06SEd Masteobtained by
1900afa8e06SEd Maste.Fn fido_cbor_info_aaguid_len ,
1910afa8e06SEd Maste.Fn fido_cbor_info_extensions_len ,
1920afa8e06SEd Maste.Fn fido_cbor_info_protocols_len ,
1930afa8e06SEd Maste.Fn fido_cbor_info_transports_len ,
1940afa8e06SEd Masteor
1950afa8e06SEd Maste.Fn fido_cbor_info_versions_len .
1960afa8e06SEd Maste.Pp
1970afa8e06SEd MasteThe
1980afa8e06SEd Maste.Fn fido_cbor_info_options_name_ptr
1990afa8e06SEd Masteand
2000afa8e06SEd Maste.Fn fido_cbor_info_options_value_ptr
2010afa8e06SEd Mastefunctions return pointers to the array of option names and their
2020afa8e06SEd Masterespective values
2030afa8e06SEd Mastein
2040afa8e06SEd Maste.Fa ci .
2050afa8e06SEd MasteThe length of the options array is returned by
2060afa8e06SEd Maste.Fn fido_cbor_info_options_len .
2070afa8e06SEd Maste.Pp
2080afa8e06SEd MasteThe
2090afa8e06SEd Maste.Fn fido_cbor_info_algorithm_count
2100afa8e06SEd Mastefunction returns the number of supported algorithms in
2110afa8e06SEd Maste.Fa ci .
2120afa8e06SEd MasteThe
2130afa8e06SEd Maste.Fn fido_cbor_info_algorithm_cose
2140afa8e06SEd Mastefunction returns the COSE identifier of algorithm
2150afa8e06SEd Maste.Fa idx
2160afa8e06SEd Mastein
2170afa8e06SEd Maste.Fa ci ,
2180afa8e06SEd Masteor 0 if the COSE identifier is unknown or unset.
2190afa8e06SEd MasteThe
2200afa8e06SEd Maste.Fn fido_cbor_info_algorithm_type
2210afa8e06SEd Mastefunction returns the type of algorithm
2220afa8e06SEd Maste.Fa idx
2230afa8e06SEd Mastein
2240afa8e06SEd Maste.Fa ci ,
2250afa8e06SEd Masteor NULL if the type is unset.
2260afa8e06SEd MastePlease note that the first algorithm in
2270afa8e06SEd Maste.Fa ci
2280afa8e06SEd Mastehas an
2290afa8e06SEd Maste.Fa idx
2300afa8e06SEd Maste(index) value of 0.
2310afa8e06SEd Maste.Pp
2320afa8e06SEd MasteThe
233*2ccfa855SEd Maste.Fn fido_cbor_info_certs_name_ptr
234*2ccfa855SEd Masteand
235*2ccfa855SEd Maste.Fn fido_cbor_info_certs_value_ptr
236*2ccfa855SEd Mastefunctions return pointers to the array of certification names and their
237*2ccfa855SEd Masterespective values
238*2ccfa855SEd Mastein
239*2ccfa855SEd Maste.Fa ci .
240*2ccfa855SEd MasteThe length of the certifications array is returned by
241*2ccfa855SEd Maste.Fn fido_cbor_info_certs_len .
242*2ccfa855SEd Maste.Pp
243*2ccfa855SEd MasteThe
2440afa8e06SEd Maste.Fn fido_cbor_info_maxmsgsiz
2450afa8e06SEd Mastefunction returns the maximum message size attribute of
2460afa8e06SEd Maste.Fa ci .
2470afa8e06SEd Maste.Pp
2480afa8e06SEd MasteThe
2490afa8e06SEd Maste.Fn fido_cbor_info_maxcredbloblen
2500afa8e06SEd Mastefunction returns the maximum
2510afa8e06SEd Maste.Dq credBlob
2520afa8e06SEd Mastelength in bytes supported by the authenticator as reported in
2530afa8e06SEd Maste.Fa ci .
2540afa8e06SEd Maste.Pp
2550afa8e06SEd MasteThe
2560afa8e06SEd Maste.Fn fido_cbor_info_maxcredcntlst
2570afa8e06SEd Mastefunction returns the maximum supported number of credentials in
2580afa8e06SEd Mastea single credential ID list as reported in
2590afa8e06SEd Maste.Fa ci .
2600afa8e06SEd Maste.Pp
2610afa8e06SEd MasteThe
2620afa8e06SEd Maste.Fn fido_cbor_info_maxcredidlen
2630afa8e06SEd Mastefunction returns the maximum supported length of a credential ID
2640afa8e06SEd Masteas reported in
2650afa8e06SEd Maste.Fa ci .
2660afa8e06SEd Maste.Pp
2670afa8e06SEd MasteThe
268*2ccfa855SEd Maste.Fn fido_cbor_info_maxrpid_minpinlen
269*2ccfa855SEd Mastefunction returns the maximum number of RP IDs that may be passed to
270*2ccfa855SEd Maste.Xr fido_dev_set_pin_minlen_rpid 3 ,
271*2ccfa855SEd Masteas reported in
272*2ccfa855SEd Maste.Fa ci .
273*2ccfa855SEd MasteThe minimum PIN length attribute is a CTAP 2.1 addition.
274*2ccfa855SEd MasteIf the attribute is not advertised by the authenticator, the
275*2ccfa855SEd Maste.Fn fido_cbor_info_maxrpid_minpinlen
276*2ccfa855SEd Mastefunction returns zero.
277*2ccfa855SEd Maste.Pp
278*2ccfa855SEd MasteThe
279*2ccfa855SEd Maste.Fn fido_cbor_info_maxlargeblob
280*2ccfa855SEd Mastefunction returns the maximum length in bytes of an authenticator's
281*2ccfa855SEd Masteserialized largeBlob array as reported in
282*2ccfa855SEd Maste.Fa ci .
283*2ccfa855SEd Maste.Pp
284*2ccfa855SEd MasteThe
285*2ccfa855SEd Maste.Fn fido_cbor_info_minpinlen
286*2ccfa855SEd Mastefunction returns the minimum PIN length enforced by the
287*2ccfa855SEd Masteauthenticator as reported in
288*2ccfa855SEd Maste.Fa ci .
289*2ccfa855SEd MasteThe minimum PIN length attribute is a CTAP 2.1 addition.
290*2ccfa855SEd MasteIf the attribute is not advertised by the authenticator, the
291*2ccfa855SEd Maste.Fn fido_cbor_info_minpinlen
292*2ccfa855SEd Mastefunction returns zero.
293*2ccfa855SEd Maste.Pp
294*2ccfa855SEd MasteThe
2950afa8e06SEd Maste.Fn fido_cbor_info_fwversion
2960afa8e06SEd Mastefunction returns the firmware version attribute of
2970afa8e06SEd Maste.Fa ci .
2980afa8e06SEd Maste.Pp
299*2ccfa855SEd MasteThe
300*2ccfa855SEd Maste.Fn fido_cbor_info_uv_attempts
301*2ccfa855SEd Mastefunction returns the number of UV attempts that the platform may
302*2ccfa855SEd Masteattempt before falling back to PIN authentication.
303*2ccfa855SEd MasteIf 1, then all
304*2ccfa855SEd Maste.Xr fido_dev_get_uv_retry_count 3
305*2ccfa855SEd Masteretries are handled internally by the authenticator and the
306*2ccfa855SEd Masteplatform may only attempt non-PIN UV once.
307*2ccfa855SEd MasteThe UV attempts attribute is a CTAP 2.1 addition.
308*2ccfa855SEd MasteIf the attribute is not advertised by the authenticator,
309*2ccfa855SEd Mastethe
310*2ccfa855SEd Maste.Fn fido_cbor_info_uv_attempts
311*2ccfa855SEd Mastefunction returns zero.
312*2ccfa855SEd Maste.Pp
313*2ccfa855SEd MasteThe
314*2ccfa855SEd Maste.Fn fido_cbor_info_uv_modality
315*2ccfa855SEd Mastefunction returns a bitmask representing different UV modes
316*2ccfa855SEd Mastesupported by the authenticator, as defined in the FIDO Registry of
317*2ccfa855SEd MastePredefined Values and reported in
318*2ccfa855SEd Maste.Fa ci .
319*2ccfa855SEd MasteSee the
320*2ccfa855SEd Maste.Em FIDO_UV_MODE_*
321*2ccfa855SEd Mastedefinitions in
322*2ccfa855SEd Maste.In fido/param.h
323*2ccfa855SEd Mastefor the set of values defined by libfido2 and a brief description
324*2ccfa855SEd Masteof each.
325*2ccfa855SEd MasteThe UV modality attribute is a CTAP 2.1 addition.
326*2ccfa855SEd MasteIf the attribute is not advertised by the authenticator, the
327*2ccfa855SEd Maste.Fn fido_cbor_info_uv_modality
328*2ccfa855SEd Mastefunction returns zero.
329*2ccfa855SEd Maste.Pp
330*2ccfa855SEd MasteThe
331*2ccfa855SEd Maste.Fn fido_cbor_info_rk_remaining
332*2ccfa855SEd Mastefunction returns the estimated number of additional
333*2ccfa855SEd Masteresident/discoverable credentials that can be stored on the
334*2ccfa855SEd Masteauthenticator as reported in
335*2ccfa855SEd Maste.Fa ci .
336*2ccfa855SEd MasteThe estimated number of remaining resident credentials is a
337*2ccfa855SEd MasteCTAP 2.1 addition.
338*2ccfa855SEd MasteIf the attribute is not advertised by the authenticator, the
339*2ccfa855SEd Maste.Fn fido_cbor_info_rk_remaining
340*2ccfa855SEd Mastefunction returns -1.
341*2ccfa855SEd Maste.Pp
342*2ccfa855SEd MasteThe
343*2ccfa855SEd Maste.Fn fido_cbor_info_new_pin_required
344*2ccfa855SEd Mastefunction returns whether a new PIN is required by the authenticator
345*2ccfa855SEd Masteas reported in
346*2ccfa855SEd Maste.Fa ci .
347*2ccfa855SEd MasteIf
348*2ccfa855SEd Maste.Fn fido_cbor_info_new_pin_required
349*2ccfa855SEd Mastereturns true, operations requiring PIN authentication will fail
350*2ccfa855SEd Masteuntil a new PIN is set on the authenticator.
351*2ccfa855SEd MasteThe
352*2ccfa855SEd Maste.Xr fido_dev_set_pin 3
353*2ccfa855SEd Mastefunction can be used to set a new PIN.
354*2ccfa855SEd Maste.Pp
3550afa8e06SEd MasteA complete example of how to use these functions can be found in the
3560afa8e06SEd Maste.Pa example/info.c
3570afa8e06SEd Mastefile shipped with
3580afa8e06SEd Maste.Em libfido2 .
3590afa8e06SEd Maste.Sh RETURN VALUES
3600afa8e06SEd MasteThe
3610afa8e06SEd Maste.Fn fido_cbor_info_aaguid_ptr ,
3620afa8e06SEd Maste.Fn fido_cbor_info_extensions_ptr ,
3630afa8e06SEd Maste.Fn fido_cbor_info_protocols_ptr ,
3640afa8e06SEd Maste.Fn fido_cbor_info_transports_ptr ,
3650afa8e06SEd Maste.Fn fido_cbor_info_versions_ptr ,
3660afa8e06SEd Maste.Fn fido_cbor_info_options_name_ptr ,
3670afa8e06SEd Masteand
3680afa8e06SEd Maste.Fn fido_cbor_info_options_value_ptr
3690afa8e06SEd Mastefunctions return NULL if the respective field in
3700afa8e06SEd Maste.Fa ci
3710afa8e06SEd Masteis absent.
3720afa8e06SEd MasteIf not NULL, returned pointers are guaranteed to exist until any
3730afa8e06SEd MasteAPI function that takes
3740afa8e06SEd Maste.Fa ci
3750afa8e06SEd Mastewithout the
3760afa8e06SEd Maste.Em const
3770afa8e06SEd Mastequalifier is invoked.
3780afa8e06SEd Maste.Sh SEE ALSO
379*2ccfa855SEd Maste.Xr fido_dev_get_uv_retry_count 3 ,
380*2ccfa855SEd Maste.Xr fido_dev_open 3 ,
381*2ccfa855SEd Maste.Xr fido_dev_set_pin 3 ,
382*2ccfa855SEd Maste.Xr fido_dev_set_pin_minlen_rpid 3
383*2ccfa855SEd Maste.Rs
384*2ccfa855SEd Maste.%D 2021-05-25
385*2ccfa855SEd Maste.%O Review Draft, Version 2.2
386*2ccfa855SEd Maste.%Q FIDO Alliance
387*2ccfa855SEd Maste.%R FIDO Registry of Predefined Values
388*2ccfa855SEd Maste.%U https://fidoalliance.org/specs/common-specs/fido-registry-v2.2-rd-20210525.html
389*2ccfa855SEd Maste.Re
390