Expand description
Nothing here generates randomness: the 64 bytes ARE the two private keys, used verbatim (no stretching). Their quality is the key’s quality.
Modules§
Structs§
- Identity
Encryption Public Key - X25519 public keys are used outside of identity work as well. This newtype is used as a brand to avoid accidental crossing.
- Identity
Hash - Identity
Material Length Error - Identity
Public Keys - Identity
Signing Public Key - Ed25519 public keys are used outside of identity work as well. This newtype is used as a brand to avoid accidental crossing.
- Opened
Token - Private
Identity Material - Public
Identity Material - Remote
Identity - The encrypting side of RNS 1.4.2
Identity.encrypt. No private material. - Retain
Identity Outcome - Zeroizing
Zeroizingis a a wrapper for anyZ: Zeroizetype which implements aDrophandler which zeroizes dropped values.
Enums§
- Decrypt
Error - Destination
Identity Retention State - Encrypt
Error - Identity
KeyFallback - RNS 1.4.2
Identity.decrypt(..., enforce_ratchets=…): whether the identity key may open a token that no retained ratchet authenticates. - Mark
Destination Used Outcome - Opened
By - The reference surfaces this as
Destination.latest_ratchet_id(Nonewhen the identity key opened it). - Release
Destination Outcome - Retain
Destination Outcome
Constants§
- ENCRYPTION_
EPHEMERAL_ PUBLIC_ KEY_ LEN - ENCRYPTION_
IV_ LEN - IDENTITY_
PUBLIC_ KEY_ LEN - The public mirror: an X25519 encryption key ‖ an Ed25519 signing key, RNS’s
Identity.get_public_key()layout. - IDENTITY_
SECRET_ KEY_ LEN - An X25519 secret ‖ an Ed25519 secret. RNS’s persisted layout (
prv_bytes ‖ sig_prv_bytes); these bytes are the keys.
Traits§
- Identity
Signer - Deliberately the operation surface, not the secret one. No accessor for either private key.
Functions§
- decrypt_
token_ in_ place_ with_ ratchets - RNS 1.4.2
Identity.decrypt(ciphertext, ratchets=…): ratchets newest-first, then the identity key. The HKDF salt stays the identity hash even when a ratchet did the exchange (referenceget_saltisself.hashunconditionally). Candidates are probed by MAC so the buffer decrypts in place exactly once.