commit b0158fd3be5217e52ba3221d7f9771e779b481f3
parent 7b98598bba8ee7bf187f80f99d3b415365f63517
Author: Zack Newman <zack@philomathiclife.com>
Date: Sat, 8 Mar 2025 21:08:07 -0700
do not elide lifetimes for ClientState::options
Diffstat:
3 files changed, 26 insertions(+), 22 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
@@ -10,7 +10,7 @@ name = "webauthn_rp"
readme = "README.md"
repository = "https://git.philomathiclife.com/repos/webauthn_rp/"
rust-version = "1.85.0"
-version = "0.2.4"
+version = "0.2.5"
[package.metadata.docs.rs]
all-features = true
@@ -25,7 +25,7 @@ precis-profiles = { version = "0.1.11", default-features = false }
rand = { version = "0.9.0", default-features = false, features = ["thread_rng"] }
rsa = { version = "0.9.7", default-features = false, features = ["sha2"] }
serde = { version = "1.0.218", default-features = false, features = ["alloc"], optional = true }
-serde_json = { version = "1.0.139", default-features = false, features = ["alloc"], optional = true }
+serde_json = { version = "1.0.140", default-features = false, features = ["alloc"], optional = true }
url = { version = "2.5.4", default-features = false }
[dev-dependencies]
@@ -33,7 +33,7 @@ data-encoding = { version = "2.8.0", default-features = false, features = ["allo
ed25519-dalek = { version = "2.1.1", default-features = false, features = ["alloc", "pkcs8"] }
p256 = { version = "0.13.2", default-features = false, features = ["pem"] }
p384 = { version = "0.13.1", default-features = false, features = ["pkcs8"] }
-serde_json = { version = "1.0.139", default-features = false, features = ["preserve_order"] }
+serde_json = { version = "1.0.140", default-features = false, features = ["preserve_order"] }
### FEATURES #################################################################
diff --git a/src/request/auth.rs b/src/request/auth.rs
@@ -1,29 +1,29 @@
#[cfg(doc)]
use super::{
super::response::{
+ Backup, CollectedClientData, Flag,
auth::AuthenticatorData,
register::{DynamicState, StaticState},
- Backup, CollectedClientData, Flag,
},
- register::{self, PublicKeyCredentialCreationOptions},
AsciiDomain, DomainOrigin, Url,
+ register::{self, PublicKeyCredentialCreationOptions},
};
use super::{
super::{
+ AuthenticatedCredential,
response::{
+ AuthenticatorAttachment,
auth::{
- error::{AuthCeremonyErr, ExtensionErr, OneOrTwo},
Authentication, AuthenticatorExtensionOutput, HmacSecret,
+ error::{AuthCeremonyErr, ExtensionErr, OneOrTwo},
},
register::CompressedPubKey,
- AuthenticatorAttachment,
},
- AuthenticatedCredential,
},
- auth::error::{RequestOptionsErr, SecondFactorErr},
BackupReq, Ceremony, CeremonyOptions, Challenge, CredentialId, Credentials, ExtensionReq, Hint,
Origin, PublicKeyCredentialDescriptor, RpId, SentChallenge, ServerState,
- UserVerificationRequirement, THREE_HUNDRED_THOUSAND,
+ THREE_HUNDRED_THOUSAND, UserVerificationRequirement,
+ auth::error::{RequestOptionsErr, SecondFactorErr},
};
use core::{
borrow::Borrow,
@@ -185,7 +185,6 @@ impl Credentials for AllowedCredentials {
/// assert!(AllowedCredentials::with_capacity(1).as_ref().is_empty());
/// ```
#[inline]
- #[must_use]
fn with_capacity(capacity: usize) -> Self {
Self {
creds: Vec::with_capacity(capacity),
@@ -503,7 +502,7 @@ impl<'rp_id, 'prf> PublicKeyCredentialRequestOptions<'rp_id, 'prf> {
/// This gets sent to the client ASAP.
#[derive(Debug)]
pub struct AuthenticationClientState<'rp_id, 'prf>(PublicKeyCredentialRequestOptions<'rp_id, 'prf>);
-impl AuthenticationClientState<'_, '_> {
+impl<'rp_id, 'prf> AuthenticationClientState<'rp_id, 'prf> {
/// Returns the `PublicKeyCredentialRequestOptions` that was used to start an authentication ceremony.
///
/// # Examples
@@ -523,7 +522,7 @@ impl AuthenticationClientState<'_, '_> {
/// ```
#[inline]
#[must_use]
- pub const fn options(&self) -> &PublicKeyCredentialRequestOptions<'_, '_> {
+ pub const fn options(&self) -> &PublicKeyCredentialRequestOptions<'rp_id, 'prf> {
&self.0
}
}
diff --git a/src/request/register.rs b/src/request/register.rs
@@ -1,25 +1,25 @@
extern crate alloc;
use super::{
super::{
+ DynamicState, Metadata, RegisteredCredential, StaticState,
response::{
+ AuthenticatorAttachment,
register::{
- error::{ExtensionErr, RegCeremonyErr},
Attestation, AttestationFormat, AuthenticatorExtensionOutput,
AuthenticatorExtensionOutputStaticState, ClientExtensionsOutputs,
CredentialProtectionPolicy, Registration, UncompressedPubKey,
+ error::{ExtensionErr, RegCeremonyErr},
},
- AuthenticatorAttachment,
},
- DynamicState, Metadata, RegisteredCredential, StaticState,
},
- register::error::{CreationOptionsErr, NicknameErr, UserHandleErr, UsernameErr},
BackupReq, Ceremony, Challenge, CredentialMediationRequirement, ExtensionInfo, ExtensionReq,
Hint, Origin, PublicKeyCredentialDescriptor, RpId, SentChallenge, ServerState,
- UserVerificationRequirement, THREE_HUNDRED_THOUSAND,
+ THREE_HUNDRED_THOUSAND, UserVerificationRequirement,
+ register::error::{CreationOptionsErr, NicknameErr, UserHandleErr, UsernameErr},
};
#[cfg(doc)]
use crate::{
- request::{auth::PublicKeyCredentialRequestOptions, AsciiDomain, DomainOrigin, Url},
+ request::{AsciiDomain, DomainOrigin, Url, auth::PublicKeyCredentialRequestOptions},
response::{AuthTransports, AuthenticatorTransport, Backup, CollectedClientData},
};
use alloc::borrow::Cow;
@@ -31,7 +31,7 @@ use core::{
num::{NonZeroU32, NonZeroU64},
time::Duration,
};
-use precis_profiles::{precis_core::profile::Profile as _, UsernameCasePreserved};
+use precis_profiles::{UsernameCasePreserved, precis_core::profile::Profile as _};
#[cfg(any(doc, not(feature = "serializable_server_state")))]
use std::time::Instant;
#[cfg(any(doc, feature = "serializable_server_state"))]
@@ -1401,7 +1401,9 @@ impl<'rp_id, 'user_name, 'user_display_name, 'user_handle>
pub struct RegistrationClientState<'rp_id, 'user_name, 'user_display_name, 'user_handle>(
PublicKeyCredentialCreationOptions<'rp_id, 'user_name, 'user_display_name, 'user_handle>,
);
-impl RegistrationClientState<'_, '_, '_, '_> {
+impl<'rp_id, 'user_name, 'user_display_name, 'user_handle>
+ RegistrationClientState<'rp_id, 'user_name, 'user_display_name, 'user_handle>
+{
/// Returns the `PublicKeyCredentialCreationOptions` that was used to start a registration ceremony.
///
/// # Examples
@@ -1431,7 +1433,10 @@ impl RegistrationClientState<'_, '_, '_, '_> {
/// ```
#[inline]
#[must_use]
- pub const fn options(&self) -> &PublicKeyCredentialCreationOptions<'_, '_, '_, '_> {
+ pub const fn options(
+ &self,
+ ) -> &PublicKeyCredentialCreationOptions<'rp_id, 'user_name, 'user_display_name, 'user_handle>
+ {
&self.0
}
}