Provided by: libfido2-doc_1.3.1-1ubuntu2_all bug

NAME

     fido_cred_new, fido_cred_free, fido_cred_fmt, fido_cred_authdata_ptr,
     fido_cred_clientdata_hash_ptr, fido_cred_id_ptr, fido_cred_pubkey_ptr, fido_cred_sig_ptr,
     fido_cred_x5c_ptr, fido_cred_authdata_len, fido_cred_clientdata_hash_len, fido_cred_id_len,
     fido_cred_pubkey_len, fido_cred_sig_len, fido_cred_x5c_len — FIDO 2 credential API

SYNOPSIS

     #include <fido.h>

     fido_cred_t *
     fido_cred_new(void);

     void
     fido_cred_free(fido_cred_t **cred_p);

     const char *
     fido_cred_fmt(const fido_cred_t *cred);

     const unsigned char *
     fido_cred_authdata_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_pubkey_ptr(const fido_cred_t *cred);

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

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

     size_t
     fido_cred_authdata_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_pubkey_len(const fido_cred_t *cred);

     size_t
     fido_cred_sig_len(const fido_cred_t *cred);

     size_t
     fido_cred_x5c_len(const fido_cred_t *cred);

DESCRIPTION

     FIDO 2 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 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 returned.

     The fido_cred_free() function releases the memory backing *cred_p, where *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.

     The fido_cred_fmt() function returns a pointer to a NUL-terminated string containing the
     format of cred, or NULL if cred does not have a format set.

     The fido_cred_authdata_ptr(), fido_cred_clientdata_hash_ptr(), fido_cred_id_ptr(),
     fido_cred_pubkey_ptr(), fido_cred_sig_ptr(), and fido_cred_x5c_ptr() functions return
     pointers to the authenticator data, client data hash, ID, public key, signature and x509
     certificate 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_clientdata_hash_len(), fido_cred_id_len(), fido_cred_pubkey_len(), and
     fido_cred_sig_len().

     The authenticator data, x509 certificate, and signature parts of a credential are typically
     passed to a FIDO 2 server for verification.

RETURN VALUES

     The authenticator data returned by fido_cred_authdata_ptr() is a CBOR-encoded byte string,
     as obtained from the authenticator.

     If not NULL, pointers returned by fido_cred_fmt(), fido_cred_authdata_ptr(),
     fido_cred_clientdata_hash_ptr(), fido_cred_id_ptr(), fido_cred_pubkey_ptr(),
     fido_cred_sig_ptr(), and fido_cred_x5c_ptr() are guaranteed to exist until any API function
     that takes cred without the const qualifier is invoked.

SEE ALSO

     fido_cred_exclude(3), fido_cred_set_authdata(3), fido_cred_verify(3),
     fido_credman_metadata_new(3), fido_dev_make_cred(3)