BlindSignAuth: Update error messages to return constant strings. Messages now return at Anonymous Tokens-level granularity. PiperOrigin-RevId: 678345762
diff --git a/quiche/blind_sign_auth/blind_sign_auth.cc b/quiche/blind_sign_auth/blind_sign_auth.cc index 2f6c4e1..47031e2 100644 --- a/quiche/blind_sign_auth/blind_sign_auth.cc +++ b/quiche/blind_sign_auth/blind_sign_auth.cc
@@ -78,7 +78,8 @@ if (!response.ok()) { QUICHE_LOG(WARNING) << "GetInitialDataRequest failed: " << response.status(); - std::move(callback)(response.status()); + std::move(callback)(absl::InvalidArgumentError( + "GetInitialDataRequest failed: invalid response")); return; } absl::StatusCode code = response->status_code(); @@ -86,7 +87,8 @@ std::string message = absl::StrCat("GetInitialDataRequest failed with code: ", code); QUICHE_LOG(WARNING) << message; - std::move(callback)(absl::Status(code, message)); + std::move(callback)( + absl::InvalidArgumentError("GetInitialDataRequest failed")); return; } // Parse GetInitialDataResponse. @@ -133,7 +135,9 @@ anonymous_tokens::CreatePublicKeyRSA( public_key_proto.n(), public_key_proto.e()); if (!bssl_rsa_key.ok()) { - std::move(callback)(bssl_rsa_key.status()); + QUICHE_LOG(ERROR) << "Failed to create RSA public key: " + << bssl_rsa_key.status(); + std::move(callback)(absl::InternalError("Failed to create RSA public key")); return; } absl::StatusOr<anonymous_tokens::Extensions> extensions = @@ -143,7 +147,8 @@ if (!extensions.ok()) { QUICHE_LOG(WARNING) << "Failed to decode extensions: " << extensions.status(); - std::move(callback)(extensions.status()); + std::move(callback)( + absl::InvalidArgumentError("Failed to decode extensions")); return; } std::vector<uint16_t> kExpectedExtensionTypes = { @@ -157,7 +162,8 @@ *extensions, absl::MakeSpan(kExpectedExtensionTypes), absl::Now()); if (!result.ok()) { QUICHE_LOG(WARNING) << "Failed to validate extensions: " << result; - std::move(callback)(result); + std::move(callback)( + absl::InvalidArgumentError("Failed to validate extensions")); return; } absl::StatusOr<anonymous_tokens::ExpirationTimestamp> @@ -166,7 +172,8 @@ if (!expiration_timestamp.ok()) { QUICHE_LOG(WARNING) << "Failed to parse expiration timestamp: " << expiration_timestamp.status(); - std::move(callback)(expiration_timestamp.status()); + std::move(callback)( + absl::InvalidArgumentError("Failed to parse expiration timestamp")); return; } absl::Time public_metadata_expiry_time = @@ -185,7 +192,8 @@ if (!token_challenge.ok()) { QUICHE_LOG(WARNING) << "Failed to marshal token challenge: " << token_challenge.status(); - std::move(callback)(token_challenge.status()); + std::move(callback)( + absl::InvalidArgumentError("Failed to marshal token challenge")); return; } @@ -205,7 +213,8 @@ if (!client.ok()) { QUICHE_LOG(WARNING) << "Failed to create Privacy Pass client: " << client.status(); - std::move(callback)(client.status()); + std::move(callback)( + absl::InternalError("Failed to create Privacy Pass client")); return; } @@ -222,7 +231,8 @@ if (!extended_token_request.ok()) { QUICHE_LOG(WARNING) << "Failed to create ExtendedTokenRequest: " << extended_token_request.status(); - std::move(callback)(extended_token_request.status()); + std::move(callback)( + absl::InternalError("Failed to create ExtendedTokenRequest")); return; } privacy_pass_clients.push_back(*std::move(client)); @@ -249,7 +259,7 @@ initial_data_response.at_public_metadata_public_key().use_case()); if (!use_case.ok()) { QUICHE_LOG(WARNING) << "Failed to parse use case: " << use_case.status(); - std::move(callback)(use_case.status()); + std::move(callback)(absl::InvalidArgumentError("Failed to parse use case")); return; } @@ -277,14 +287,15 @@ // Validate response. if (!response.ok()) { QUICHE_LOG(WARNING) << "AuthAndSign failed: " << response.status(); - std::move(callback)(response.status()); + std::move(callback)( + absl::InvalidArgumentError("AuthAndSign failed: invalid response")); return; } absl::StatusCode code = response->status_code(); if (code != absl::StatusCode::kOk) { std::string message = absl::StrCat("AuthAndSign failed with code: ", code); QUICHE_LOG(WARNING) << message; - std::move(callback)(absl::Status(code, message)); + std::move(callback)(absl::InvalidArgumentError("AuthAndSign failed")); return; } @@ -322,7 +333,7 @@ privacy_pass_clients[i]->FinalizeToken(unescaped_blinded_sig); if (!token.ok()) { QUICHE_LOG(WARNING) << "Failed to finalize token: " << token.status(); - std::move(callback)(token.status()); + std::move(callback)(absl::InternalError("Failed to finalize token")); return; } @@ -331,7 +342,7 @@ if (!marshaled_token.ok()) { QUICHE_LOG(WARNING) << "Failed to marshal token: " << marshaled_token.status(); - std::move(callback)(marshaled_token.status()); + std::move(callback)(absl::InternalError("Failed to marshal token")); return; }
diff --git a/quiche/blind_sign_auth/blind_sign_auth_test.cc b/quiche/blind_sign_auth/blind_sign_auth_test.cc index c9ee00d..7c681df 100644 --- a/quiche/blind_sign_auth/blind_sign_auth_test.cc +++ b/quiche/blind_sign_auth/blind_sign_auth_test.cc
@@ -269,7 +269,7 @@ QuicheNotification done; SignedTokenCallback callback = [&done](absl::StatusOr<absl::Span<BlindSignToken>> tokens) { - EXPECT_THAT(tokens.status().code(), absl::StatusCode::kInternal); + EXPECT_THAT(tokens.status().code(), absl::StatusCode::kInvalidArgument); done.Notify(); }; blind_sign_auth_->GetTokens(oauth_token_, num_tokens, ProxyLayer::kProxyA,