diff options
author | jiangtaoli2016 <jiangtao@google.com> | 2018-06-27 15:28:54 -0700 |
---|---|---|
committer | jiangtaoli2016 <jiangtao@google.com> | 2018-06-27 22:35:58 -0700 |
commit | 52a2f21ab7ab9fbf40d843354b08b54d18821f70 (patch) | |
tree | 5a3a20403c301076fc0c423a65c58067866d2c76 /test/core/tsi | |
parent | d069e2d06c9e24cf92f4a5bd533a9c790fea535a (diff) |
Allow extra copy in zero-copy protector integrity-only mode
Diffstat (limited to 'test/core/tsi')
-rw-r--r-- | test/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_test.cc | 26 | ||||
-rw-r--r-- | test/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector_test.cc | 41 |
2 files changed, 43 insertions, 24 deletions
diff --git a/test/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_test.cc b/test/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_test.cc index b763f19d50..3ae64d6f20 100644 --- a/test/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_test.cc +++ b/test/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_test.cc @@ -109,7 +109,7 @@ static void alter_random_byte(grpc_slice_buffer* sb) { } static alts_grpc_record_protocol_test_fixture* -test_fixture_integrity_only_create(bool rekey) { +test_fixture_integrity_only_create(bool rekey, bool extra_copy) { alts_grpc_record_protocol_test_fixture* fixture = static_cast<alts_grpc_record_protocol_test_fixture*>( gpr_zalloc(sizeof(alts_grpc_record_protocol_test_fixture))); @@ -124,41 +124,46 @@ test_fixture_integrity_only_create(bool rekey) { &crypter, nullptr) == GRPC_STATUS_OK); GPR_ASSERT(alts_grpc_integrity_only_record_protocol_create( crypter, 8, /*is_client=*/true, /*is_protect=*/true, - &fixture->client_protect) == TSI_OK); + extra_copy, &fixture->client_protect) == TSI_OK); /* Create client record protocol for unprotect. */ GPR_ASSERT(gsec_aes_gcm_aead_crypter_create( key, key_length, kAesGcmNonceLength, kAesGcmTagLength, rekey, &crypter, nullptr) == GRPC_STATUS_OK); GPR_ASSERT(alts_grpc_integrity_only_record_protocol_create( crypter, 8, /*is_client=*/true, /*is_protect=*/false, - &fixture->client_unprotect) == TSI_OK); + extra_copy, &fixture->client_unprotect) == TSI_OK); /* Create server record protocol for protect. */ GPR_ASSERT(gsec_aes_gcm_aead_crypter_create( key, key_length, kAesGcmNonceLength, kAesGcmTagLength, rekey, &crypter, nullptr) == GRPC_STATUS_OK); GPR_ASSERT(alts_grpc_integrity_only_record_protocol_create( crypter, 8, /*is_client=*/false, /*is_protect=*/true, - &fixture->server_protect) == TSI_OK); + extra_copy, &fixture->server_protect) == TSI_OK); /* Create server record protocol for unprotect. */ GPR_ASSERT(gsec_aes_gcm_aead_crypter_create( key, key_length, kAesGcmNonceLength, kAesGcmTagLength, rekey, &crypter, nullptr) == GRPC_STATUS_OK); GPR_ASSERT(alts_grpc_integrity_only_record_protocol_create( crypter, 8, /*is_client=*/false, /*is_protect=*/false, - &fixture->server_unprotect) == TSI_OK); + extra_copy, &fixture->server_unprotect) == TSI_OK); gpr_free(key); return fixture; } static alts_grpc_record_protocol_test_fixture* -test_fixture_integrity_only_no_rekey_create() { - return test_fixture_integrity_only_create(false); +test_fixture_integrity_only_no_rekey_no_extra_copy_create() { + return test_fixture_integrity_only_create(false, false); } static alts_grpc_record_protocol_test_fixture* test_fixture_integrity_only_rekey_create() { - return test_fixture_integrity_only_create(true); + return test_fixture_integrity_only_create(true, false); +} + +static alts_grpc_record_protocol_test_fixture* +test_fixture_integrity_only_extra_copy_create() { + return test_fixture_integrity_only_create(false, true); } static alts_grpc_record_protocol_test_fixture* @@ -440,9 +445,12 @@ static void alts_grpc_record_protocol_tests( } int main(int argc, char** argv) { - alts_grpc_record_protocol_tests(&test_fixture_integrity_only_no_rekey_create); + alts_grpc_record_protocol_tests( + &test_fixture_integrity_only_no_rekey_no_extra_copy_create); alts_grpc_record_protocol_tests(&test_fixture_integrity_only_rekey_create); alts_grpc_record_protocol_tests( + &test_fixture_integrity_only_extra_copy_create); + alts_grpc_record_protocol_tests( &test_fixture_privacy_integrity_no_rekey_create); alts_grpc_record_protocol_tests(&test_fixture_privacy_integrity_rekey_create); diff --git a/test/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector_test.cc b/test/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector_test.cc index 32159e22f2..3ee8323a31 100644 --- a/test/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector_test.cc +++ b/test/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector_test.cc @@ -100,7 +100,8 @@ static bool are_slice_buffers_equal(grpc_slice_buffer* first, static alts_zero_copy_grpc_protector_test_fixture* alts_zero_copy_grpc_protector_test_fixture_create(bool rekey, - bool integrity_only) { + bool integrity_only, + bool enable_extra_copy) { alts_zero_copy_grpc_protector_test_fixture* fixture = static_cast<alts_zero_copy_grpc_protector_test_fixture*>( gpr_zalloc(sizeof(alts_zero_copy_grpc_protector_test_fixture))); @@ -111,10 +112,12 @@ alts_zero_copy_grpc_protector_test_fixture_create(bool rekey, gsec_test_random_array(&key, key_length); GPR_ASSERT(alts_zero_copy_grpc_protector_create( key, key_length, rekey, /*is_client=*/true, integrity_only, - &max_protected_frame_size, &fixture->client) == TSI_OK); + enable_extra_copy, &max_protected_frame_size, + &fixture->client) == TSI_OK); GPR_ASSERT(alts_zero_copy_grpc_protector_create( key, key_length, rekey, /*is_client=*/false, integrity_only, - &max_protected_frame_size, &fixture->server) == TSI_OK); + enable_extra_copy, &max_protected_frame_size, + &fixture->server) == TSI_OK); gpr_free(key); grpc_core::ExecCtx::Get()->Flush(); return fixture; @@ -229,62 +232,70 @@ static void seal_unseal_large_buffer(tsi_zero_copy_grpc_protector* sender, /* --- Test cases. --- */ -static void alts_zero_copy_protector_seal_unseal_small_buffer_tests() { +static void alts_zero_copy_protector_seal_unseal_small_buffer_tests( + bool enable_extra_copy) { alts_zero_copy_grpc_protector_test_fixture* fixture = alts_zero_copy_grpc_protector_test_fixture_create( - /*rekey=*/false, /*integrity_only=*/true); + /*rekey=*/false, /*integrity_only=*/true, enable_extra_copy); seal_unseal_small_buffer(fixture->client, fixture->server); seal_unseal_small_buffer(fixture->server, fixture->client); alts_zero_copy_grpc_protector_test_fixture_destroy(fixture); fixture = alts_zero_copy_grpc_protector_test_fixture_create( - /*rekey=*/false, /*integrity_only=*/false); + /*rekey=*/false, /*integrity_only=*/false, enable_extra_copy); seal_unseal_small_buffer(fixture->client, fixture->server); seal_unseal_small_buffer(fixture->server, fixture->client); alts_zero_copy_grpc_protector_test_fixture_destroy(fixture); fixture = alts_zero_copy_grpc_protector_test_fixture_create( - /*rekey=*/true, /*integrity_only=*/true); + /*rekey=*/true, /*integrity_only=*/true, enable_extra_copy); seal_unseal_small_buffer(fixture->client, fixture->server); seal_unseal_small_buffer(fixture->server, fixture->client); alts_zero_copy_grpc_protector_test_fixture_destroy(fixture); fixture = alts_zero_copy_grpc_protector_test_fixture_create( - /*rekey=*/true, /*integrity_only=*/false); + /*rekey=*/true, /*integrity_only=*/false, enable_extra_copy); seal_unseal_small_buffer(fixture->client, fixture->server); seal_unseal_small_buffer(fixture->server, fixture->client); alts_zero_copy_grpc_protector_test_fixture_destroy(fixture); } -static void alts_zero_copy_protector_seal_unseal_large_buffer_tests() { +static void alts_zero_copy_protector_seal_unseal_large_buffer_tests( + bool enable_extra_copy) { alts_zero_copy_grpc_protector_test_fixture* fixture = alts_zero_copy_grpc_protector_test_fixture_create( - /*rekey=*/false, /*integrity_only=*/true); + /*rekey=*/false, /*integrity_only=*/true, enable_extra_copy); seal_unseal_large_buffer(fixture->client, fixture->server); seal_unseal_large_buffer(fixture->server, fixture->client); alts_zero_copy_grpc_protector_test_fixture_destroy(fixture); fixture = alts_zero_copy_grpc_protector_test_fixture_create( - /*rekey=*/false, /*integrity_only=*/false); + /*rekey=*/false, /*integrity_only=*/false, enable_extra_copy); seal_unseal_large_buffer(fixture->client, fixture->server); seal_unseal_large_buffer(fixture->server, fixture->client); alts_zero_copy_grpc_protector_test_fixture_destroy(fixture); fixture = alts_zero_copy_grpc_protector_test_fixture_create( - /*rekey=*/true, /*integrity_only=*/true); + /*rekey=*/true, /*integrity_only=*/true, enable_extra_copy); seal_unseal_large_buffer(fixture->client, fixture->server); seal_unseal_large_buffer(fixture->server, fixture->client); alts_zero_copy_grpc_protector_test_fixture_destroy(fixture); fixture = alts_zero_copy_grpc_protector_test_fixture_create( - /*rekey=*/true, /*integrity_only=*/false); + /*rekey=*/true, /*integrity_only=*/false, enable_extra_copy); seal_unseal_large_buffer(fixture->client, fixture->server); seal_unseal_large_buffer(fixture->server, fixture->client); alts_zero_copy_grpc_protector_test_fixture_destroy(fixture); } int main(int argc, char** argv) { - alts_zero_copy_protector_seal_unseal_small_buffer_tests(); - alts_zero_copy_protector_seal_unseal_large_buffer_tests(); + alts_zero_copy_protector_seal_unseal_small_buffer_tests( + /*enable_extra_copy=*/false); + alts_zero_copy_protector_seal_unseal_small_buffer_tests( + /*enable_extra_copy=*/true); + alts_zero_copy_protector_seal_unseal_large_buffer_tests( + /*enable_extra_copy=*/false); + alts_zero_copy_protector_seal_unseal_large_buffer_tests( + /*enable_extra_copy=*/true); return 0; } |