pub struct Key(/* private fields */);
Expand description
A cryptographic master key to sign or encrypt cookies.
Implementations§
§impl Key
impl Key
pub 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);
pub 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();
pub 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§
§impl<'de> Deserialize<'de> for Key
impl<'de> Deserialize<'de> for Key
§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>,
§impl TryFrom<&[u8]> for Key
impl TryFrom<&[u8]> for Key
§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());
§impl TryFrom<Vec<u8>> for Key
impl TryFrom<Vec<u8>> for Key
§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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.