dwww Home | Manual pages | Find package

FIDO_CRED_NEW(3)            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_list_count,   fido_cred_x5c_list_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_list_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 *
       fido_cred_aaguid_ptr(const fido_cred_t *cred);

       const unsigned char *
       fido_cred_largeblob_key_ptr(const fido_cred_t *cred);

       const unsigned char *
       fido_cred_pubkey_ptr(const fido_cred_t *cred);

       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);

       size_t
       fido_cred_x5c_list_count(const fido_cred_t *cred);

       const unsigned char *
       fido_cred_x5c_list_ptr(const fido_cred_t *cred, size_t idx);

       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_list_len(const fido_cred_t *cred, size_t idx);

       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 al-
       located,  deallocated,  and  inspected.    For   other   operations   on
       fido_cred_t,      please     refer     to     fido_cred_set_authdata(3),
       fido_cred_exclude(3), fido_cred_verify(3), and fido_dev_make_cred(3).

       The fido_cred_new() function returns a pointer  to  a  newly  allocated,
       empty  fido_cred_t  type.   If  memory  cannot be allocated, NULL is re-
       turned.

       The fido_cred_free() function releases the memory backing *cred_p, where
       *cred_p must have been previously allocated by fido_cred_new().  On  re-
       turn,  *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.  Other-
       wise, 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 point-
       ers  to  the  CBOR-encoded and raw authenticator data, client data hash,
       ID, authenticator attestation GUID, “largeBlobKey”, public  key,  signa-
       ture, user ID, x509 leaf 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 fido_cred_x5c_list_count() function returns the length of  the  x509
       certificate   chain   in   cred  and  the  fido_cred_x5c_list_ptr()  and
       fido_cred_x5c_list_len() functions return a pointer to and length of the
       x509 certificate at index idx respectively.  Please note that  the  leaf
       certificate    has   an   idx   (index)   value   of   0   and   calling
       fido_cred_x5c_list_ptr(cred, 0) and fido_cred_x5c_list_len(cred,  0)  is
       equivalent  to  fido_cred_x5c_ptr(cred)  and fido_cred_x5c_len(cred) re-
       spectively.     If    idx    exceeds     the     return     value     of
       fido_cred_x5c_list_count(),  fido_cred_x5c_list_ptr()  returns  NULL and
       fido_cred_x5c_list_len() returns 0.

       The authenticator data, x509 certificate, and signature parts of a  cre-
       dential 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  signa-
       ture 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_id_ptr(),                              fido_cred_aaguid_ptr(),
       fido_cred_largeblob_key_ptr(),                   fido_cred_pubkey_ptr(),
       fido_cred_sig_ptr(), and fido_cred_x5c_ptr() are guaranteed to exist un-
       til  any API function that takes cred without the const qualifier is in-
       voked.

SEE ALSO
       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)

Debian                            May 23, 2018                 FIDO_CRED_NEW(3)

Generated by dwww version 1.16 on Sat Oct 3 06:03:14 CEST 2026.