pub struct CodeVerifier(/* private fields */);Expand description
A PKCE code verifier (RFC 7636 §4.1).
The verifier is a cryptographically-random string of 43-128 unreserved ASCII characters. We generate 32 random bytes and base64url-encode them (no padding) to produce exactly 43 characters, satisfying the minimum.
Implementations§
Source§impl CodeVerifier
impl CodeVerifier
Sourcepub fn new() -> Self
pub fn new() -> Self
Generate a new cryptographically-random code verifier.
Uses rand::OsRng (CSPRNG) for entropy per RFC 7636 §4.1.
Sourcepub fn from_string(s: impl Into<String>) -> Result<Self, AuthError>
pub fn from_string(s: impl Into<String>) -> Result<Self, AuthError>
Validate and construct a verifier from an existing string (e.g. received from client).
Accepts only unreserved ASCII characters per RFC 7636 §4.1: A-Z a-z 0-9 - . _ ~
Sourcepub fn to_challenge(&self) -> CodeChallenge
pub fn to_challenge(&self) -> CodeChallenge
Derive the S256 code challenge for this verifier.
BASE64URL(SHA-256(ASCII(code_verifier))) per RFC 7636 §4.6.
Trait Implementations§
Source§impl Clone for CodeVerifier
impl Clone for CodeVerifier
Source§fn clone(&self) -> CodeVerifier
fn clone(&self) -> CodeVerifier
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CodeVerifier
impl Debug for CodeVerifier
Auto Trait Implementations§
impl Freeze for CodeVerifier
impl RefUnwindSafe for CodeVerifier
impl Send for CodeVerifier
impl Sync for CodeVerifier
impl Unpin for CodeVerifier
impl UnsafeUnpin for CodeVerifier
impl UnwindSafe for CodeVerifier
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
Mutably borrows from an owned value. Read more