commit | ed33ed1af48e3c3131a4bf96db6d8897d76644e0 | [log] [tgz] |
---|---|---|
author | David Drysdale <drysdale@google.com> | Tue Aug 23 10:01:39 2022 +0100 |
committer | David Drysdale <drysdale@google.com> | Thu Sep 01 06:55:32 2022 +0100 |
tree | 22b66aad0ddc83be643b57fec42b53d62fe6d65f | |
parent | fc718253a38a97d2601b51d735b871c087ce7706 [diff] |
Changes from testing and review This CL syncs the AOSP version of the code in common/ with the current main branch of the development repo, skipping any code that relies on new dependencies being imported. Major changes: - encode curve type (Nist, EdDsa, Xdh) in serialized EC keys - split Ed25519 keys from X25519 keys from NIST keys - move ckdf/hkdf into traits with default impls for AesCmac / Hmac - commonize operation traits - tweak error behaviour to match what VTS tests expect - add message for setting attestation ID info (but only if there is no trait impl provided for retrieving attestation IDs for the device) - Tag::UsageCountLimit is a special case - enforced at different levels depending on value and secure storage availability Test: m libkmr_common Bug: 195310053 Change-Id: I62c9e6583ef2b1f0d43c8030dea550e85d4dede8
This repo holds work in progress for a Rust implementation of Android's KeyMint HAL.
The codebase is divided as follows. Only the crates in bold are expected to be used in Android; the remainder are conveniences to allow development outside of Android.
Subdir | Crate Name | std ? | Description |
---|---|---|---|
derive | kmr-derive | Yes (build-only) | Proc macros for deriving the AsCborValue trait |
common | kmr-common | No | Common code used throughout KeyMint/Rust |
hal | kmr-hal | Yes | HAL service implementation |
boringssl | kmr-boringssl | Yes | Boring/OpenSSL-based implementations of crypto traits |
tests | kmr-tests | Tests and test infrastructure | |
ta | kmr-ta | No | TA implementation |
ta-main | kmr-ta | Yes | TA implementation using TCP |