#include "anonymous_tokens/cpp/privacy_pass/rsa_bssa_public_metadata_client.h"
#include <memory>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/string_view.h"
#include "anonymous_tokens/cpp/crypto/constants.h"
#include "anonymous_tokens/cpp/crypto/crypto_utils.h"
#include "anonymous_tokens/cpp/crypto/rsa_blinder.h"
#include "anonymous_tokens/cpp/privacy_pass/token_encodings.h"
#include "anonymous_tokens/cpp/shared/status_utils.h"
#include <openssl/base.h>
#include <openssl/digest.h>
#include <openssl/rsa.h>
namespace anonymous_tokens {
namespace {
absl::Status CheckKeySize(const RSA& key) { … }
}
absl::StatusOr<std::unique_ptr<PrivacyPassRsaBssaPublicMetadataClient>>
PrivacyPassRsaBssaPublicMetadataClient::Create(const RSA& rsa_public_key) { … }
PrivacyPassRsaBssaPublicMetadataClient::PrivacyPassRsaBssaPublicMetadataClient(
const int salt_length, const std::string rsa_modulus,
const std::string rsa_e, const EVP_MD* signature_hash_function,
const EVP_MD* mgf1_hash_function)
: … { … }
absl::StatusOr<ExtendedTokenRequest>
PrivacyPassRsaBssaPublicMetadataClient::CreateTokenRequest(
const absl::string_view challenge, const absl::string_view nonce,
const absl::string_view token_key_id, const Extensions& extensions) { … }
absl::StatusOr<Token> PrivacyPassRsaBssaPublicMetadataClient::FinalizeToken(
const absl::string_view blinded_signature) { … }
absl::Status PrivacyPassRsaBssaPublicMetadataClient::Verify(
Token token_to_verify, const absl::string_view encoded_extensions,
RSA& rsa_public_key) { … }
}