pub struct Identity { /* private fields */ }Implementations§
Source§impl Identity
impl Identity
pub fn new(rng: &mut dyn Rng) -> Self
Sourcepub fn from_private_key(prv_bytes: &[u8; 64]) -> Self
pub fn from_private_key(prv_bytes: &[u8; 64]) -> Self
Load a complete private identity from its fixed-width key material.
Valid input is represented by the 64-byte type itself, so successful
construction returns Self directly instead of a fall-through status.
Sourcepub fn from_public_key(pub_bytes: &[u8; 64]) -> Result<Self, CryptoError>
pub fn from_public_key(pub_bytes: &[u8; 64]) -> Result<Self, CryptoError>
Load a public-only identity from fixed-width public key material.
Any 32 bytes form a valid X25519 public key, but the Ed25519 half must
decode to a valid curve point; otherwise this returns
CryptoError::InvalidPublicKey.
pub fn get_private_key(&self) -> Option<[u8; 64]>
pub fn get_public_key(&self) -> Option<[u8; 64]>
pub fn hash(&self) -> &[u8; 16]
pub fn encrypt( &self, plaintext: &[u8], rng: &mut dyn Rng, ) -> Result<Vec<u8>, CryptoError>
pub fn encrypt_with_ratchet( &self, plaintext: &[u8], ratchet: Option<&[u8; 32]>, rng: &mut dyn Rng, ) -> Result<Vec<u8>, CryptoError>
Sourcepub fn encrypt_deterministic(
&self,
plaintext: &[u8],
ephemeral_prv: &[u8; 32],
iv: &[u8; 16],
) -> Result<Vec<u8>, CryptoError>
pub fn encrypt_deterministic( &self, plaintext: &[u8], ephemeral_prv: &[u8; 32], iv: &[u8; 16], ) -> Result<Vec<u8>, CryptoError>
Encrypt with a specific ephemeral key and IV for deterministic testing
pub fn decrypt(&self, ciphertext_token: &[u8]) -> Result<Vec<u8>, CryptoError>
Sourcepub fn decrypt_with_ratchets(
&self,
ciphertext: &[u8],
ratchets: &RatchetRing,
enforce: bool,
) -> Result<Decrypted, CryptoError>
pub fn decrypt_with_ratchets( &self, ciphertext: &[u8], ratchets: &RatchetRing, enforce: bool, ) -> Result<Decrypted, CryptoError>
Try newest-first destination keys, optionally forbidding identity-key fallback. The identity hash remains the HKDF salt, including for ratchet encryption.
pub fn sign(&self, message: &[u8]) -> Result<[u8; 64], CryptoError>
pub fn verify(&self, signature: &[u8; 64], message: &[u8]) -> bool
Auto Trait Implementations§
impl Freeze for Identity
impl RefUnwindSafe for Identity
impl Send for Identity
impl Sync for Identity
impl Unpin for Identity
impl UnsafeUnpin for Identity
impl UnwindSafe for Identity
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more