use crate::crypto::x25519::PublicKey;
use crate::key_bundle::{KeyBundleError, Lifetime, OneTimePreKeyId};
pub trait KeyBundle {
fn identity_key(&self) -> &PublicKey;
fn signed_prekey(&self) -> &PublicKey;
fn onetime_prekey(&self) -> Option<&PublicKey>;
fn onetime_prekey_id(&self) -> Option<OneTimePreKeyId>;
fn lifetime(&self) -> &Lifetime;
fn verify(&self) -> Result<(), KeyBundleError>;
}