1FIDO_ASSERT_NEW(3)       BSD Library Functions Manual       FIDO_ASSERT_NEW(3)
2

NAME

4     fido_assert_new, fido_assert_free, fido_assert_count, fido_assert_rp_id,
5     fido_assert_user_display_name, fido_assert_user_icon,
6     fido_assert_user_name, fido_assert_authdata_ptr, fido_assert_blob_ptr,
7     fido_assert_clientdata_hash_ptr, fido_assert_hmac_secret_ptr,
8     fido_assert_largeblob_key_ptr, fido_assert_user_id_ptr,
9     fido_assert_sig_ptr, fido_assert_id_ptr, fido_assert_authdata_len,
10     fido_assert_blob_len, fido_assert_clientdata_hash_len,
11     fido_assert_hmac_secret_len, fido_assert_largeblob_key_len,
12     fido_assert_user_id_len, fido_assert_sig_len, fido_assert_id_len,
13     fido_assert_sigcount, fido_assert_flags — FIDO 2 assertion API
14

SYNOPSIS

16     #include <fido.h>
17
18     fido_assert_t *
19     fido_assert_new(void);
20
21     void
22     fido_assert_free(fido_assert_t **assert_p);
23
24     size_t
25     fido_assert_count(const fido_assert_t *assert);
26
27     const char *
28     fido_assert_rp_id(const fido_assert_t *assert);
29
30     const char *
31     fido_assert_user_display_name(const fido_assert_t *assert, size_t idx);
32
33     const char *
34     fido_assert_user_icon(const fido_assert_t *assert, size_t idx);
35
36     const char *
37     fido_assert_user_name(const fido_assert_t *assert, size_t idx);
38
39     const unsigned char *
40     fido_assert_authdata_ptr(const fido_assert_t *assert, size_t idx);
41
42     const unsigned char *
43     fido_assert_clientdata_hash_ptr(const fido_assert_t *assert);
44
45     const unsigned char *
46     fido_assert_blob_ptr(const fido_assert_t *assert, size_t idx);
47
48     const unsigned char *
49     fido_assert_hmac_secret_ptr(const fido_assert_t *assert, size_t idx);
50
51     const unsigned char *
52     fido_assert_largeblob_key_ptr(const fido_assert_t *assert, size_t idx);
53
54     const unsigned char *
55     fido_assert_user_id_ptr(const fido_assert_t *assert, size_t idx);
56
57     const unsigned char *
58     fido_assert_sig_ptr(const fido_assert_t *assert, size_t idx);
59
60     const unsigned char *
61     fido_assert_id_ptr(const fido_assert_t *assert, size_t idx);
62
63     size_t
64     fido_assert_authdata_len(const fido_assert_t *assert, size_t idx);
65
66     size_t
67     fido_assert_clientdata_hash_len(const fido_assert_t *assert);
68
69     size_t
70     fido_assert_blob_len(const fido_assert_t *assert, size_t idx);
71
72     size_t
73     fido_assert_hmac_secret_len(const fido_assert_t *assert, size_t idx);
74
75     size_t
76     fido_assert_largeblob_key_len(const fido_assert_t *assert, size_t idx);
77
78     size_t
79     fido_assert_user_id_len(const fido_assert_t *assert, size_t idx);
80
81     size_t
82     fido_assert_sig_len(const fido_assert_t *assert, size_t idx);
83
84     size_t
85     fido_assert_id_len(const fido_assert_t *assert, size_t idx);
86
87     uint32_t
88     fido_assert_sigcount(const fido_assert_t *assert, size_t idx);
89
90     uint8_t
91     fido_assert_flags(const fido_assert_t *assert, size_t idx);
92

DESCRIPTION

94     FIDO 2 assertions are abstracted in libfido2 by the fido_assert_t type.
95     The functions described in this page allow a fido_assert_t type to be al‐
96     located, deallocated, and inspected.  For other operations on
97     fido_assert_t, please refer to fido_assert_set_authdata(3),
98     fido_assert_allow_cred(3), fido_assert_verify(3), and
99     fido_dev_get_assert(3).
100
101     The fido_assert_new() function returns a pointer to a newly allocated,
102     empty fido_assert_t type.  If memory cannot be allocated, NULL is re‐
103     turned.
104
105     The fido_assert_free() function releases the memory backing *assert_p,
106     where *assert_p must have been previously allocated by fido_assert_new().
107     On return, *assert_p is set to NULL.  Either assert_p or *assert_p may be
108     NULL, in which case fido_assert_free() is a NOP.
109
110     The fido_assert_count() function returns the number of statements in
111     assert.
112
113     The fido_assert_rp_id() function returns a pointer to a NUL-terminated
114     string holding the relying party ID of assert.
115
116     The fido_assert_user_display_name(), fido_assert_user_icon(), and
117     fido_assert_user_name(), functions return pointers to the user display
118     name, icon, and name attributes of statement idx in assert.  If not NULL,
119     the values returned by these functions point to NUL-terminated UTF-8
120     strings.
121
122     The fido_assert_user_id_ptr(), fido_assert_authdata_ptr(),
123     fido_assert_blob_ptr(), fido_assert_hmac_secret_ptr(),
124     fido_assert_largeblob_key_ptr(), fido_assert_sig_ptr(), and
125     fido_assert_id_ptr() functions return pointers to the user ID, CBOR-en‐
126     coded authenticator data, cred blob, hmac-secret, “largeBlobKey”, signa‐
127     ture, and credential ID attributes of statement idx in assert.
128
129     The fido_assert_user_id_len(), fido_assert_authdata_len(),
130     fido_assert_blob_len(), fido_assert_hmac_secret_len(),
131     fido_assert_largeblob_key_len(), fido_assert_sig_len(), and
132     fido_assert_id_len() functions can be used to retrieve the corresponding
133     length of a specific attribute.
134
135     The fido_assert_sigcount() function can be used to obtain the signature
136     counter of statement idx in assert.
137
138     The fido_assert_flags() function returns the authenticator data flags of
139     statement idx in assert.
140
141     Please note that the first statement in assert has an idx (index) value
142     of 0.
143
144     The authenticator data and signature parts of an assertion statement are
145     typically passed to a FIDO 2 server for verification.
146
147     The fido_assert_clientdata_hash_ptr() function returns a pointer to the
148     client data hash of assert.  The corresponding length can be obtained by
149     fido_assert_clientdata_hash_len().
150

RETURN VALUES

152     The authenticator data returned by fido_assert_authdata_ptr() is a CBOR-
153     encoded byte string, as obtained from the authenticator.
154
155     The fido_assert_user_display_name(), fido_assert_user_icon(),
156     fido_assert_user_name(), fido_assert_authdata_ptr(),
157     fido_assert_clientdata_hash_ptr(), fido_assert_hmac_secret_ptr(),
158     fido_assert_largeblob_key_ptr(), fido_assert_user_id_ptr(), and
159     fido_assert_sig_ptr() functions return NULL if the respective field in
160     assert is not set.  If not NULL, returned pointers are guaranteed to ex‐
161     ist until any API function that takes assert without the const qualifier
162     is invoked.
163

SEE ALSO

165     fido_assert_allow_cred(3), fido_assert_set_authdata(3),
166     fido_assert_verify(3), fido_dev_get_assert(3), fido_dev_largeblob_get(3)
167
168BSD                            October 22, 2019                            BSD
Impressum