Struct distant_core::SecretKey [−][src]
pub struct SecretKey { /* fields omitted */ }Expand description
A type to represent a secret key.
As default it will randomly generate a SecretKey of 32 bytes.
Errors:
An error will be returned if:
sliceis empty.lengthis 0.lengthis not less thanisize::MAX.
Panics:
A panic will occur if:
- Failure to generate random bytes securely.
Security:
-
Avoid using
unprotected_as_bytes()whenever possible, as it breaks all protections that the type implements. -
The trait
PartialEq<&'_ [u8]>is implemented for this type so that users are not tempted to callunprotected_as_bytesto compare this sensitive value to a byte slice. The trait is implemented in such a way that the comparison happens in constant time. Thus, users should preferSecretType == &[u8]overSecretType.unprotected_as_bytes() == &[u8]. Examples are shown below. The examples apply to any type that implementsPartialEq<&'_ [u8]>.
use orion::pwhash::Password;
// Initialize a password with 32 random bytes.
let password = Password::generate(32)?;
// Secure, constant-time comparison with a byte slice
assert!(password != &[0; 32][..]);
// Secure, constant-time comparison with another Password
assert!(password != Password::generate(32)?);Implementations
Construct from a given byte slice.
Return the object as byte slice. Warning: Should not be used unless strictly needed. This breaks protections that the type implements.