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,