pub struct Key(_);
cookie
and (crate features cookie-signed
or cookie-private
) only.Expand description
A cryptographic master key for use with Signed
and/or Private
jars.
This structure encapsulates secure, cryptographic keys for use with both
PrivateJar
and SignedJar
. A
single instance of a Key
can be used for both a PrivateJar
and a
SignedJar
simultaneously with no notable security implications.
Implementations
sourceimpl Key
impl Key
sourcepub fn from(key: &[u8]) -> Key
pub fn from(key: &[u8]) -> Key
Creates a new Key
from a 512-bit cryptographically random string.
The supplied key must be at least 512-bits (64 bytes). For security, the master key must be cryptographically random.
Panics
Panics if key
is less than 64 bytes in length.
Example
use cookie::Key;
let key = { /* a cryptographically random key >= 64 bytes */ };
let key = Key::from(key);
sourcepub fn generate() -> Key
pub fn generate() -> Key
Generates signing/encryption keys from a secure, random source. Keys are generated nondeterministically.
Panics
Panics if randomness cannot be retrieved from the operating system. See
Key::try_generate()
for a non-panicking version.
Example
use cookie::Key;
let key = Key::generate();
sourcepub fn try_generate() -> Option<Key>
pub fn try_generate() -> Option<Key>
Attempts to generate signing/encryption keys from a secure, random
source. Keys are generated nondeterministically. If randomness cannot be
retrieved from the underlying operating system, returns None
.
Example
use cookie::Key;
let key = Key::try_generate();
sourcepub fn signing(&self) -> &[u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
pub fn signing(&self) -> &[u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
Returns the raw bytes of a key suitable for signing cookies. Guaranteed to be at least 32 bytes.
Example
use cookie::Key;
let key = Key::generate();
let signing_key = key.signing();
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Key
impl Send for Key
impl Sync for Key
impl Unpin for Key
impl UnwindSafe for Key
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more