FIDO_CRED_VERIFY(3)

πŸ“¦
version 1.17.0 Β· 2 versions
  • 1.17.0 Β· alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian bookworm, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 1.10.0 Β· ubuntu jammy
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian bookworm, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– FIDO_CRED_VERIFY(3) πŸ’–

okay bestie, buckle up, we're in the Library Functions Manual and this one is the vibe check for attestation signatures. the stars of the show are fido_cred_verify and fido_cred_verify_self β€” two functions whose whole job is to verify the attestation signature of a FIDO2 credential. yes queen, we're doing crypto forensics today ✨


🌸 NAME 🌸

fido_cred_verify, fido_cred_verify_self β€” verify the attestation signature of a FIDO2 credential


πŸŽ€ SYNOPSIS πŸŽ€

#include <fido.h>

int
fido_cred_verify(const fido_cred_t *cred);

int
fido_cred_verify_self(const fido_cred_t *cred);

✨ DESCRIPTION ✨

so like, both fido_cred_verify() and fido_cred_verify_self() are here to verify whether the attestation signature chillin' inside cred actually matches the attributes of the credential. like, does the math check out, does the signature line up. that's the whole assignment πŸ’…

⚠️ real talk bestie: before you use fido_cred_verify() or fido_cred_verify_self() in a sensitive context, the reader is strongly encouraged to make herself familiar with the FIDO2 credential attestation process as defined in the Web Authentication (webauthn) standard. do not skip the homework, i am begging πŸ™ˆ

πŸ”₯ fido_cred_verify()

this one verifies whether the following attributes of cred have been attested by the holder of the private counterpart of the public key contained in the credential's x509 certificate:

  • client data hash
  • relying party ID
  • credential ID
  • type
  • protection policy
  • minimum PIN length
  • resident/discoverable key attribute
  • user verification attribute

and please note: the x509 certificate itself is not verified. nope. not it. that part is on you 🫢

the attestation statement formats supported by fido_cred_verify() are:

  • packed
  • fido-u2f
  • tpm

the attestation type implemented by fido_cred_verify() is Basic Attestation. iconic behavior, no cap πŸ‘‘

πŸ¦‹ fido_cred_verify_self()

this one verifies whether these attributes of cred have been attested by the holder of the credential's private key:

  • client data hash
  • relying party ID
  • credential ID
  • type
  • protection policy
  • minimum PIN length
  • resident/discoverable key attribute
  • user verification attribute

the attestation statement formats supported by fido_cred_verify_self() are:

  • packed
  • fido-u2f

the attestation type implemented by fido_cred_verify_self() is Self Attestation. she's self-made, she's independent πŸ’…βœ¨

other attestation formats and types are not supported. that's the limit, that's the boundary, that's the whole entire perimeter. periodt. πŸ’€

🌈 RETURN VALUES 🌈

the error codes returned by fido_cred_verify() and fido_cred_verify_self() are defined in <fido/err.h>. and if cred passes verification? then FIDO_OK is returned. slay. we love a happy ending πŸŽ‰


πŸ‘‘ SEE ALSO πŸ‘‘


and that's the whole page bestie!! this lil bop came to you courtesy of Debian, dated May 23, 2018, living under the manual name FIDO_CRED_VERIFY(3). go forth, verify those attestation signatures, and stay iconic πŸ’–πŸ§šβœ¨

πŸ“¦ where this page comes from