| FIDO_CREDMAN_METADATA_NEW(3) | Library Functions Manual | FIDO_CREDMAN_METADATA_NEW(3) | 
fido_credman_metadata_new,
  fido_credman_rk_new,
  fido_credman_rp_new,
  fido_credman_metadata_free,
  fido_credman_rk_free,
  fido_credman_rp_free,
  fido_credman_rk_existing,
  fido_credman_rk_remaining,
  fido_credman_rk,
  fido_credman_rk_count,
  fido_credman_rp_id,
  fido_credman_rp_name,
  fido_credman_rp_count,
  fido_credman_rp_id_hash_ptr,
  fido_credman_rp_id_hash_len,
  fido_credman_get_dev_metadata,
  fido_credman_get_dev_rk,
  fido_credman_set_dev_rk,
  fido_credman_del_dev_rk,
  fido_credman_get_dev_rp —
#include <fido.h>
#include <fido/credman.h>
fido_credman_metadata_t *
  
  fido_credman_metadata_new(void);
fido_credman_rk_t *
  
  fido_credman_rk_new(void);
fido_credman_rp_t *
  
  fido_credman_rp_new(void);
void
  
  fido_credman_metadata_free(fido_credman_metadata_t
    **metadata_p);
void
  
  fido_credman_rk_free(fido_credman_rk_t
    **rk_p);
void
  
  fido_credman_rp_free(fido_credman_rp_t
    **rp_p);
uint64_t
  
  fido_credman_rk_existing(const
    fido_credman_metadata_t *metadata);
uint64_t
  
  fido_credman_rk_remaining(const
    fido_credman_metadata_t *metadata);
const fido_cred_t *
  
  fido_credman_rk(const
    fido_credman_rk_t *rk,
    size_t idx);
size_t
  
  fido_credman_rk_count(const
    fido_credman_rk_t *rk);
const char *
  
  fido_credman_rp_id(const
    fido_credman_rp_t *rp,
    size_t idx);
const char *
  
  fido_credman_rp_name(const
    fido_credman_rp_t *rp,
    size_t idx);
size_t
  
  fido_credman_rp_count(const
    fido_credman_rp_t *rp);
const unsigned char *
  
  fido_credman_rp_id_hash_ptr(const
    fido_credman_rp_t *rp,
    size_t idx);
size_t
  
  fido_credman_rp_id_hash_len(const
    fido_credman_rp_t *,
    size_t idx);
int
  
  fido_credman_get_dev_metadata(fido_dev_t
    *dev,
    fido_credman_metadata_t
    *metadata, const char
    *pin);
int
  
  fido_credman_get_dev_rk(fido_dev_t
    *dev, const char
    *rp_id, fido_credman_rk_t
    *rk, const char
    *pin);
int
  
  fido_credman_set_dev_rk(fido_dev_t
    *dev, fido_cred_t
    *cred, const char
    *pin);
int
  
  fido_credman_del_dev_rk(fido_dev_t
    *dev, const unsigned char
    *cred_id, size_t
    cred_id_len, const char
    *pin);
int
  
  fido_credman_get_dev_rp(fido_dev_t
    *dev, fido_credman_rp_t
    *rp, const char
    *pin);
The fido_credman_metadata_t type abstracts credential management metadata.
The fido_credman_metadata_new() function
    returns a pointer to a newly allocated, empty
    fido_credman_metadata_t type. If memory cannot be
    allocated, NULL is returned.
The fido_credman_metadata_free() function
    releases the memory backing *metadata_p, where
    *metadata_p must have been previously allocated by
    fido_credman_metadata_new(). On return,
    *metadata_p is set to NULL. Either
    metadata_p or *metadata_p may be
    NULL, in which case fido_credman_metadata_free() is
    a NOP.
The fido_credman_get_dev_metadata()
    function populates metadata with information retrieved
    from dev. A valid pin must be
    provided.
The fido_credman_rk_existing() function
    inspects metadata and returns the number of resident
    credentials on the authenticator. The
    fido_credman_rk_remaining() function inspects
    metadata and returns the estimated number of resident
    credentials that can be created on the authenticator.
The fido_credman_rk_t type abstracts the set of resident credentials belonging to a given relying party.
The fido_credman_rk_new() function returns
    a pointer to a newly allocated, empty
    fido_credman_rk_t type. If memory cannot be allocated,
    NULL is returned.
The fido_credman_rk_free() function
    releases the memory backing *rk_p, where
    *rk_p must have been previously allocated by
    fido_credman_rk_new(). On return,
    *rk_p is set to NULL. Either
    rk_p or *rk_p may be NULL, in
    which case fido_credman_rk_free() is a NOP.
The fido_credman_get_dev_rk() function
    populates rk with the set of resident credentials
    belonging to rp_id in dev. A
    valid pin must be provided.
The fido_credman_rk_count() function
    returns the number of resident credentials in rk. The
    fido_credman_rk() function returns a pointer to the
    credential at index idx in rk.
    Please note that the first credential in rk has an
    idx (index) value of 0.
The fido_credman_set_dev_rk() function
    updates the credential pointed to by cred in
    dev. The credential id and user id attributes of
    cred must be set. See
    fido_cred_set_id(3)
    and
    fido_cred_set_user(3)
    for details. Only a credential's user attributes (name, display name) may be
    updated at this time.
The fido_credman_del_dev_rk() function
    deletes the resident credential identified by cred_id
    from dev, where cred_id points
    to cred_id_len bytes. A valid
    pin must be provided.
The fido_credman_rp_t type abstracts information about a relying party.
The fido_credman_rp_new() function returns
    a pointer to a newly allocated, empty
    fido_credman_rp_t type. If memory cannot be allocated,
    NULL is returned.
The fido_credman_rp_free() function
    releases the memory backing *rp_p, where
    *rp_p must have been previously allocated by
    fido_credman_rp_new(). On return,
    *rp_p is set to NULL. Either
    rp_p or *rp_p may be NULL, in
    which case fido_credman_rp_free() is a NOP.
The fido_credman_get_dev_rp() function
    populates rp with information about relying parties
    with resident credentials in dev. A valid
    pin must be provided.
The fido_credman_rp_count() function
    returns the number of relying parties in rp.
The fido_credman_rp_id() and
    fido_credman_rp_name() functions return pointers to
    the id and name of relying party idx in
    rp. If not NULL, the values returned by these
    functions point to NUL-terminated UTF-8 strings. Please note that the first
    relying party in rp has an idx
    (index) value of 0.
The fido_credman_rp_id_hash_ptr() function
    returns a pointer to the hashed id of relying party
    idx in rp. The corresponding
    length can be obtained by
    fido_credman_rp_id_hash_len(). Please note that the
    first relying party in rp has an
    idx (index) value of 0.
fido_credman_get_dev_metadata(),
  fido_credman_get_dev_rk(),
  fido_credman_set_dev_rk(),
  fido_credman_del_dev_rk(), and
  fido_credman_get_dev_rp() functions return
  FIDO_OK on success. On error, a different error code
  defined in <fido/err.h> is
  returned. Functions returning pointers are not guaranteed to succeed, and
  should have their return values checked for NULL.
| $Mdocdate: June 28 2019 $ | NetBSD 10.0 |