libfido2 Drop-In Layer

January 13, 2024 ยท View on GitHub

FIDOk can serve as a partial ABI-compatible replacement for Yubico's libfido2. You can compile and link your C application against a normal libfido2.so.1 (or against FIDOk itself...) and then at run time use libfidok.so instead.

Example of how to use the drop-in:

gcc my_program.c -lfido2 -o my_program # Compile and link against normal libfido2
ln -s /usr/lib/libfidok.so.1 libfido2.so.1 # Create symlink that points to libfidok
env LD_LIBRARY_PATH=. ./my_application # Run with symlink in LD_LIBRARY_PATH ahead of real libfido2

Of course, placing libfidok.so in your system at the /usr/lib/libfido2.so.1 path would have the same effect.

Feature Status:

FeatureStatus
Device ListingImplemented
Open Device from Listing ResultImplemented
Open Device by PathNot Implemented
Get Device InfoVery Limited
Create CredentialImplemented
Set/get raw CBORNot Implemented
Verify CredentialNot Implemented
Get AssertionImplemented
ExtensionsPartial
Verify AssertionNot Implemented
libfido2 crypto functionsNot Implemented