diff options
Diffstat (limited to 'test/core/tsi')
11 files changed, 150 insertions, 54 deletions
diff --git a/test/core/tsi/alts/crypt/BUILD b/test/core/tsi/alts/crypt/BUILD index cf9dbca316..abe1e83656 100644 --- a/test/core/tsi/alts/crypt/BUILD +++ b/test/core/tsi/alts/crypt/BUILD @@ -27,6 +27,7 @@ grpc_cc_test( "//:alts_frame_protector", "//:gpr", "//:grpc", + "//test/core/util:gpr_test_util", ], ) diff --git a/test/core/tsi/alts/fake_handshaker/BUILD b/test/core/tsi/alts/fake_handshaker/BUILD index a09a046d27..98cd628a7d 100644 --- a/test/core/tsi/alts/fake_handshaker/BUILD +++ b/test/core/tsi/alts/fake_handshaker/BUILD @@ -37,21 +37,22 @@ grpc_cc_library( name = "fake_handshaker_lib", testonly = True, srcs = ["fake_handshaker_server.cc"], + hdrs = ["fake_handshaker_server.h"], language = "C++", deps = [ "handshaker_proto", "transport_security_common_proto", "//:grpc++", - "//test/cpp/util:test_config", ], ) grpc_cc_binary( name = "fake_handshaker_server", testonly = True, - srcs = ["fake_handshaker_server.cc"], + srcs = ["fake_handshaker_server_main.cc"], language = "C++", deps = [ + "//test/cpp/util:test_config", "fake_handshaker_lib", ], ) diff --git a/test/core/tsi/alts/fake_handshaker/fake_handshaker_server.cc b/test/core/tsi/alts/fake_handshaker/fake_handshaker_server.cc index f6a4791b49..ba246b07eb 100644 --- a/test/core/tsi/alts/fake_handshaker/fake_handshaker_server.cc +++ b/test/core/tsi/alts/fake_handshaker/fake_handshaker_server.cc @@ -15,12 +15,12 @@ * limitations under the License. * */ +#include "test/core/tsi/alts/fake_handshaker/fake_handshaker_server.h" #include <memory> #include <sstream> #include <string> -#include <gflags/gflags.h> #include <grpc/grpc.h> #include <grpc/support/log.h> #include <grpcpp/impl/codegen/async_stream.h> @@ -32,10 +32,6 @@ #include "test/core/tsi/alts/fake_handshaker/handshaker.grpc.pb.h" #include "test/core/tsi/alts/fake_handshaker/handshaker.pb.h" #include "test/core/tsi/alts/fake_handshaker/transport_security_common.pb.h" -#include "test/cpp/util/test_config.h" - -DEFINE_int32(handshaker_port, 55056, - "TCP port on which the fake handshaker server listens to."); // Fake handshake messages. constexpr char kClientInitFrame[] = "ClientInit"; @@ -243,26 +239,9 @@ class FakeHandshakerService : public HandshakerService::Service { } }; -} // namespace gcp -} // namespace grpc - -void RunServer() { - GPR_ASSERT(FLAGS_handshaker_port != 0); - std::ostringstream server_address; - server_address << "[::1]:" << FLAGS_handshaker_port; - grpc::gcp::FakeHandshakerService service; - grpc::ServerBuilder builder; - builder.AddListeningPort(server_address.str(), - grpc::InsecureServerCredentials()); - builder.RegisterService(&service); - std::unique_ptr<grpc::Server> server(builder.BuildAndStart()); - gpr_log(GPR_INFO, "Fake handshaker server listening on %s", - server_address.str().c_str()); - server->Wait(); +std::unique_ptr<grpc::Service> CreateFakeHandshakerService() { + return std::unique_ptr<grpc::Service>{new grpc::gcp::FakeHandshakerService}; } -int main(int argc, char** argv) { - grpc::testing::InitTest(&argc, &argv, true); - RunServer(); - return 0; -} +} // namespace gcp +} // namespace grpc diff --git a/test/core/tsi/alts/fake_handshaker/fake_handshaker_server.h b/test/core/tsi/alts/fake_handshaker/fake_handshaker_server.h new file mode 100644 index 0000000000..eb4bfdffa1 --- /dev/null +++ b/test/core/tsi/alts/fake_handshaker/fake_handshaker_server.h @@ -0,0 +1,29 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * 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 + * + * http://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 <memory> +#include <string> + +#include <grpcpp/grpcpp.h> + +namespace grpc { +namespace gcp { + +std::unique_ptr<grpc::Service> CreateFakeHandshakerService(); + +} // namespace gcp +} // namespace grpc diff --git a/test/core/tsi/alts/fake_handshaker/fake_handshaker_server_main.cc b/test/core/tsi/alts/fake_handshaker/fake_handshaker_server_main.cc new file mode 100644 index 0000000000..60351533d9 --- /dev/null +++ b/test/core/tsi/alts/fake_handshaker/fake_handshaker_server_main.cc @@ -0,0 +1,53 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * 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 + * + * http://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 "test/core/tsi/alts/fake_handshaker/fake_handshaker_server.h" + +#include <sstream> + +#include <gflags/gflags.h> +#include <grpc/support/log.h> +#include <grpcpp/impl/codegen/service_type.h> +#include <grpcpp/server_builder.h> + +#include "test/cpp/util/test_config.h" + +DEFINE_int32(handshaker_port, 55056, + "TCP port on which the fake handshaker server listens to."); + +static void RunFakeHandshakerServer(const std::string& server_address) { + std::unique_ptr<grpc::Service> service = + grpc::gcp::CreateFakeHandshakerService(); + grpc::ServerBuilder builder; + builder.AddListeningPort(server_address, grpc::InsecureServerCredentials()); + builder.RegisterService(service.get()); + gpr_log(GPR_INFO, "Fake handshaker server listening on %s", + server_address.c_str()); + std::unique_ptr<grpc::Server> server = builder.BuildAndStart(); + server->Wait(); +} + +int main(int argc, char** argv) { + grpc::testing::InitTest(&argc, &argv, true); + + GPR_ASSERT(FLAGS_handshaker_port != 0); + std::ostringstream server_address; + server_address << "[::1]:" << FLAGS_handshaker_port; + + RunFakeHandshakerServer(server_address.str()); + return 0; +} diff --git a/test/core/tsi/alts/frame_protector/BUILD b/test/core/tsi/alts/frame_protector/BUILD index dd1966b379..6ff3015f4d 100644 --- a/test/core/tsi/alts/frame_protector/BUILD +++ b/test/core/tsi/alts/frame_protector/BUILD @@ -27,6 +27,7 @@ grpc_cc_test( "//:gpr", "//:grpc", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) @@ -39,6 +40,7 @@ grpc_cc_test( "//:gpr", "//:grpc", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) @@ -54,6 +56,7 @@ grpc_cc_test( "//:tsi_interface", "//test/core/tsi/alts/crypt:alts_crypt_test_util", "//test/core/tsi:transport_security_test_lib", + "//test/core/util:gpr_test_util", ], ) @@ -67,5 +70,6 @@ grpc_cc_test( "//:gpr_base", "//:grpc", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) diff --git a/test/core/tsi/alts/handshaker/BUILD b/test/core/tsi/alts/handshaker/BUILD index 809742744c..3f1a681c1a 100644 --- a/test/core/tsi/alts/handshaker/BUILD +++ b/test/core/tsi/alts/handshaker/BUILD @@ -37,6 +37,7 @@ grpc_cc_test( "//:tsi", "//:tsi_interface", "//:grpc", + "//test/core/util:gpr_test_util", ], ) @@ -47,6 +48,7 @@ grpc_cc_test( deps = [ ":alts_handshaker_service_api_test_lib", "//:grpc", + "//test/core/util:gpr_test_util", ], ) @@ -60,6 +62,7 @@ grpc_cc_test( "//:gpr_base", "//:grpc", "//:tsi", + "//test/core/util:gpr_test_util", ], ) @@ -71,6 +74,7 @@ grpc_cc_test( ":alts_handshaker_service_api_test_lib", "//:grpc", "//:tsi", + "//test/core/util:gpr_test_util", ], ) @@ -81,6 +85,7 @@ grpc_cc_test( deps = [ "//:alts_util", "//:grpc", + "//test/core/util:gpr_test_util", ], ) diff --git a/test/core/tsi/alts/zero_copy_frame_protector/BUILD b/test/core/tsi/alts/zero_copy_frame_protector/BUILD index 2b41dae043..a3b797327e 100644 --- a/test/core/tsi/alts/zero_copy_frame_protector/BUILD +++ b/test/core/tsi/alts/zero_copy_frame_protector/BUILD @@ -28,6 +28,7 @@ grpc_cc_test( "//:grpc", "//:grpc_base_c", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) @@ -40,6 +41,7 @@ grpc_cc_test( "//:gpr", "//:grpc", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) @@ -53,5 +55,6 @@ grpc_cc_test( "//:grpc", "//:grpc_base_c", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) 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; } diff --git a/test/core/tsi/ssl_transport_security_test.cc b/test/core/tsi/ssl_transport_security_test.cc index b477904d60..baffad6ea3 100644 --- a/test/core/tsi/ssl_transport_security_test.cc +++ b/test/core/tsi/ssl_transport_security_test.cc @@ -208,9 +208,11 @@ static void check_session_reusage(ssl_tsi_test_fixture* ssl_fixture, tsi_peer_get_property_by_name(peer, TSI_SSL_SESSION_REUSED_PEER_PROPERTY); GPR_ASSERT(session_reused != nullptr); if (ssl_fixture->session_reused) { - GPR_ASSERT(strcmp(session_reused->value.data, "true") == 0); + GPR_ASSERT(strncmp(session_reused->value.data, "true", + session_reused->value.length) == 0); } else { - GPR_ASSERT(strcmp(session_reused->value.data, "false") == 0); + GPR_ASSERT(strncmp(session_reused->value.data, "false", + session_reused->value.length) == 0); } } |