Expand description
Platform abstraction traits for SCP.
These four traits abstract device-specific capabilities behind Rust trait interfaces so that production implementations (Secure Enclave, Android Keystore) and testing implementations (in-memory) share the same API surface. See ADR-006 for the full platform adapter design.
§Traits
KeyCustody— Cryptographic key management (generation, signing, ECDH, pseudonym derivation)DeviceAttestation— Device-level attestation tokensPush— Push notification registration and handlingStorage— Persistent key-value byte storage
Structs§
- Device
Attestation Token - A device attestation token produced by
DeviceAttestation::attest. - KeyHandle
- Opaque handle to a cryptographic key managed by a
KeyCustodyimplementation. - Pseudonym
Keypair - A deterministic pseudonym keypair derived from an identity key and a context
ID via
KeyCustody::derive_pseudonym. - Public
Key - A public key extracted from a
KeyHandle. - Push
Token - A push notification token returned by
Push::register. - Shared
Secret - A 32-byte X25519 shared secret produced by
KeyCustody::dh_agree. - Signature
- An Ed25519 signature produced by
KeyCustody::sign. - Wake
Signal - A wake signal produced by
Push::handle_notification.
Enums§
- Custody
Type - The custody type for a given key, indicating where the key material is stored and how it is protected.
- KeyType
- The type of cryptographic key managed by a
KeyHandle.
Traits§
- Device
Attestation - Device attestation trait.
- KeyCustody
- Cryptographic key management trait.
- Push
- Push notification trait.
- Storage
- Persistent key-value byte storage trait.