pub struct SessionSk { /* private fields */ }Expand description
A verified Session and its delegated private signing key.
Clone law: cloning a SessionSk duplicates the same in-memory signing and decryption authority.
The clone preserves the account DID, session identity, and session public key; it does not mint,
rotate, or narrow the capability.
Implementations§
Source§impl SessionSk
impl SessionSk
Sourcepub fn new_with_seckey(key: &SecretKey) -> Result<Self>
pub fn new_with_seckey(key: &SecretKey) -> Result<Self>
Generate a session with a private key. Only use this for unit tests.
To protect account private keys in production, use SessionSkBuilder instead.
Sourcepub fn session_public_key(&self) -> PublicKey<33>
pub fn session_public_key(&self) -> PublicKey<33>
Return the secp256k1 session public key used for encryption.
Sourcepub fn decrypt_elgamal_aead(
&self,
sealed: &AeadCiphertext,
aad: &[u8],
) -> Result<Vec<u8>>
pub fn decrypt_elgamal_aead( &self, sealed: &AeadCiphertext, aad: &[u8], ) -> Result<Vec<u8>>
Decrypt an ElGamal-AEAD envelope with this session key.
Sourcepub fn sign(&self, msg: &[u8]) -> Result<Vec<u8>>
pub fn sign(&self, msg: &[u8]) -> Result<Vec<u8>>
Sign a message with the delegated session key.
Sourcepub fn account_did(&self) -> Did
pub fn account_did(&self) -> Did
Get the authorizing account DID.
Sourcepub fn account_verifier(&self) -> AccountVerifier
pub fn account_verifier(&self) -> AccountVerifier
Get the typed account verifier from the session.
Sourcepub fn dump(&self) -> Result<String>
pub fn dump(&self) -> Result<String>
Encode this session key for storage in a configuration file.
Restore it with SessionSk::from_str.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for SessionSk
impl<'de> Deserialize<'de> for SessionSk
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for SessionSk
impl StructuralPartialEq for SessionSk
Auto Trait Implementations§
impl Freeze for SessionSk
impl RefUnwindSafe for SessionSk
impl Send for SessionSk
impl Sync for SessionSk
impl Unpin for SessionSk
impl UnsafeUnpin for SessionSk
impl UnwindSafe for SessionSk
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.