123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- #include "epid/common-testhelper/epid_gtest-testhelper.h"
- #include "gtest/gtest.h"
- extern "C" {
- #include "epid/common/1.1/types.h"
- #include "epid/verifier/1.1/api.h"
- #include "epid/verifier/1.1/src/context.h"
- }
- #include "epid/common-testhelper/1.1/verifier_wrapper-testhelper.h"
- #include "epid/common-testhelper/errors-testhelper.h"
- #include "epid/verifier/1.1/unittests/verifier-testhelper.h"
- namespace {
- TEST_F(Epid11VerifierTest, NrVerifyFailsGivenNullParameters) {
- Epid11VerifierCtxObj verifier(this->kPubKeyStr);
- Epid11Signature const* epid_signature =
- reinterpret_cast<Epid11Signature const*>(
- this->kSigGrpXMember0Sha256RandbaseMsg0N2One.data());
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRl.data());
- EXPECT_EQ(kEpidBadArgErr,
- Epid11NrVerify(nullptr, &epid_signature->sigma0, this->kMsg0.data(),
- this->kMsg0.size(), &sig_rl->bk[0],
- &epid_signature->sigma[0]));
- EXPECT_EQ(
- kEpidBadArgErr,
- Epid11NrVerify(verifier, nullptr, this->kMsg0.data(), this->kMsg0.size(),
- &sig_rl->bk[0], &epid_signature->sigma[0]));
- EXPECT_EQ(kEpidBadArgErr,
- Epid11NrVerify(verifier, &epid_signature->sigma0, nullptr,
- this->kMsg0.size(), &sig_rl->bk[0],
- &epid_signature->sigma[0]));
- EXPECT_EQ(
- kEpidBadArgErr,
- Epid11NrVerify(verifier, &epid_signature->sigma0, this->kMsg0.data(),
- this->kMsg0.size(), nullptr, &epid_signature->sigma[0]));
- EXPECT_EQ(
- kEpidBadArgErr,
- Epid11NrVerify(verifier, &epid_signature->sigma0, this->kMsg0.data(),
- this->kMsg0.size(), &sig_rl->bk[0], nullptr));
- }
- TEST_F(Epid11VerifierTest, NrVerifyRejectsTotalMsgSizeOutOfRangeOfInt) {
- Epid11VerifierCtxObj verifier(this->kPubKeyStr);
- Epid11Signature const* epid_signature =
- reinterpret_cast<Epid11Signature const*>(
- this->kSigGrpXMember0Sha256RandbaseMsg0N2One.data());
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRl.data());
-
-
-
- Epid11NrProof nr_proof = epid_signature->sigma[0];
- EXPECT_EQ(kEpidBadArgErr, Epid11NrVerify(verifier, &epid_signature->sigma0,
- this->kMsg0.data(), 0xffffffff,
- &sig_rl->bk[0], &nr_proof));
- #if (SIZE_MAX >= 0x100000001)
- EXPECT_EQ(kEpidBadArgErr, Epid11NrVerify(verifier, &epid_signature->sigma0,
- this->kMsg0.data(), 0x100000001,
- &sig_rl->bk[0], &nr_proof));
- #endif
- }
- TEST_F(Epid11VerifierTest, NrVerifyRejectsSigWithTNotInG3) {
-
- Epid11VerifierCtxObj verifier(this->kPubKeyStr);
- Epid11Signature const* epid_signature =
- reinterpret_cast<Epid11Signature const*>(
- this->kSigGrpXMember0Sha256RandbaseMsg0N2One.data());
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRl.data());
- Epid11NrProof nr_proof = epid_signature->sigma[0];
- nr_proof.T.x.data.data[0]++;
- EXPECT_EQ(
- kEpidBadArgErr,
- Epid11NrVerify(verifier, &epid_signature->sigma0, this->kMsg0.data(),
- this->kMsg0.size(), &sig_rl->bk[0], &nr_proof));
- }
- TEST_F(Epid11VerifierTest, NrVerifyRejectsSigWithTIdentityOfG3) {
-
- Epid11VerifierCtxObj verifier(this->kPubKeyStr);
- Epid11Signature const* epid_signature =
- reinterpret_cast<Epid11Signature const*>(
- this->kSigGrpXMember0Sha256RandbaseMsg0N2One.data());
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRl.data());
- Epid11NrProof nr_proof = epid_signature->sigma[0];
- nr_proof.T = this->kG3IdentityStr;
- EXPECT_EQ(
- kEpidBadArgErr,
- Epid11NrVerify(verifier, &epid_signature->sigma0, this->kMsg0.data(),
- this->kMsg0.size(), &sig_rl->bk[0], &nr_proof));
- }
- TEST_F(Epid11VerifierTest, NrVerifyRejectsSigWithSmuNotInRange) {
-
- Epid11VerifierCtxObj verifier(this->kPubKeyStr);
- Epid11Signature const* epid_signature =
- reinterpret_cast<Epid11Signature const*>(
- this->kSigGrpXMember0Sha256RandbaseMsg0N2One.data());
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRl.data());
- Epid11NrProof nr_proof = epid_signature->sigma[0];
- nr_proof.smu.data = this->kParamsStr.p.data;
- EXPECT_EQ(
- kEpidBadArgErr,
- Epid11NrVerify(verifier, &epid_signature->sigma0, this->kMsg0.data(),
- this->kMsg0.size(), &sig_rl->bk[0], &nr_proof));
- }
- TEST_F(Epid11VerifierTest, NrVerifyRejectsSigWithSnuNotInRange) {
-
- Epid11VerifierCtxObj verifier(this->kPubKeyStr);
- Epid11Signature const* epid_signature =
- reinterpret_cast<Epid11Signature const*>(
- this->kSigGrpXMember0Sha256RandbaseMsg0N2One.data());
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRl.data());
- Epid11NrProof nr_proof = epid_signature->sigma[0];
- nr_proof.snu.data = this->kParamsStr.p.data;
- EXPECT_EQ(
- kEpidBadArgErr,
- Epid11NrVerify(verifier, &epid_signature->sigma0, this->kMsg0.data(),
- this->kMsg0.size(), &sig_rl->bk[0], &nr_proof));
- }
- TEST_F(Epid11VerifierTest, NrVerifyRejectsSigWithInvalidCommitment) {
-
-
- Epid11VerifierCtxObj verifier(this->kPubKeyStr);
- Epid11Signature const* epid_signature =
- reinterpret_cast<Epid11Signature const*>(
- this->kSigGrpXMember0Sha256RandbaseMsg0N2One.data());
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRl.data());
- std::vector<uint8_t> test_msg = this->kMsg0;
- test_msg[0]++;
- EXPECT_EQ(kEpidBadArgErr,
- Epid11NrVerify(verifier, &epid_signature->sigma0, test_msg.data(),
- test_msg.size(), &sig_rl->bk[0],
- &epid_signature->sigma[0]));
- }
- TEST_F(Epid11VerifierTest, NrVerifyRejectsSigWithMismatchCommitmentSize) {
-
-
- Epid11VerifierCtxObj verifier(this->kPubKeyStr);
- Epid11Signature const* epid_signature =
- reinterpret_cast<Epid11Signature const*>(
- this->kSigGrpXMember0Sha256RandbaseMsg0N2One.data());
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRl.data());
- std::vector<uint8_t> test_msg = this->kMsg0;
- EXPECT_EQ(kEpidBadArgErr,
- Epid11NrVerify(verifier, &epid_signature->sigma0, test_msg.data(),
- test_msg.size() - 1, &sig_rl->bk[0],
- &epid_signature->sigma[0]));
- }
- TEST_F(Epid11VerifierTest, NrVerifyAcceptsSigWithRandomBaseName) {
- Epid11VerifierCtxObj verifier(this->kPubKeyStr);
- Epid11Signature const* epid_signature =
- reinterpret_cast<Epid11Signature const*>(
- this->kSigGrpXMember0Sha256RandbaseMsg0N2One.data());
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRl.data());
- EXPECT_EQ(kEpidSigValid,
- Epid11NrVerify(verifier, &epid_signature->sigma0,
- this->kMsg0.data(), this->kMsg0.size(),
- &sig_rl->bk[0], &epid_signature->sigma[0]));
- }
- TEST_F(Epid11VerifierTest, NrVerifyAcceptsMsgContainingAllPossibleBytes) {
- Epid11VerifierCtxObj verifier(this->kPubKeyStrForMsg0_255);
- Epid11Signature const* epid_signature =
- (Epid11Signature*)kSigGrp01Member0Sha256kBsn0Data_0_255.data();
- Epid11SigRl const* sig_rl =
- reinterpret_cast<Epid11SigRl const*>(this->kSigRlForMsg0_255.data());
- EXPECT_EQ(kEpidSigValid,
- Epid11NrVerify(verifier, &epid_signature->sigma0,
- this->kData_0_255.data(), this->kData_0_255.size(),
- &sig_rl->bk[0], &epid_signature->sigma[0]));
- }
- }
|