#include "anonymous_tokens/cpp/crypto/rsa_blinder.h"
#include <memory>
#include <string>
#include <tuple>
#include <utility>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#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/testing/utils.h"
#include <openssl/base.h>
#include <openssl/digest.h>
#include <openssl/rsa.h>
namespace anonymous_tokens {
namespace {
struct RsaBlinderTestParameters { … };
RsaBlinderTestParameters CreateDefaultTestKeyParameters() { … }
RsaBlinderTestParameters CreateShorterTestKeyParameters() { … }
RsaBlinderTestParameters CreateShortestTestKeyParameters() { … }
RsaBlinderTestParameters CreateSHA256TestKeyParameters() { … }
RsaBlinderTestParameters CreateLongerSaltTestKeyParameters() { … }
class RsaBlinderTest : public testing::TestWithParam<RsaBlinderTestParameters> { … };
TEST_P(RsaBlinderTest, BlindSignUnblindEnd2EndTest) { … }
TEST_P(RsaBlinderTest, DoubleBlindingFailure) { … }
TEST_P(RsaBlinderTest, DoubleUnblindingFailure) { … }
TEST_P(RsaBlinderTest, InvalidSignature) { … }
TEST_P(RsaBlinderTest, InvalidVerificationKey) { … }
INSTANTIATE_TEST_SUITE_P(…);
RsaBlinderPublicMetadataTestParams;
class RsaBlinderWithPublicMetadataTest
: public testing::TestWithParam<RsaBlinderPublicMetadataTestParams> { … };
TEST_P(RsaBlinderWithPublicMetadataTest,
BlindSignUnblindWithPublicMetadataEnd2EndTest) { … }
TEST_P(RsaBlinderWithPublicMetadataTest,
BlindSignUnblindWithEmptyPublicMetadataEnd2EndTest) { … }
TEST_P(RsaBlinderWithPublicMetadataTest, WrongPublicMetadata) { … }
TEST_P(RsaBlinderWithPublicMetadataTest, NoPublicMetadataForSigning) { … }
TEST_P(RsaBlinderWithPublicMetadataTest, NoPublicMetadataInBlinding) { … }
INSTANTIATE_TEST_SUITE_P(…);
}
}