pub struct Key(/* private fields */);Expand description
A cryptographic master key to sign or encrypt cookies.
Implementations§
Source§impl Key
impl Key
Sourcepub fn from(key: Vec<u8>) -> Key
pub fn from(key: Vec<u8>) -> Key
Creates a new Key from a string that’s at least 256-bits (32 bytes) long.
For security, the master key must be cryptographically random.
§Panics
Panics if key is less than 32 bytes in length.
For a non-panicking version, use crate::Key::try_from() or generate a key with
Key::generate() or Key::try_generate().
§Example
use biscotti::Key;
let key = { /* a cryptographically random key >= 32 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 biscotti::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 biscotti::Key;
let key = Key::try_generate();Trait Implementations§
Source§impl<'de> Deserialize<'de> for Key
impl<'de> Deserialize<'de> for Key
Source§fn deserialize<D>(
deserializer: D,
) -> Result<Key, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Key, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl TryFrom<&[u8]> for Key
impl TryFrom<&[u8]> for Key
Source§fn try_from(key: &[u8]) -> Result<Key, <Key as TryFrom<&[u8]>>::Error>
fn try_from(key: &[u8]) -> Result<Key, <Key as TryFrom<&[u8]>>::Error>
A fallible version of Key::from().
Succeeds when Key::from() succeeds and returns an error where
Key::from() panics, namely, if key is too short.
§Example
use biscotti::Key;
let key = { /* a cryptographically random key >= 32 bytes */ };
assert!(Key::try_from(key).is_ok());
// A key that's far too short to use.
let key = &[1, 2, 3, 4][..];
assert!(Key::try_from(key).is_err());Source§impl TryFrom<Vec<u8>> for Key
impl TryFrom<Vec<u8>> for Key
Source§fn try_from(key: Vec<u8>) -> Result<Key, <Key as TryFrom<Vec<u8>>>::Error>
fn try_from(key: Vec<u8>) -> Result<Key, <Key as TryFrom<Vec<u8>>>::Error>
A fallible version of Key::from().
Succeeds when Key::from() succeeds and returns an error where
Key::from() panics, namely, if key is too short.
§Example
use biscotti::Key;
let key = { /* a cryptographically random key >= 32 bytes */ };
assert!(Key::try_from(key).is_ok());
// A key that's far too short to use.
let key = vec![1, 2, 3, 4];
assert!(Key::try_from(key).is_err());impl Eq for Key
Auto Trait Implementations§
impl Freeze for Key
impl RefUnwindSafe for Key
impl Send for Key
impl Sync for Key
impl Unpin for Key
impl UnwindSafe for Key
Blanket Implementations§
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,
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
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.