pub struct PrefixedApiKeyController<R: RngCore + Clone, D: Digest + FixedOutputReset> { /* private fields */ }
Implementations§
source§impl<R: RngCore + Clone, D: Digest + FixedOutputReset> PrefixedApiKeyController<R, D>
impl<R: RngCore + Clone, D: Digest + FixedOutputReset> PrefixedApiKeyController<R, D>
pub fn new( prefix: String, rng: R, short_token_prefix: Option<String>, short_token_length: usize, long_token_length: usize ) -> PrefixedApiKeyController<R, D>
sourcepub fn configure() -> ControllerBuilder<R, D>
pub fn configure() -> ControllerBuilder<R, D>
Creates an instance of ControllerBuilder to enable building the controller via the builder pattern
sourcepub fn generate_key(&self) -> PrefixedApiKey
pub fn generate_key(&self) -> PrefixedApiKey
Generates a new PrefiexedApiKey using the configured string prefix, short token prefix (if configured), and random number generator. A hash of the new keys’ long token is not calculated, so you’ll still need to create the hash after calling this function.
sourcepub fn generate_key_and_hash(&self) -> (PrefixedApiKey, String)
pub fn generate_key_and_hash(&self) -> (PrefixedApiKey, String)
Generates a new key using the generate_key function, but also calculates and returns the hash of the long token.
sourcepub fn long_token_hashed(&self, pak: &PrefixedApiKey) -> String
pub fn long_token_hashed(&self, pak: &PrefixedApiKey) -> String
Hashes the long token of the provided PrefixedApiKey using the hashing algorithm configured on the controller. The hashing instance gets reused each time this is called, which is why the FixedOutputReset trait is required.
sourcepub fn check_hash(&self, pak: &PrefixedApiKey, hash: &str) -> bool
pub fn check_hash(&self, pak: &PrefixedApiKey, hash: &str) -> bool
Secure helper for checking if a given PrefixedApiKey matches a given long token hash. This uses the hashing algorithm configured on the controller and uses the constant_time_eq method of comparing hashes to avoid possible timing attacks.
Trait Implementations§
source§impl<R: Clone + RngCore + Clone, D: Clone + Digest + FixedOutputReset> Clone for PrefixedApiKeyController<R, D>
impl<R: Clone + RngCore + Clone, D: Clone + Digest + FixedOutputReset> Clone for PrefixedApiKeyController<R, D>
source§fn clone(&self) -> PrefixedApiKeyController<R, D>
fn clone(&self) -> PrefixedApiKeyController<R, D>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more