pub struct IdentityKey<CS: CipherSuite> { /* private fields */ }Expand description
The Device Identity Key.
Implementations§
Source§impl<CS: CipherSuite> IdentityKey<CS>
impl<CS: CipherSuite> IdentityKey<CS>
Source§impl<CS: CipherSuite> IdentityKey<CS>
impl<CS: CipherSuite> IdentityKey<CS>
Source§impl<CS: CipherSuite> IdentityKey<CS>
impl<CS: CipherSuite> IdentityKey<CS>
Sourcepub fn sign(&self, msg: &[u8], context: &[u8]) -> Result<Signature<CS>, Error>
pub fn sign(&self, msg: &[u8], context: &[u8]) -> Result<Signature<CS>, Error>
Creates a signature over msg bound to some context.
msg must NOT be pre-hashed.
§Example
use aranya_crypto::{
IdentityKey, Rng,
default::{DefaultCipherSuite, DefaultEngine},
};
let sk = IdentityKey::<DefaultCipherSuite>::new(&mut Rng);
const MESSAGE: &[u8] = b"hello, world!";
const CONTEXT: &[u8] = b"doc test";
let sig = sk.sign(MESSAGE, CONTEXT).expect("should not fail");
sk.public()
.expect("identity key should be valid")
.verify(MESSAGE, CONTEXT, &sig)
.expect("should not fail");
sk.public()
.expect("identity key should be valid")
.verify(MESSAGE, b"wrong context", &sig)
.expect_err("should fail");
let wrong_sig = sk
.sign(b"different", b"signature")
.expect("should not fail");
sk.public()
.expect("identity key should be valid")
.verify(MESSAGE, CONTEXT, &wrong_sig)
.expect_err("should fail");Trait Implementations§
Source§impl<CS: CipherSuite> Clone for IdentityKey<CS>
impl<CS: CipherSuite> Clone for IdentityKey<CS>
Source§impl<CS: CipherSuite> ConstantTimeEq for IdentityKey<CS>
impl<CS: CipherSuite> ConstantTimeEq for IdentityKey<CS>
Source§impl<CS: CipherSuite> Debug for IdentityKey<CS>
impl<CS: CipherSuite> Debug for IdentityKey<CS>
Source§impl<CS: CipherSuite> Display for IdentityKey<CS>
impl<CS: CipherSuite> Display for IdentityKey<CS>
Source§impl<CS: CipherSuite> Identified for IdentityKey<CS>
impl<CS: CipherSuite> Identified for IdentityKey<CS>
Source§impl<CS: CipherSuite> UnwrappedKey<CS> for IdentityKey<CS>
impl<CS: CipherSuite> UnwrappedKey<CS> for IdentityKey<CS>
Source§fn into_secret(self) -> Secret<CS>
fn into_secret(self) -> Secret<CS>
Converts itself into the underlying
Secret.Source§fn try_from_secret(key: UnwrappedSecret<CS>) -> Result<Self, WrongKeyType>
fn try_from_secret(key: UnwrappedSecret<CS>) -> Result<Self, WrongKeyType>
Converts itself from a
UnwrappedSecret.impl<CS: CipherSuite> ZeroizeOnDrop for IdentityKey<CS>
Auto Trait Implementations§
impl<CS> !Freeze for IdentityKey<CS>
impl<CS> !RefUnwindSafe for IdentityKey<CS>
impl<CS> Send for IdentityKey<CS>
impl<CS> !Sync for IdentityKey<CS>
impl<CS> Unpin for IdentityKey<CS>
impl<CS> UnwindSafe for IdentityKey<CS>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§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>
Returns the layout of the type.
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
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.