diff options
Diffstat (limited to 'act/act_v0/parameters_test.cc')
-rw-r--r-- | act/act_v0/parameters_test.cc | 45 |
1 files changed, 37 insertions, 8 deletions
diff --git a/act/act_v0/parameters_test.cc b/act/act_v0/parameters_test.cc index 04927e5..b275c00 100644 --- a/act/act_v0/parameters_test.cc +++ b/act/act_v0/parameters_test.cc @@ -33,8 +33,7 @@ namespace private_join_and_compute { namespace anonymous_counting_tokens { namespace { -Status EndToEndTestNoVerification(SchemeParameters scheme_parameters, - int num_messages) { +Status EndToEndTest(SchemeParameters scheme_parameters, int num_messages) { std::unique_ptr<AnonymousCountingTokens> act = AnonymousCountingTokensV0::Create(); @@ -42,12 +41,17 @@ Status EndToEndTestNoVerification(SchemeParameters scheme_parameters, ASSIGN_OR_RETURN(ServerParameters server_parameters, act->GenerateServerParameters(scheme_parameters)); - // Generate client parameters. + // Generate client parameters and check them. ASSIGN_OR_RETURN( ClientParameters client_parameters, act->GenerateClientParameters(scheme_parameters, server_parameters.public_parameters())); + RETURN_IF_ERROR(act->CheckClientParameters( + scheme_parameters, client_parameters.public_parameters(), + server_parameters.public_parameters(), + server_parameters.private_parameters())); + // Generate messages. std::vector<std::string> messages; messages.reserve(num_messages); @@ -55,7 +59,7 @@ Status EndToEndTestNoVerification(SchemeParameters scheme_parameters, messages.push_back(absl::StrCat("message", i)); } - // Generate Tokens Request. + // Generate Tokens Request and check it. std::vector<std::string> client_fingerprints; TokensRequest tokens_request; TokensRequestPrivateState tokens_request_private_state; @@ -66,14 +70,24 @@ Status EndToEndTestNoVerification(SchemeParameters scheme_parameters, client_parameters.public_parameters(), client_parameters.private_parameters(), server_parameters.public_parameters())); + RETURN_IF_ERROR(act->CheckTokensRequest( + client_fingerprints, tokens_request, scheme_parameters, + client_parameters.public_parameters(), + server_parameters.public_parameters(), + server_parameters.private_parameters())); - // Generate Tokens Response. + // Generate Tokens Response and check it. ASSIGN_OR_RETURN( TokensResponse tokens_response, act->GenerateTokensResponse(tokens_request, scheme_parameters, client_parameters.public_parameters(), server_parameters.public_parameters(), server_parameters.private_parameters())); + RETURN_IF_ERROR(act->VerifyTokensResponse( + messages, tokens_request, tokens_request_private_state, tokens_response, + scheme_parameters, client_parameters.public_parameters(), + client_parameters.private_parameters(), + server_parameters.public_parameters())); // Extract Tokens. ASSIGN_OR_RETURN( @@ -97,15 +111,30 @@ Status EndToEndTestNoVerification(SchemeParameters scheme_parameters, } TEST(ActV0ParametersTest, EndToEndWithTestParameters) { - EXPECT_OK(EndToEndTestNoVerification(ActV0TestSchemeParameters(), 3)); + EXPECT_OK(EndToEndTest(ActV0TestSchemeParameters(), 3)); } TEST(ActV0ParametersTest, EndToEndWithBatch16Parameters) { - EXPECT_OK(EndToEndTestNoVerification(ActV0Batch16SchemeParameters(), 16)); + EXPECT_OK(EndToEndTest(ActV0Batch16SchemeParameters(), 16)); } TEST(ActV0ParametersTest, EndToEndWithBatch32Parameters) { - EXPECT_OK(EndToEndTestNoVerification(ActV0Batch32SchemeParameters(), 32)); + EXPECT_OK(EndToEndTest(ActV0Batch32SchemeParameters(), 32)); +} + +TEST(ActV0ParametersTest, EndToEndWithBatch32Cs2Modulus2048Parameters) { + EXPECT_OK(EndToEndTest( + ActV0SchemeParametersPedersen32Modulus2048CamenischShoupVector2(), 32)); +} + +TEST(ActV0ParametersTest, EndToEndWithCustomParameters) { + int pedersen_batch_size = 32; + int modulus_length_bits = 1576; + int camenisch_shoup_vector_length = 2; + EXPECT_OK(EndToEndTest( + ActV0SchemeParameters(pedersen_batch_size, modulus_length_bits, + camenisch_shoup_vector_length), + 32)); } // More extensive tests are in act_v0_test.cc. These tests simply ensure that |