Rust binding for macOS Keychain Services, including TouchID-guarded access to cryptographic keys stored in the Secure Enclave Processor (SEP).
This crate has two suites of tests:
cargo test
- run a minimal set of tests (e.g. in CI) that work
everywhere, but don't cover all functionality.cargo test --features=interactive-tests --no-run
compile tests which require user interactions, and additionally must be
signed by macOS's code signing in order to work. See code signing notes.The Keychain Service API requires signed code to access much of its
functionality. Accessing many APIs from an unsigned app will return
an ErrorKind::MissingEntitlement
.
Follow the instructions here to create a self-signed code signing certificate: https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html
Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.