authdata
struct authdata *data; /* additional data to send to scripts */
struct authdata *data;
struct authdata *data;
struct authdata *data, *dp;
struct authdata *data;
struct authdata *next;
if (fido_check_flags(stmt->authdata.flags, assert->up,
if (fido_check_rp_id(assert->rp_id, stmt->authdata.rp_id_hash) != 0) {
&stmt->authdata, &stmt->authdata_ext));
return (assert->stmt[idx].authdata.flags);
return (assert->stmt[idx].authdata.sigcount);
memset(&stmt->authdata, 0, sizeof(stmt->authdata));
&stmt->authdata, &stmt->authdata_ext) < 0) {
&stmt->authdata, &stmt->authdata_ext) < 0) {
fido_blob_t *authdata_cbor, fido_authdata_t *authdata,
if (fido_buf_read(&buf, &len, authdata, sizeof(*authdata)) < 0) {
authdata->sigcount = be32toh(authdata->sigcount);
if ((authdata->flags & CTAP_AUTHDATA_ATT_CRED) == 0 ||
if ((authdata->flags & CTAP_AUTHDATA_EXT_DATA) != 0 &&
fido_authdata_t *authdata, fido_assert_extattr_t *authdata_ext)
if (fido_buf_read(&buf, &len, authdata, sizeof(*authdata)) < 0) {
authdata->sigcount = be32toh(authdata->sigcount);
if ((authdata->flags & CTAP_AUTHDATA_EXT_DATA) != 0) {
if (fido_check_rp_id(cred->rp.id, cred->authdata.rp_id_hash) != 0) {
if (fido_check_flags(cred->authdata.flags, FIDO_OPT_TRUE,
&cred->authdata_cbor, &cred->authdata, &cred->attcred,
if (get_signed_hash_u2f(&dgst, cred->authdata.rp_id_hash,
sizeof(cred->authdata.rp_id_hash), &cred->cdh,
if (fido_check_rp_id(cred->rp.id, cred->authdata.rp_id_hash) != 0) {
if (fido_check_flags(cred->authdata.flags, FIDO_OPT_TRUE,
if (get_signed_hash_u2f(&dgst, cred->authdata.rp_id_hash,
sizeof(cred->authdata.rp_id_hash), &cred->cdh,
memset(&cred->authdata, 0, sizeof(cred->authdata));
&cred->authdata, &cred->attcred, &cred->authdata_ext) < 0) {
&cred->authdata, &cred->attcred, &cred->authdata_ext) < 0) {
return (cred->authdata.flags);
return (cred->authdata.sigcount);
fido_authdata_t authdata; /* decoded authdata payload */
fido_authdata_t authdata; /* decoded authdata payload */
get_signed_sha1(tpm_sha1_data_t *dgst, const fido_blob_t *authdata,
EVP_DigestUpdate(ctx, authdata->ptr, authdata->len) != 1 ||
fido_authdata_t authdata;
memset(&authdata, 0, sizeof(authdata));
authdata.rp_id_hash) != authdata.rp_id_hash) {
authdata.flags = (CTAP_AUTHDATA_ATT_CRED | CTAP_AUTHDATA_USER_PRESENT);
authdata.sigcount = 0;
len = authdata_blob.len = sizeof(authdata) + sizeof(attcred_raw) +
if (fido_buf_write(&ptr, &len, &authdata, sizeof(authdata)) < 0 ||
(r = sshbuf_froms(b, &authdata)) != 0 ||
sshbuf_len(sig), sshbuf_len(authdata), sshbuf_len(challenge));
fido_cred_set_authdata(cred, sshbuf_ptr(authdata),
sshbuf_len(authdata));
sshbuf_free(authdata);
struct sshbuf *attestation_cert = NULL, *sig = NULL, *authdata = NULL;
uint8_t *authdata;
if ((response->authdata = calloc(1, len)) == NULL) {
memcpy(response->authdata, ptr, len);
free(response->authdata);
freezero(r->authdata, r->authdata_len);
resp->authdata, resp->authdata_len)) != 0 ||