chromium/third_party/anonymous_tokens/src/anonymous_tokens/cpp/crypto/rsa_blinder.cc

// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include "anonymous_tokens/cpp/crypto/rsa_blinder.h"

#include <memory>
#include <string>
#include <utility>
#include <vector>

#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/str_cat.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/shared/status_utils.h"
#include <openssl/digest.h>
#include <openssl/rsa.h>

namespace anonymous_tokens {

absl::StatusOr<std::unique_ptr<RsaBlinder>> RsaBlinder::New(
    absl::string_view rsa_modulus, absl::string_view rsa_public_exponent,
    const EVP_MD* signature_hash_function, const EVP_MD* mgf1_hash_function,
    int salt_length, const bool use_rsa_public_exponent,
    std::optional<absl::string_view> public_metadata) {}

RsaBlinder::RsaBlinder(int salt_length,
                       std::optional<absl::string_view> public_metadata,
                       const EVP_MD* sig_hash, const EVP_MD* mgf1_hash,
                       bssl::UniquePtr<RSA> rsa_public_key,
                       bssl::UniquePtr<BIGNUM> r,
                       bssl::UniquePtr<BIGNUM> r_inv_mont,
                       bssl::UniquePtr<BN_MONT_CTX> mont_n)
    :{}

absl::StatusOr<std::string> RsaBlinder::Blind(const absl::string_view message) {}

// Unblinds `blind_signature`.
absl::StatusOr<std::string> RsaBlinder::Unblind(
    const absl::string_view blind_signature) {}

absl::Status RsaBlinder::Verify(absl::string_view signature,
                                absl::string_view message) {}

}  // namespace anonymous_tokens