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::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Key, D::Error>where
D: Deserializer<'de>,
Source§impl TryFrom<&[u8]> for Key
impl TryFrom<&[u8]> for Key
Source§fn try_from(key: &[u8]) -> Result<Self, Self::Error>
fn try_from(key: &[u8]) -> Result<Self, Self::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<Self, Self::Error>
fn try_from(key: Vec<u8>) -> Result<Self, Self::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());