FreeBSD manual
download PDF document: fido_cred_pin_minlen.3.pdf
FIDO_CRED_NEW(3) FreeBSD Library Functions Manual FIDO_CRED_NEW(3)
NAME
fido_cred_new, fido_cred_free, fido_cred_pin_minlen, fido_cred_prot,
fido_cred_fmt, fido_cred_rp_id, fido_cred_rp_name, fido_cred_user_name,
fido_cred_display_name, fido_cred_authdata_ptr,
fido_cred_authdata_raw_ptr, fido_cred_clientdata_hash_ptr,
fido_cred_id_ptr, fido_cred_aaguid_ptr, fido_cred_largeblob_key_ptr,
fido_cred_pubkey_ptr, fido_cred_sig_ptr, fido_cred_user_id_ptr,
fido_cred_x5c_ptr, fido_cred_attstmt_ptr, fido_cred_authdata_len,
fido_cred_authdata_raw_len, fido_cred_clientdata_hash_len,
fido_cred_id_len, fido_cred_aaguid_len, fido_cred_largeblob_key_len,
fido_cred_pubkey_len, fido_cred_sig_len, fido_cred_user_id_len,
fido_cred_x5c_len, fido_cred_attstmt_len, fido_cred_type,
fido_cred_flags, fido_cred_sigcount - FIDO2 credential API
SYNOPSIS
#include <fido.h>
fido_cred_t *
fido_cred_new(void);
void
fido_cred_free(fido_cred_t **cred_p);
size_t
fido_cred_pin_minlen(const fido_cred_t *cred);
int
fido_cred_prot(const fido_cred_t *cred);
const char *
fido_cred_fmt(const fido_cred_t *cred);
const char *
fido_cred_rp_id(const fido_cred_t *cred);
const char *
fido_cred_rp_name(const fido_cred_t *cred);
const char *
fido_cred_user_name(const fido_cred_t *cred);
const char *
fido_cred_display_name(const fido_cred_t *cred);
const unsigned char *
fido_cred_authdata_ptr(const fido_cred_t *cred);
const unsigned char *
fido_cred_authdata_raw_ptr(const fido_cred_t *cred);
const unsigned char *
fido_cred_clientdata_hash_ptr(const fido_cred_t *cred);
const unsigned char *
fido_cred_id_ptr(const fido_cred_t *cred);
const unsigned char *
const unsigned char *
fido_cred_sig_ptr(const fido_cred_t *cred);
const unsigned char *
fido_cred_user_id_ptr(const fido_cred_t *cred);
const unsigned char *
fido_cred_x5c_ptr(const fido_cred_t *cred);
const unsigned char *
fido_cred_attstmt_ptr(const fido_cred_t *cred);
size_t
fido_cred_authdata_len(const fido_cred_t *cred);
size_t
fido_cred_authdata_raw_len(const fido_cred_t *cred);
size_t
fido_cred_clientdata_hash_len(const fido_cred_t *cred);
size_t
fido_cred_id_len(const fido_cred_t *cred);
size_t
fido_cred_aaguid_len(const fido_cred_t *cred);
size_t
fido_cred_largeblob_key_len(const fido_cred_t *cred);
size_t
fido_cred_pubkey_len(const fido_cred_t *cred);
size_t
fido_cred_sig_len(const fido_cred_t *cred);
size_t
fido_cred_user_id_len(const fido_cred_t *cred);
size_t
fido_cred_x5c_len(const fido_cred_t *cred);
size_t
fido_cred_attstmt_len(const fido_cred_t *cred);
int
fido_cred_type(const fido_cred_t *cred);
uint8_t
fido_cred_flags(const fido_cred_t *cred);
uint32_t
fido_cred_sigcount(const fido_cred_t *cred);
DESCRIPTION
FIDO2 credentials are abstracted in libfido2 by the fido_cred_t type.
The functions described in this page allow a fido_cred_t type to be
allocated, deallocated, and inspected. For other operations on
*cred_p must have been previously allocated by fido_cred_new(). On
return, *cred_p is set to NULL. Either cred_p or *cred_p may be NULL, in
which case fido_cred_free() is a NOP.
If the CTAP 2.1 FIDO_EXT_MINPINLEN extension is enabled on cred, then the
fido_cred_pin_minlen() function returns the minimum PIN length of cred.
Otherwise, fido_cred_pin_minlen() returns zero. See
fido_cred_set_pin_minlen(3) on how to enable this extension.
If the CTAP 2.1 FIDO_EXT_CRED_PROTECT extension is enabled on cred, then
the fido_cred_prot() function returns the protection of cred. Otherwise,
fido_cred_prot() returns zero. See fido_cred_set_prot(3) for the
protection policies understood by libfido2.
The fido_cred_fmt() function returns a pointer to a NUL-terminated string
containing the attestation statement format identifier of cred, or NULL
if cred does not have a format set.
The fido_cred_rp_id(), fido_cred_rp_name(), fido_cred_user_name(), and
fido_cred_display_name() functions return pointers to NUL-terminated
strings holding the relying party ID, relying party name, user name, and
user display name attributes of cred, or NULL if the respective entry is
not set.
The fido_cred_authdata_ptr(), fido_cred_authdata_raw_ptr(),
fido_cred_clientdata_hash_ptr(), fido_cred_id_ptr(),
fido_cred_aaguid_ptr(), fido_cred_largeblob_key_ptr(),
fido_cred_pubkey_ptr(), fido_cred_sig_ptr(), fido_cred_user_id_ptr(),
fido_cred_x5c_ptr(), and fido_cred_attstmt_ptr() functions return
pointers to the CBOR-encoded and raw authenticator data, client data
hash, ID, authenticator attestation GUID, "largeBlobKey", public key,
signature, user ID, x509 certificate, and attestation statement parts of
cred, or NULL if the respective entry is not set.
The corresponding length can be obtained by fido_cred_authdata_len(),
fido_cred_authdata_raw_len(), fido_cred_clientdata_hash_len(),
fido_cred_id_len(), fido_cred_aaguid_len(),
fido_cred_largeblob_key_len(), fido_cred_pubkey_len(),
fido_cred_sig_len(), fido_cred_user_id_len(), fido_cred_x5c_len(), and
fido_cred_attstmt_len().
The authenticator data, x509 certificate, and signature parts of a
credential are typically passed to a FIDO2 server for verification.
The fido_cred_type() function returns the COSE algorithm of cred.
The fido_cred_flags() function returns the authenticator data flags of
cred.
The fido_cred_sigcount() function returns the authenticator data
signature counter of cred.
RETURN VALUES
The authenticator data returned by fido_cred_authdata_ptr() is a CBOR-
encoded byte string, as obtained from the authenticator. To obtain the
decoded byte string, use fido_cred_authdata_raw_ptr().
If not NULL, pointers returned by fido_cred_fmt(),
fido_cred_authdata_ptr(), fido_cred_clientdata_hash_ptr(),
fido_cred_exclude(3), fido_cred_set_authdata(3),
fido_cred_set_pin_minlen(3), fido_cred_set_prot(3), fido_cred_verify(3),
fido_credman_metadata_new(3), fido_dev_largeblob_get(3),
fido_dev_make_cred(3)
FreeBSD 14.0-RELEASE-p11 May 23, 2018 FreeBSD 14.0-RELEASE-p11