## mozilla/authenticator-rs — v0.3.1…v0.6.0

_301+ commits._

### Features
- **Add new algorithm identifiers and relax AuthenticatorInfo algorithms parsing** (912d52e)
- **New struct members added in CTAP 2.2** (fb4e82e)
- **Use workaround for broken generic array 0.14.9 by using the new version in compat-mode** (b5beeee)
- **Add largeBlobKeys-extension** (170217a)
- **Add credBlob-extension** (ec98cd0)
- **Add build support and ioctl bindings for sparc64** (6a934b1)
- **Add RustCrypto backend for crypto module/provider** (3dd9977)
- **Add support for WebAuthn PRF extension (#337)** (c3defd3)
- **Add tests of serialize_map_optional!** (a05a04c)
- **Add test of BioEnrollment serialization** (214a760)
- **Add test of BioEnrollmentParams serialization** (d342d8b)
- **Add test of CredManagementParams serialization** (0b45ce7)
- **Add test of AuthenticatorConfig serialization** (d67563c)
- **Add test of SetMinPINLength serialization** (7acca2a)
- **Add test of ClientPIN serialization** (2381450)
- **Add test of GetAssertion serialization** (f824322)
- **Add test of MakeCredentials serialization** (3679ed0)
- **Add tests of AttestationObject and AttestationStatement serialization** (713867c)
- **Remove support for credProps for CTAP 2.0 devices** (925b9b8)
- **Add StatusUpdate::SelectResultNotice** (d3a0d09)
- **Add der_spki() methods for all supported key types** (4eab8e2)
- **Update support for hmac-secret extension in MakeCredentials** (8f49140)
- **Add support for the credProtect extension** (b2b2fb3)
- **Add support for the minPinLength extension** (bbba547)
- **Rework support for AppId extension** (d512ad9)
- **Add support for the credProps extension** (a00fd64)
- **Add finalize_result to MakeCredentials/GetAssertion for extension handling** (cb8391a)
- **Add extension fields to MakeCredentialsResult and GetAssertionResult** (60bef96)
- **Add ctap2::server::AuthenticatorExtensionsClientInputs and Outputs** (c6af073)
- **Automatically clear cached PUAT and try getting a new one, in case it is invalid.** (1330c04)
- **Support deserialization of PublicKeyCredentialDescriptor from JSON and from CBOR.** (2596bbd)
- **Improve CTAP2 support of AppID extension** (55a6bca)
- **Add AuthenticatorData::to_vec** (4e416bd)
- **Add anonymize method to AttestationObject** (d0d8d7d)
- **Add client pin serialization tests** (408cfbe)
- **Use Bytes::new(&[u8]) in serialization instead of storing ByteBufs** (94db1be)
- **Add support for ECDSA over P256 using NSS** (c1af962)

### Fixes
- **Bump rust-toolchain.toml channel to 1.90.0 and fix lints** (c3bd4b6)
- **fix clippy 1.82.0 lints** (97d05df)
- **fix several build warnings** (04f751c)
- **Fix typo** (86ca747)
- **Fix #319: CTAP2.0 bug in preflighting, which can omit credential data** (32f8e14)
- **Fix new clippy warnings** (593f505)
- **Fix OKP key map length** (0c72cca)
- **Fix credProtect support detection for CTAP1 devices** (fc99667)
- **Fix typo** (dbdc97f)
- **Fix serialization of COSE RSA keys** (08f3271)
- **Fix COSEKeyTypeId serialization for non-EC keys** (28036f3)
- **Implement (and fix) all possible operations for CredManagement and BioEnrollment to interactive-example** (99e5930)
- **Try to fix clippy warnings** (7e6c9bf)
- **Fix wrong copy&paste comments and do not copy large_blob_keys** (47d82fd)
- **Fix dead code warnings** (b55d51b)

### Backend
- **Bump version to 0.6.0** (86caf8b)
- **Switch from nss-gk-api to nss-rs** (a031e4c)
- **Preserve AAGUID in AttestationObject::anonymize** (acfe4df)
- **use serde_cbor_2 instead of serde_cbor** (8d6f114)
- **Bump rust-toolchain.toml channel to 1.82.0** (c822606)
- **Bump core-foundation dependency** (d601a4e)
- **Remove apparently deprecated as_slice()-calls for Hash-results** (847c7bd)
- **Address feedback** (43c0cf1)
- **Adding tests (and some minor fixes the tests revealed)** (d62d602)
- **Bump version to 0.5.0** (13c7ee2)
- **Tolerate unknown AuthenticatorVersion values while deserializing** (b440e57)
- **Use AuthenticatorVersion in crypto module** (87f812b)
- **Remove now-redundant return statements** (90c9fcd)
- **Extract function PinUvAuthProtocol::from_id** (faea4af)
- **Only create shared secret, when hmac is requested for CTAP2.0 tokens** (9410d65)
- **Bump version to 0.4.1** (1959330)
- **Use rsaEncryption OID for RSA keys** (d611d68)
- **Bump version to 0.4.0** (b04ce2f)
- **Remove identifier from first 10 entries of serialize_map_optional!** (aace29d)
- **Don't require crypto backend for util::decode_hex** (fb98f43)
- **Eliminate single-use variable** (eaf32fc)
- **Use fully qualified type and method names in serialize_map! macros** (2af9bf5)
- **Move SerializeMap import inside serialize_map! macros** (83f10e1)
- **Serialize AttestationStatementFidoU2F in canonical order** (30bdcba)
- **Use macro serialize_map! in impl Serialize for AttestationObject** (5132d8c)
- **Don't evaluate values twice in serialize_map!** (9d141ae)
- **Extract serialize_map! macros** (e3a81a3)
- **Bump version to 0.4.0-alpha.24** (b21f8fa)
- **Handle present-but-empty extension data when serializing AuthenticatorData** (be6526c)
- **Use Mozilla minimum supported rust version in Github workflows** (0737daf)
- **Bump version to 0.4.0-alpha.23** (24bfccc)
- **Return authenticator attachment with results** (cb8a2c1)
- **Make finalize_result take a FidoDevice as input** (c9a6692)
- **Remove unnecessary RelyingPartyWrapper type** (d37f5ad)
- **Bump version to 0.4.0-alpha.22** (915bcbc)
- **Rename User to PublicKeyCredentialUserEntity** (5d20800)
- **Forbid empty integer in DER encoder** (f96f753)
- **Dont ignore cached PUATs for devices < FIDO_2_1** (7fa6364)
- **Bump version to 0.4.0-alpha.21** (8a22b32)
- **Remove legacy_register and legacy_sign** (282a08c)
- **Allow FnOnce callback functions** (7227568)
- **Call finalize_result after CTAP1 MakeCredentials requests** (2cff8a5)
- **clippy** (bf76a7d)
- **rustfmt** (1a1d712)
- **Rename MakeCredentialsExtensions::has_extensions to has_content** (d5092e7)
- **Derive Serialize for GetAssertionExtensions** (9fb9fa9)
- **Make Extension::has_some public for virtual authenticators** (0cb2b95)
- **Use bitflag-contains instead of equality** (d5477d6)
- **Send AddSuccess instead of UpdateSuccess, in case we enrolled a fingerprint with a name provided.** (6957fa6)
- **Only use cached PUAT if the permissions fit.** (2a53e3e)
- **Return the correct CredentialExcluded error when handling CTAP1 devices** (651ae81)
- **Bump version to 0.4.0-alpha.20** (5ed5521)
- **backout auto_select feature** (c556ed4)
- **Replace `!auto_select` with `silent_creds.is_empty()`** (6cf178b)
- **Skip device selection when useful credentials are discovered silently** (12ae64d)
- **Separate StateMachine::init_and_select into init_device and maybe_select_device** (2c5f453)
- **Ignore errors in preflight** (3a9279a)
- **Additional attestation statement formats** (7da65ec)
- **Remove webdriver feature now that it has been moved to Firefox** (0a00a25)
- **Rework integer<->enum conversions in crypto/mod.rs** (4efb357)
- **Remove icon field from WebAuthn PublicKeyCredentialEntitys** (d160f94)
- **Make CheckKeyHandle members public for virtual authenticators** (9ae0614)
- **Make COSEEC2Key::der_spki public for WebAuthn getPublicKey methods** (0777b0c)
- **Call callback from a central place when determining puap.** (406aca4)
- **Bump version to 0.4.0-alpha.19** (d6684ff)
- **Use AttestationObject in MakeCredentialsResult** (2ed7fcc)
- **Separate serialization routines for AttestationObject and MakeCredentialsResult** (bda39d6)
- **Implement InteractiveRequest::Quit to be able to cleanly stop managing** (d755f8b)
- **Don't error out if a bioEnrollment response field is missing that is not reported for bioEnrollmentPreview** (a1f047e)
- **Handle pinuv-crypto errors and do not show UpdateUser as an option for 2.1_PRE-devices** (6d03262)
- **Send PUAT back and forth to avoid multiple PIN-requests for the user when doing management-operations** (6f7a57e)
- **Remove getter/setter of pin from Commands and replace it by top-level variable** (8b22954)
- **Make timeout optional for BioEnrollment** (27a36cc)
- **AuthConfig: Move check for skipping UV into the appropriate function** (e56bbe7)
- **Remove 'regenerate_puap()' from CredentialManagement** (b4e5ec2)
- **Accept unknown values for LastEnrollmentSampleStatus et al.** (046b3e1)
- **Implement FingerprintSensorInfo** (c5c90de)
- **Avoid using ByteBuf in CredentialManagement** (94e1f9c)
- **Remove 'regenerate_puap()' from BioEnrollment** (d4de362)
- **Remove serde_repr and don't expose ByteBuf to users in BioEnrollment** (df33cc3)
- **Remove VendorPrototype** (cb1b6a2)
- **Refactor interactive-example for nicer UI** (b924520)
- **Remove Request<T>-trait** (79bd444)
- **Implement AuthenticatorConfig, CredentialManagement and BioEnrollment** (5235c01)
- **Upgrade base64 to 0.21** (3f98470)
- **Remove UnsupportedOption::HmacSecret** (fdf2492)
- **Ignore HMAC Secret extension if not supported** (1f986e7)
- **CTAP 2.0 does not always require UV in MakeCredentials** (33f75ed)
- **Bump version to 0.4.0-alpha.18** (5a6a124)
- **Export StateMachine for custom implementations of Manager** (0bdc9c1)
- **Make pin token commands user-cancellable** (2f48fdd)
- **Bump version to 0.4.0-alpha.17** (7a4e86e)
- **Allow manual construction of attestation objects** (9a9f483)
- **Bump version to 0.4.0-alpha.16** (61ae408)
- **Allow COSEAlgorithm::ECDH_ES_HKDF256 in COSEKey::generate** (1db6dd2)
- **Allow trailing data in der_expect_tag_with_short_len** (e37aa7f)
- **Type visibility changes for virtual authenticators** (8947b15)
- **Remove Nonce type** (22e2234)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/mozilla/authenticator-rs?utm_source=github-action)._