Key characteristics processing

This code will mostly be used by the TA, but is in common to allow for
the possibility that the HAL service might check for invalid parameters
even before invoking the TA.

Much remains to be done, generally indicated by TODO markers.

Bug: 195310053
Test: m libkmr_common; atest libkmr_common_test
Change-Id: I0e19b7176d0c5b8a2a8903f5b4115b41ef45ebca
5 files changed
tree: 5674366336a5d87b8ee3ae177fa43f69d5cb858c
  1. common/
  2. derive/
  3. scripts/
  4. .gitignore
  5. Android.bp
  6. Cargo.toml
  7. NOTICE
  8. OWNERS
  9. README.md
  10. rustfmt.toml
README.md

KeyMint/Rust

This repo holds work in progress for a Rust implementation of Android's KeyMint HAL.

Repo Structure

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.

SubdirCrate Namestd?Description
derivekmr-deriveYes (build-only)Proc macros for deriving the AsCborValue trait
commonkmr-commonNoCommon code used throughout KeyMint/Rust
halkmr-halYesHAL service implementation
boringsslkmr-boringsslYesBoring/OpenSSL-based implementations of crypto traits
testskmr-testsTests and test infrastructure
takmr-taNoTA implementation
ta-mainkmr-taYesTA implementation using TCP