1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use crate::Result; pub trait PublicKey { fn as_bytes(&self) -> &[u8]; fn from_bytes(bytes: &[u8]) -> Result<Self> where Self: Sized; } pub trait SecretKey { fn as_bytes(&self) -> &[u8]; fn from_bytes(bytes: &[u8]) -> Result<Self> where Self: Sized; } pub trait Ciphertext { fn as_bytes(&self) -> &[u8]; fn from_bytes(bytes: &[u8]) -> Result<Self> where Self: Sized; } pub trait SharedSecret { fn as_bytes(&self) -> &[u8]; fn from_bytes(bytes: &[u8]) -> Result<Self> where Self: Sized; }