Skip to content

Commit 7b38479

Browse files
authored
Merge pull request #117 from linux-credentials/libwebauthn-json-2
Use libwebauthn for JSON response serialization
2 parents 67f36e5 + c2759d6 commit 7b38479

6 files changed

Lines changed: 59 additions & 875 deletions

File tree

credentialsd/src/cbor.rs

Lines changed: 0 additions & 230 deletions
This file was deleted.

credentialsd/src/cose.rs

Lines changed: 0 additions & 82 deletions
This file was deleted.

credentialsd/src/gateway/mod.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ impl GatewayService {
9494
// - if RP ID is set, but origin's effective domain doesn't match
9595
// - query for related origins, if supported
9696
// - fail if not supported, or if RP ID doesn't match any related origins.
97-
let (make_cred_request, client_data_json) =
97+
let make_cred_request =
9898
create_credential_request_try_into_ctap2(&request, &request_environment)
9999
.inspect_err(|_| {
100100
tracing::error!(
@@ -106,7 +106,7 @@ impl GatewayService {
106106
return Err(WebAuthnError::NotSupportedError);
107107
}
108108
let cred_request =
109-
CredentialRequest::CreatePublicKeyCredentialRequest(make_cred_request);
109+
CredentialRequest::CreatePublicKeyCredentialRequest(make_cred_request.clone());
110110

111111
let response = self
112112
.request_controller
@@ -115,14 +115,14 @@ impl GatewayService {
115115

116116
if let CredentialResponse::CreatePublicKeyCredentialResponse(cred_response) = response {
117117
let public_key_response =
118-
create_credential_response_try_from_ctap2(&cred_response, client_data_json)
118+
create_credential_response_try_from_ctap2(&cred_response, &make_cred_request)
119119
.map_err(|err| {
120-
tracing::error!(
121-
"Failed to parse credential response from authenticator: {err}"
122-
);
123-
// Using NotAllowedError as a catch-all error.
124-
WebAuthnError::NotAllowedError
125-
})?;
120+
tracing::error!(
121+
"Failed to parse credential response from authenticator: {err}"
122+
);
123+
// Using NotAllowedError as a catch-all error.
124+
WebAuthnError::NotAllowedError
125+
})?;
126126
Ok(public_key_response.into())
127127
} else {
128128
// TODO: is response safe to log here?
@@ -154,14 +154,15 @@ impl GatewayService {
154154
// - if RP ID is set, but origin's effective domain doesn't match
155155
// - query for related origins, if supported
156156
// - fail if not supported, or if RP ID doesn't match any related origins.
157-
let (get_cred_request, client_data_json) =
157+
let get_cred_request =
158158
get_credential_request_try_into_ctap2(&request, &request_environment).map_err(
159159
|e| {
160160
tracing::error!("Could not parse passkey assertion request: {e:?}");
161161
WebAuthnError::TypeError
162162
},
163163
)?;
164-
let cred_request = CredentialRequest::GetPublicKeyCredentialRequest(get_cred_request);
164+
let cred_request =
165+
CredentialRequest::GetPublicKeyCredentialRequest(get_cred_request.clone());
165166

166167
let response = self
167168
.request_controller
@@ -170,7 +171,7 @@ impl GatewayService {
170171

171172
if let CredentialResponse::GetPublicKeyCredentialResponse(cred_response) = response {
172173
let public_key_response =
173-
get_credential_response_try_from_ctap2(&cred_response, client_data_json)
174+
get_credential_response_try_from_ctap2(&cred_response, &get_cred_request)
174175
.map_err(|err| {
175176
tracing::error!(
176177
"Failed to parse credential response from authenticator: {err}"

0 commit comments

Comments
 (0)