Migrated tsi/alts from nanopb to upb
diff --git a/BUILD b/BUILD
index 7b7b449..1835a90 100644
--- a/BUILD
+++ b/BUILD
@@ -1862,24 +1862,6 @@
)
grpc_cc_library(
- name = "alts_proto",
- srcs = [
- "src/core/tsi/alts/handshaker/altscontext.pb.c",
- "src/core/tsi/alts/handshaker/handshaker.pb.c",
- "src/core/tsi/alts/handshaker/transport_security_common.pb.c",
- ],
- hdrs = [
- "src/core/tsi/alts/handshaker/altscontext.pb.h",
- "src/core/tsi/alts/handshaker/handshaker.pb.h",
- "src/core/tsi/alts/handshaker/transport_security_common.pb.h",
- ],
- external_deps = [
- "nanopb",
- ],
- language = "c++",
-)
-
-grpc_cc_library(
name = "alts_util",
srcs = [
"src/core/lib/security/credentials/alts/check_gcp_environment.cc",
@@ -1889,24 +1871,17 @@
"src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
"src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
"src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc",
"src/core/tsi/alts/handshaker/transport_security_common_api.cc",
],
hdrs = [
"src/core/lib/security/credentials/alts/check_gcp_environment.h",
"src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api.h",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h",
"src/core/tsi/alts/handshaker/transport_security_common_api.h",
],
- external_deps = [
- "nanopb",
- ],
language = "c++",
public_hdrs = GRPC_SECURE_PUBLIC_HDRS,
deps = [
- "alts_proto",
+ "alts_upb",
"gpr",
"grpc_base",
],
diff --git a/BUILD.gn b/BUILD.gn
index e63f7d2..18204a1 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -462,6 +462,12 @@
"src/core/ext/upb-generated/google/protobuf/wrappers.upb.h",
"src/core/ext/upb-generated/google/rpc/status.upb.c",
"src/core/ext/upb-generated/google/rpc/status.upb.h",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c",
+ "src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h",
"src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c",
"src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h",
"src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c",
@@ -865,10 +871,6 @@
"src/core/tsi/alts/frame_protector/frame_handler.h",
"src/core/tsi/alts/handshaker/alts_handshaker_client.cc",
"src/core/tsi/alts/handshaker/alts_handshaker_client.h",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api.h",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h",
"src/core/tsi/alts/handshaker/alts_shared_resource.cc",
"src/core/tsi/alts/handshaker/alts_shared_resource.h",
"src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc",
@@ -876,12 +878,6 @@
"src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h",
"src/core/tsi/alts/handshaker/alts_tsi_utils.cc",
"src/core/tsi/alts/handshaker/alts_tsi_utils.h",
- "src/core/tsi/alts/handshaker/altscontext.pb.c",
- "src/core/tsi/alts/handshaker/altscontext.pb.h",
- "src/core/tsi/alts/handshaker/handshaker.pb.c",
- "src/core/tsi/alts/handshaker/handshaker.pb.h",
- "src/core/tsi/alts/handshaker/transport_security_common.pb.c",
- "src/core/tsi/alts/handshaker/transport_security_common.pb.h",
"src/core/tsi/alts/handshaker/transport_security_common_api.cc",
"src/core/tsi/alts/handshaker/transport_security_common_api.h",
"src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc",
@@ -934,7 +930,6 @@
":gpr",
"//third_party/cares",
":address_sorting",
- ":nanopb",
]
public_configs = [
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b1c70db..70aaedd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -528,7 +528,6 @@
add_dependencies(buildtests_cxx alts_frame_protector_test)
add_dependencies(buildtests_cxx alts_grpc_record_protocol_test)
add_dependencies(buildtests_cxx alts_handshaker_client_test)
-add_dependencies(buildtests_cxx alts_handshaker_service_api_test)
add_dependencies(buildtests_cxx alts_iovec_record_protocol_test)
add_dependencies(buildtests_cxx alts_security_connector_test)
add_dependencies(buildtests_cxx alts_tsi_handshaker_test)
@@ -1255,23 +1254,18 @@
src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc
src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc
src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc
- src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc
- src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc
src/core/tsi/alts/handshaker/alts_tsi_utils.cc
src/core/tsi/alts/handshaker/transport_security_common_api.cc
- src/core/tsi/alts/handshaker/altscontext.pb.c
- src/core/tsi/alts/handshaker/handshaker.pb.c
- src/core/tsi/alts/handshaker/transport_security_common.pb.c
- third_party/nanopb/pb_common.c
- third_party/nanopb/pb_decode.c
- third_party/nanopb/pb_encode.c
- src/core/tsi/transport_security.cc
+ src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c
+ src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c
+ src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c
third_party/upb/upb/decode.c
third_party/upb/upb/encode.c
third_party/upb/upb/msg.c
third_party/upb/upb/port.c
third_party/upb/upb/table.c
third_party/upb/upb/upb.c
+ src/core/tsi/transport_security.cc
src/core/ext/transport/chttp2/client/insecure/channel_create.cc
src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc
src/core/ext/transport/chttp2/client/authority.cc
@@ -1771,16 +1765,11 @@
src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc
src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc
src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc
- src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc
- src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc
src/core/tsi/alts/handshaker/alts_tsi_utils.cc
src/core/tsi/alts/handshaker/transport_security_common_api.cc
- src/core/tsi/alts/handshaker/altscontext.pb.c
- src/core/tsi/alts/handshaker/handshaker.pb.c
- src/core/tsi/alts/handshaker/transport_security_common.pb.c
- third_party/nanopb/pb_common.c
- third_party/nanopb/pb_decode.c
- third_party/nanopb/pb_encode.c
+ src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c
+ src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c
+ src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c
src/core/tsi/transport_security.cc
src/core/ext/transport/chttp2/client/insecure/channel_create.cc
src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc
@@ -11272,47 +11261,6 @@
endif (gRPC_BUILD_TESTS)
if (gRPC_BUILD_TESTS)
-add_executable(alts_handshaker_service_api_test
- test/core/tsi/alts/handshaker/alts_handshaker_service_api_test.cc
- third_party/googletest/googletest/src/gtest-all.cc
- third_party/googletest/googlemock/src/gmock-all.cc
-)
-
-
-target_include_directories(alts_handshaker_service_api_test
- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
- PRIVATE ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR}
- PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
- PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
- PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
- PRIVATE ${_gRPC_NANOPB_INCLUDE_DIR}
- PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
- PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
- PRIVATE ${_gRPC_UPB_GENERATED_DIR}
- PRIVATE ${_gRPC_UPB_GRPC_GENERATED_DIR}
- PRIVATE ${_gRPC_UPB_INCLUDE_DIR}
- PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
- PRIVATE third_party/googletest/googletest/include
- PRIVATE third_party/googletest/googletest
- PRIVATE third_party/googletest/googlemock/include
- PRIVATE third_party/googletest/googlemock
- PRIVATE ${_gRPC_PROTO_GENS_DIR}
-)
-
-target_link_libraries(alts_handshaker_service_api_test
- ${_gRPC_PROTOBUF_LIBRARIES}
- ${_gRPC_ALLTARGETS_LIBRARIES}
- alts_test_util
- gpr
- grpc
- ${_gRPC_GFLAGS_LIBRARIES}
-)
-
-
-endif (gRPC_BUILD_TESTS)
-if (gRPC_BUILD_TESTS)
-
add_executable(alts_iovec_record_protocol_test
test/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol_test.cc
third_party/googletest/googletest/src/gtest-all.cc
diff --git a/Makefile b/Makefile
index 5189510..ef5963d 100644
--- a/Makefile
+++ b/Makefile
@@ -1146,7 +1146,6 @@
alts_frame_protector_test: $(BINDIR)/$(CONFIG)/alts_frame_protector_test
alts_grpc_record_protocol_test: $(BINDIR)/$(CONFIG)/alts_grpc_record_protocol_test
alts_handshaker_client_test: $(BINDIR)/$(CONFIG)/alts_handshaker_client_test
-alts_handshaker_service_api_test: $(BINDIR)/$(CONFIG)/alts_handshaker_service_api_test
alts_iovec_record_protocol_test: $(BINDIR)/$(CONFIG)/alts_iovec_record_protocol_test
alts_security_connector_test: $(BINDIR)/$(CONFIG)/alts_security_connector_test
alts_tsi_handshaker_test: $(BINDIR)/$(CONFIG)/alts_tsi_handshaker_test
@@ -1627,7 +1626,6 @@
$(BINDIR)/$(CONFIG)/alts_frame_protector_test \
$(BINDIR)/$(CONFIG)/alts_grpc_record_protocol_test \
$(BINDIR)/$(CONFIG)/alts_handshaker_client_test \
- $(BINDIR)/$(CONFIG)/alts_handshaker_service_api_test \
$(BINDIR)/$(CONFIG)/alts_iovec_record_protocol_test \
$(BINDIR)/$(CONFIG)/alts_security_connector_test \
$(BINDIR)/$(CONFIG)/alts_tsi_handshaker_test \
@@ -1795,7 +1793,6 @@
$(BINDIR)/$(CONFIG)/alts_frame_protector_test \
$(BINDIR)/$(CONFIG)/alts_grpc_record_protocol_test \
$(BINDIR)/$(CONFIG)/alts_handshaker_client_test \
- $(BINDIR)/$(CONFIG)/alts_handshaker_service_api_test \
$(BINDIR)/$(CONFIG)/alts_iovec_record_protocol_test \
$(BINDIR)/$(CONFIG)/alts_security_connector_test \
$(BINDIR)/$(CONFIG)/alts_tsi_handshaker_test \
@@ -2241,8 +2238,6 @@
$(Q) $(BINDIR)/$(CONFIG)/alts_grpc_record_protocol_test || ( echo test alts_grpc_record_protocol_test failed ; exit 1 )
$(E) "[RUN] Testing alts_handshaker_client_test"
$(Q) $(BINDIR)/$(CONFIG)/alts_handshaker_client_test || ( echo test alts_handshaker_client_test failed ; exit 1 )
- $(E) "[RUN] Testing alts_handshaker_service_api_test"
- $(Q) $(BINDIR)/$(CONFIG)/alts_handshaker_service_api_test || ( echo test alts_handshaker_service_api_test failed ; exit 1 )
$(E) "[RUN] Testing alts_iovec_record_protocol_test"
$(Q) $(BINDIR)/$(CONFIG)/alts_iovec_record_protocol_test || ( echo test alts_iovec_record_protocol_test failed ; exit 1 )
$(E) "[RUN] Testing alts_security_connector_test"
@@ -3762,23 +3757,18 @@
src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc \
src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc \
src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc \
- src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc \
- src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc \
src/core/tsi/alts/handshaker/alts_tsi_utils.cc \
src/core/tsi/alts/handshaker/transport_security_common_api.cc \
- src/core/tsi/alts/handshaker/altscontext.pb.c \
- src/core/tsi/alts/handshaker/handshaker.pb.c \
- src/core/tsi/alts/handshaker/transport_security_common.pb.c \
- third_party/nanopb/pb_common.c \
- third_party/nanopb/pb_decode.c \
- third_party/nanopb/pb_encode.c \
- src/core/tsi/transport_security.cc \
+ src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c \
+ src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c \
+ src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c \
third_party/upb/upb/decode.c \
third_party/upb/upb/encode.c \
third_party/upb/upb/msg.c \
third_party/upb/upb/port.c \
third_party/upb/upb/table.c \
third_party/upb/upb/upb.c \
+ src/core/tsi/transport_security.cc \
src/core/ext/transport/chttp2/client/insecure/channel_create.cc \
src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc \
src/core/ext/transport/chttp2/client/authority.cc \
@@ -4266,16 +4256,11 @@
src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc \
src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc \
src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc \
- src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc \
- src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc \
src/core/tsi/alts/handshaker/alts_tsi_utils.cc \
src/core/tsi/alts/handshaker/transport_security_common_api.cc \
- src/core/tsi/alts/handshaker/altscontext.pb.c \
- src/core/tsi/alts/handshaker/handshaker.pb.c \
- src/core/tsi/alts/handshaker/transport_security_common.pb.c \
- third_party/nanopb/pb_common.c \
- third_party/nanopb/pb_decode.c \
- third_party/nanopb/pb_encode.c \
+ src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c \
+ src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c \
+ src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c \
src/core/tsi/transport_security.cc \
src/core/ext/transport/chttp2/client/insecure/channel_create.cc \
src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc \
@@ -13657,49 +13642,6 @@
endif
-ALTS_HANDSHAKER_SERVICE_API_TEST_SRC = \
- test/core/tsi/alts/handshaker/alts_handshaker_service_api_test.cc \
-
-ALTS_HANDSHAKER_SERVICE_API_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALTS_HANDSHAKER_SERVICE_API_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/alts_handshaker_service_api_test: openssl_dep_error
-
-else
-
-
-
-
-ifeq ($(NO_PROTOBUF),true)
-
-# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.5.0+.
-
-$(BINDIR)/$(CONFIG)/alts_handshaker_service_api_test: protobuf_dep_error
-
-else
-
-$(BINDIR)/$(CONFIG)/alts_handshaker_service_api_test: $(PROTOBUF_DEP) $(ALTS_HANDSHAKER_SERVICE_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LDXX) $(LDFLAGS) $(ALTS_HANDSHAKER_SERVICE_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_handshaker_service_api_test
-
-endif
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test.o: $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a
-
-deps_alts_handshaker_service_api_test: $(ALTS_HANDSHAKER_SERVICE_API_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(ALTS_HANDSHAKER_SERVICE_API_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
ALTS_IOVEC_RECORD_PROTOCOL_TEST_SRC = \
test/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol_test.cc \
@@ -22480,6 +22422,9 @@
src/core/ext/transport/cronet/plugin_registry/grpc_cronet_plugin_registry.cc: $(OPENSSL_DEP)
src/core/ext/transport/cronet/transport/cronet_api_dummy.cc: $(OPENSSL_DEP)
src/core/ext/transport/cronet/transport/cronet_transport.cc: $(OPENSSL_DEP)
+src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c: $(OPENSSL_DEP)
+src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c: $(OPENSSL_DEP)
+src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c: $(OPENSSL_DEP)
src/core/lib/http/httpcli_security_connector.cc: $(OPENSSL_DEP)
src/core/lib/security/context/security_context.cc: $(OPENSSL_DEP)
src/core/lib/security/credentials/alts/alts_credentials.cc: $(OPENSSL_DEP)
@@ -22534,14 +22479,9 @@
src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc: $(OPENSSL_DEP)
src/core/tsi/alts/frame_protector/frame_handler.cc: $(OPENSSL_DEP)
src/core/tsi/alts/handshaker/alts_handshaker_client.cc: $(OPENSSL_DEP)
-src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc: $(OPENSSL_DEP)
-src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc: $(OPENSSL_DEP)
src/core/tsi/alts/handshaker/alts_shared_resource.cc: $(OPENSSL_DEP)
src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc: $(OPENSSL_DEP)
src/core/tsi/alts/handshaker/alts_tsi_utils.cc: $(OPENSSL_DEP)
-src/core/tsi/alts/handshaker/altscontext.pb.c: $(OPENSSL_DEP)
-src/core/tsi/alts/handshaker/handshaker.pb.c: $(OPENSSL_DEP)
-src/core/tsi/alts/handshaker/transport_security_common.pb.c: $(OPENSSL_DEP)
src/core/tsi/alts/handshaker/transport_security_common_api.cc: $(OPENSSL_DEP)
src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc: $(OPENSSL_DEP)
src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc: $(OPENSSL_DEP)
@@ -22620,9 +22560,6 @@
test/cpp/util/subprocess.cc: $(OPENSSL_DEP)
test/cpp/util/test_config_cc.cc: $(OPENSSL_DEP)
test/cpp/util/test_credentials_provider.cc: $(OPENSSL_DEP)
-third_party/nanopb/pb_common.c: $(OPENSSL_DEP)
-third_party/nanopb/pb_decode.c: $(OPENSSL_DEP)
-third_party/nanopb/pb_encode.c: $(OPENSSL_DEP)
endif
.PHONY: all strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx test test_c test_cxx install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean
diff --git a/build.yaml b/build.yaml
index a18b916..0b8c195 100644
--- a/build.yaml
+++ b/build.yaml
@@ -17,17 +17,6 @@
g_stands_for: ganges
version: 1.24.0-dev
filegroups:
-- name: alts_proto
- headers:
- - src/core/tsi/alts/handshaker/altscontext.pb.h
- - src/core/tsi/alts/handshaker/handshaker.pb.h
- - src/core/tsi/alts/handshaker/transport_security_common.pb.h
- src:
- - src/core/tsi/alts/handshaker/altscontext.pb.c
- - src/core/tsi/alts/handshaker/handshaker.pb.c
- - src/core/tsi/alts/handshaker/transport_security_common.pb.c
- uses:
- - nanopb
- name: alts_tsi
headers:
- src/core/tsi/alts/crypt/gsec.h
@@ -80,14 +69,14 @@
- src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c
- src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c
- src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c
+ uses:
+ - upb
- name: alts_util
public_headers:
- include/grpc/grpc_security.h
headers:
- src/core/lib/security/credentials/alts/check_gcp_environment.h
- src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h
- - src/core/tsi/alts/handshaker/alts_handshaker_service_api.h
- - src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h
- src/core/tsi/alts/handshaker/alts_tsi_utils.h
- src/core/tsi/alts/handshaker/transport_security_common_api.h
src:
@@ -98,14 +87,11 @@
- src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc
- src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc
- src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc
- - src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc
- - src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc
- src/core/tsi/alts/handshaker/alts_tsi_utils.cc
- src/core/tsi/alts/handshaker/transport_security_common_api.cc
uses:
- - alts_proto
+ - alts_upb
- grpc_base
- - nanopb
- tsi_interface
- upb
- name: census
@@ -202,6 +188,8 @@
- src/core/ext/upb-generated/google/protobuf/timestamp.upb.c
- src/core/ext/upb-generated/google/protobuf/wrappers.upb.c
- src/core/ext/upb-generated/google/rpc/status.upb.c
+ uses:
+ - upb
- name: gpr_base
src:
- src/core/lib/gpr/alloc.cc
@@ -878,6 +866,7 @@
- src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c
uses:
- google_api_upb
+ - upb
- name: grpc_max_age_filter
headers:
- src/core/ext/filters/max_age/max_age_filter.h
@@ -4027,15 +4016,6 @@
- alts_test_util
- gpr
- grpc
-- name: alts_handshaker_service_api_test
- build: test
- language: c++
- src:
- - test/core/tsi/alts/handshaker/alts_handshaker_service_api_test.cc
- deps:
- - alts_test_util
- - gpr
- - grpc
- name: alts_iovec_record_protocol_test
build: test
language: c++
diff --git a/config.m4 b/config.m4
index 1bc581e..72fd381 100644
--- a/config.m4
+++ b/config.m4
@@ -334,23 +334,18 @@
src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc \
src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc \
src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc \
- src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc \
- src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc \
src/core/tsi/alts/handshaker/alts_tsi_utils.cc \
src/core/tsi/alts/handshaker/transport_security_common_api.cc \
- src/core/tsi/alts/handshaker/altscontext.pb.c \
- src/core/tsi/alts/handshaker/handshaker.pb.c \
- src/core/tsi/alts/handshaker/transport_security_common.pb.c \
- third_party/nanopb/pb_common.c \
- third_party/nanopb/pb_decode.c \
- third_party/nanopb/pb_encode.c \
- src/core/tsi/transport_security.cc \
+ src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c \
+ src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c \
+ src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c \
third_party/upb/upb/decode.c \
third_party/upb/upb/encode.c \
third_party/upb/upb/msg.c \
third_party/upb/upb/port.c \
third_party/upb/upb/table.c \
third_party/upb/upb/upb.c \
+ src/core/tsi/transport_security.cc \
src/core/ext/transport/chttp2/client/insecure/channel_create.cc \
src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc \
src/core/ext/transport/chttp2/client/authority.cc \
@@ -767,6 +762,7 @@
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/google/api)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/google/protobuf)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/google/rpc)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/src/proto/grpc/gcp)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/src/proto/grpc/health/v1)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/src/proto/grpc/lb/v1)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upb-generated/validate)
@@ -853,6 +849,5 @@
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/x509v3)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/ssl)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/third_party/fiat)
- PHP_ADD_BUILD_DIR($ext_builddir/third_party/nanopb)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb)
fi
diff --git a/config.w32 b/config.w32
index 52553fe..a2d0d0f 100644
--- a/config.w32
+++ b/config.w32
@@ -307,23 +307,18 @@
"src\\core\\lib\\security\\credentials\\alts\\grpc_alts_credentials_client_options.cc " +
"src\\core\\lib\\security\\credentials\\alts\\grpc_alts_credentials_options.cc " +
"src\\core\\lib\\security\\credentials\\alts\\grpc_alts_credentials_server_options.cc " +
- "src\\core\\tsi\\alts\\handshaker\\alts_handshaker_service_api.cc " +
- "src\\core\\tsi\\alts\\handshaker\\alts_handshaker_service_api_util.cc " +
"src\\core\\tsi\\alts\\handshaker\\alts_tsi_utils.cc " +
"src\\core\\tsi\\alts\\handshaker\\transport_security_common_api.cc " +
- "src\\core\\tsi\\alts\\handshaker\\altscontext.pb.c " +
- "src\\core\\tsi\\alts\\handshaker\\handshaker.pb.c " +
- "src\\core\\tsi\\alts\\handshaker\\transport_security_common.pb.c " +
- "third_party\\nanopb\\pb_common.c " +
- "third_party\\nanopb\\pb_decode.c " +
- "third_party\\nanopb\\pb_encode.c " +
- "src\\core\\tsi\\transport_security.cc " +
+ "src\\core\\ext\\upb-generated\\src\\proto\\grpc\\gcp\\altscontext.upb.c " +
+ "src\\core\\ext\\upb-generated\\src\\proto\\grpc\\gcp\\handshaker.upb.c " +
+ "src\\core\\ext\\upb-generated\\src\\proto\\grpc\\gcp\\transport_security_common.upb.c " +
"third_party\\upb\\upb\\decode.c " +
"third_party\\upb\\upb\\encode.c " +
"third_party\\upb\\upb\\msg.c " +
"third_party\\upb\\upb\\port.c " +
"third_party\\upb\\upb\\table.c " +
"third_party\\upb\\upb\\upb.c " +
+ "src\\core\\tsi\\transport_security.cc " +
"src\\core\\ext\\transport\\chttp2\\client\\insecure\\channel_create.cc " +
"src\\core\\ext\\transport\\chttp2\\client\\insecure\\channel_create_posix.cc " +
"src\\core\\ext\\transport\\chttp2\\client\\authority.cc " +
@@ -785,6 +780,7 @@
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\src");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\src\\proto");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\src\\proto\\grpc");
+ FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\src\\proto\\grpc\\gcp");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\src\\proto\\grpc\\health");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\src\\proto\\grpc\\health\\v1");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upb-generated\\src\\proto\\grpc\\lb");
@@ -883,7 +879,6 @@
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl\\ssl");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl\\third_party");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl\\third_party\\fiat");
- FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\nanopb");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb");
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\zlib");
diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec
index e0c8a57..5f0b312 100644
--- a/gRPC-C++.podspec
+++ b/gRPC-C++.podspec
@@ -228,6 +228,10 @@
'src/cpp/server/health/default_health_check_service.h',
'src/cpp/server/thread_pool_interface.h',
'src/cpp/thread_manager/thread_manager.h',
+ 'third_party/nanopb/pb.h',
+ 'third_party/nanopb/pb_common.h',
+ 'third_party/nanopb/pb_decode.h',
+ 'third_party/nanopb/pb_encode.h',
'src/cpp/client/insecure_credentials.cc',
'src/cpp/client/secure_credentials.cc',
'src/cpp/common/auth_property_iterator.cc',
@@ -380,15 +384,11 @@
'src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h',
'src/core/lib/security/credentials/alts/check_gcp_environment.h',
'src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api.h',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h',
'src/core/tsi/alts/handshaker/alts_tsi_utils.h',
'src/core/tsi/alts/handshaker/transport_security_common_api.h',
- 'src/core/tsi/alts/handshaker/altscontext.pb.h',
- 'src/core/tsi/alts/handshaker/handshaker.pb.h',
- 'src/core/tsi/alts/handshaker/transport_security_common.pb.h',
- 'src/core/tsi/transport_security.h',
- 'src/core/tsi/transport_security_interface.h',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h',
'third_party/upb/upb/decode.h',
'third_party/upb/upb/encode.h',
'third_party/upb/upb/generated_util.h',
@@ -397,6 +397,8 @@
'third_party/upb/upb/port_undef.inc',
'third_party/upb/upb/table.int.h',
'third_party/upb/upb/upb.h',
+ 'src/core/tsi/transport_security.h',
+ 'src/core/tsi/transport_security_interface.h',
'src/core/ext/transport/chttp2/client/authority.h',
'src/core/ext/transport/chttp2/client/chttp2_connector.h',
'src/core/ext/filters/client_channel/backup_poller.h',
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 0d6a282..2a35ca3 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -336,15 +336,11 @@
'src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h',
'src/core/lib/security/credentials/alts/check_gcp_environment.h',
'src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api.h',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h',
'src/core/tsi/alts/handshaker/alts_tsi_utils.h',
'src/core/tsi/alts/handshaker/transport_security_common_api.h',
- 'src/core/tsi/alts/handshaker/altscontext.pb.h',
- 'src/core/tsi/alts/handshaker/handshaker.pb.h',
- 'src/core/tsi/alts/handshaker/transport_security_common.pb.h',
- 'src/core/tsi/transport_security.h',
- 'src/core/tsi/transport_security_interface.h',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h',
'third_party/upb/upb/decode.h',
'third_party/upb/upb/encode.h',
'third_party/upb/upb/generated_util.h',
@@ -353,6 +349,8 @@
'third_party/upb/upb/port_undef.inc',
'third_party/upb/upb/table.int.h',
'third_party/upb/upb/upb.h',
+ 'src/core/tsi/transport_security.h',
+ 'src/core/tsi/transport_security_interface.h',
'src/core/ext/transport/chttp2/client/authority.h',
'src/core/ext/transport/chttp2/client/chttp2_connector.h',
'src/core/ext/filters/client_channel/backup_poller.h',
@@ -834,20 +832,18 @@
'src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc',
'src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc',
'src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc',
'src/core/tsi/alts/handshaker/alts_tsi_utils.cc',
'src/core/tsi/alts/handshaker/transport_security_common_api.cc',
- 'src/core/tsi/alts/handshaker/altscontext.pb.c',
- 'src/core/tsi/alts/handshaker/handshaker.pb.c',
- 'src/core/tsi/alts/handshaker/transport_security_common.pb.c',
- 'src/core/tsi/transport_security.cc',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c',
'third_party/upb/upb/decode.c',
'third_party/upb/upb/encode.c',
'third_party/upb/upb/msg.c',
'third_party/upb/upb/port.c',
'third_party/upb/upb/table.c',
'third_party/upb/upb/upb.c',
+ 'src/core/tsi/transport_security.cc',
'src/core/ext/transport/chttp2/client/insecure/channel_create.cc',
'src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc',
'src/core/ext/transport/chttp2/client/authority.cc',
@@ -1065,15 +1061,11 @@
'src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h',
'src/core/lib/security/credentials/alts/check_gcp_environment.h',
'src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api.h',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h',
'src/core/tsi/alts/handshaker/alts_tsi_utils.h',
'src/core/tsi/alts/handshaker/transport_security_common_api.h',
- 'src/core/tsi/alts/handshaker/altscontext.pb.h',
- 'src/core/tsi/alts/handshaker/handshaker.pb.h',
- 'src/core/tsi/alts/handshaker/transport_security_common.pb.h',
- 'src/core/tsi/transport_security.h',
- 'src/core/tsi/transport_security_interface.h',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h',
'third_party/upb/upb/decode.h',
'third_party/upb/upb/encode.h',
'third_party/upb/upb/generated_util.h',
@@ -1082,6 +1074,8 @@
'third_party/upb/upb/port_undef.inc',
'third_party/upb/upb/table.int.h',
'third_party/upb/upb/upb.h',
+ 'src/core/tsi/transport_security.h',
+ 'src/core/tsi/transport_security_interface.h',
'src/core/ext/transport/chttp2/client/authority.h',
'src/core/ext/transport/chttp2/client/chttp2_connector.h',
'src/core/ext/filters/client_channel/backup_poller.h',
@@ -1336,16 +1330,9 @@
ss.source_files = 'src/core/ext/transport/cronet/client/secure/cronet_channel_create.cc',
'src/core/ext/transport/cronet/transport/cronet_transport.cc',
- 'third_party/nanopb/pb_common.c',
- 'third_party/nanopb/pb_decode.c',
- 'third_party/nanopb/pb_encode.c',
'src/core/ext/transport/cronet/client/secure/cronet_channel_create.h',
'src/core/ext/transport/cronet/transport/cronet_transport.h',
- 'third_party/objective_c/Cronet/bidirectional_stream_c.h',
- 'third_party/nanopb/pb.h',
- 'third_party/nanopb/pb_common.h',
- 'third_party/nanopb/pb_decode.h',
- 'third_party/nanopb/pb_encode.h'
+ 'third_party/objective_c/Cronet/bidirectional_stream_c.h'
end
s.subspec 'Tests' do |ss|
diff --git a/grpc.gemspec b/grpc.gemspec
index 2c658f4..c817006 100644
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -265,19 +265,11 @@
s.files += %w( src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h )
s.files += %w( src/core/lib/security/credentials/alts/check_gcp_environment.h )
s.files += %w( src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h )
- s.files += %w( src/core/tsi/alts/handshaker/alts_handshaker_service_api.h )
- s.files += %w( src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h )
s.files += %w( src/core/tsi/alts/handshaker/alts_tsi_utils.h )
s.files += %w( src/core/tsi/alts/handshaker/transport_security_common_api.h )
- s.files += %w( src/core/tsi/alts/handshaker/altscontext.pb.h )
- s.files += %w( src/core/tsi/alts/handshaker/handshaker.pb.h )
- s.files += %w( src/core/tsi/alts/handshaker/transport_security_common.pb.h )
- s.files += %w( third_party/nanopb/pb.h )
- s.files += %w( third_party/nanopb/pb_common.h )
- s.files += %w( third_party/nanopb/pb_decode.h )
- s.files += %w( third_party/nanopb/pb_encode.h )
- s.files += %w( src/core/tsi/transport_security.h )
- s.files += %w( src/core/tsi/transport_security_interface.h )
+ s.files += %w( src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h )
+ s.files += %w( src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h )
+ s.files += %w( src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h )
s.files += %w( third_party/upb/upb/decode.h )
s.files += %w( third_party/upb/upb/encode.h )
s.files += %w( third_party/upb/upb/generated_util.h )
@@ -286,6 +278,8 @@
s.files += %w( third_party/upb/upb/port_undef.inc )
s.files += %w( third_party/upb/upb/table.int.h )
s.files += %w( third_party/upb/upb/upb.h )
+ s.files += %w( src/core/tsi/transport_security.h )
+ s.files += %w( src/core/tsi/transport_security_interface.h )
s.files += %w( src/core/ext/transport/chttp2/client/authority.h )
s.files += %w( src/core/ext/transport/chttp2/client/chttp2_connector.h )
s.files += %w( src/core/ext/filters/client_channel/backup_poller.h )
@@ -767,23 +761,18 @@
s.files += %w( src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc )
s.files += %w( src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc )
s.files += %w( src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc )
- s.files += %w( src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc )
- s.files += %w( src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc )
s.files += %w( src/core/tsi/alts/handshaker/alts_tsi_utils.cc )
s.files += %w( src/core/tsi/alts/handshaker/transport_security_common_api.cc )
- s.files += %w( src/core/tsi/alts/handshaker/altscontext.pb.c )
- s.files += %w( src/core/tsi/alts/handshaker/handshaker.pb.c )
- s.files += %w( src/core/tsi/alts/handshaker/transport_security_common.pb.c )
- s.files += %w( third_party/nanopb/pb_common.c )
- s.files += %w( third_party/nanopb/pb_decode.c )
- s.files += %w( third_party/nanopb/pb_encode.c )
- s.files += %w( src/core/tsi/transport_security.cc )
+ s.files += %w( src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c )
+ s.files += %w( src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c )
+ s.files += %w( src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c )
s.files += %w( third_party/upb/upb/decode.c )
s.files += %w( third_party/upb/upb/encode.c )
s.files += %w( third_party/upb/upb/msg.c )
s.files += %w( third_party/upb/upb/port.c )
s.files += %w( third_party/upb/upb/table.c )
s.files += %w( third_party/upb/upb/upb.c )
+ s.files += %w( src/core/tsi/transport_security.cc )
s.files += %w( src/core/ext/transport/chttp2/client/insecure/channel_create.cc )
s.files += %w( src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc )
s.files += %w( src/core/ext/transport/chttp2/client/authority.cc )
diff --git a/grpc.gyp b/grpc.gyp
index 5241a57..173aef5 100644
--- a/grpc.gyp
+++ b/grpc.gyp
@@ -544,23 +544,18 @@
'src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc',
'src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc',
'src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc',
'src/core/tsi/alts/handshaker/alts_tsi_utils.cc',
'src/core/tsi/alts/handshaker/transport_security_common_api.cc',
- 'src/core/tsi/alts/handshaker/altscontext.pb.c',
- 'src/core/tsi/alts/handshaker/handshaker.pb.c',
- 'src/core/tsi/alts/handshaker/transport_security_common.pb.c',
- 'third_party/nanopb/pb_common.c',
- 'third_party/nanopb/pb_decode.c',
- 'third_party/nanopb/pb_encode.c',
- 'src/core/tsi/transport_security.cc',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c',
'third_party/upb/upb/decode.c',
'third_party/upb/upb/encode.c',
'third_party/upb/upb/msg.c',
'third_party/upb/upb/port.c',
'third_party/upb/upb/table.c',
'third_party/upb/upb/upb.c',
+ 'src/core/tsi/transport_security.cc',
'src/core/ext/transport/chttp2/client/insecure/channel_create.cc',
'src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc',
'src/core/ext/transport/chttp2/client/authority.cc',
diff --git a/package.xml b/package.xml
index 1e1bc3d..979bc46 100644
--- a/package.xml
+++ b/package.xml
@@ -270,19 +270,11 @@
<file baseinstalldir="/" name="src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/security/credentials/alts/check_gcp_environment.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/alts_handshaker_service_api.h" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h" role="src" />
<file baseinstalldir="/" name="src/core/tsi/alts/handshaker/alts_tsi_utils.h" role="src" />
<file baseinstalldir="/" name="src/core/tsi/alts/handshaker/transport_security_common_api.h" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/altscontext.pb.h" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/handshaker.pb.h" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/transport_security_common.pb.h" role="src" />
- <file baseinstalldir="/" name="third_party/nanopb/pb.h" role="src" />
- <file baseinstalldir="/" name="third_party/nanopb/pb_common.h" role="src" />
- <file baseinstalldir="/" name="third_party/nanopb/pb_decode.h" role="src" />
- <file baseinstalldir="/" name="third_party/nanopb/pb_encode.h" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/transport_security.h" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/transport_security_interface.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/decode.h" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/encode.h" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/generated_util.h" role="src" />
@@ -291,6 +283,8 @@
<file baseinstalldir="/" name="third_party/upb/upb/port_undef.inc" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/table.int.h" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/upb.h" role="src" />
+ <file baseinstalldir="/" name="src/core/tsi/transport_security.h" role="src" />
+ <file baseinstalldir="/" name="src/core/tsi/transport_security_interface.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/authority.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/chttp2_connector.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/filters/client_channel/backup_poller.h" role="src" />
@@ -772,23 +766,18 @@
<file baseinstalldir="/" name="src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc" role="src" />
<file baseinstalldir="/" name="src/core/tsi/alts/handshaker/alts_tsi_utils.cc" role="src" />
<file baseinstalldir="/" name="src/core/tsi/alts/handshaker/transport_security_common_api.cc" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/altscontext.pb.c" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/handshaker.pb.c" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/alts/handshaker/transport_security_common.pb.c" role="src" />
- <file baseinstalldir="/" name="third_party/nanopb/pb_common.c" role="src" />
- <file baseinstalldir="/" name="third_party/nanopb/pb_decode.c" role="src" />
- <file baseinstalldir="/" name="third_party/nanopb/pb_encode.c" role="src" />
- <file baseinstalldir="/" name="src/core/tsi/transport_security.cc" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/decode.c" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/encode.c" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/msg.c" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/port.c" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/table.c" role="src" />
<file baseinstalldir="/" name="third_party/upb/upb/upb.c" role="src" />
+ <file baseinstalldir="/" name="src/core/tsi/transport_security.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/insecure/channel_create.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc" role="src" />
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/authority.cc" role="src" />
diff --git a/src/core/tsi/alts/handshaker/alts_handshaker_client.cc b/src/core/tsi/alts/handshaker/alts_handshaker_client.cc
index 464de9e..55fd066 100644
--- a/src/core/tsi/alts/handshaker/alts_handshaker_client.cc
+++ b/src/core/tsi/alts/handshaker/alts_handshaker_client.cc
@@ -27,7 +27,6 @@
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/surface/call.h"
#include "src/core/lib/surface/channel.h"
-#include "src/core/tsi/alts/handshaker/alts_handshaker_service_api.h"
#include "src/core/tsi/alts/handshaker/alts_shared_resource.h"
#include "src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h"
#include "src/core/tsi/alts/handshaker/alts_tsi_utils.h"
@@ -91,9 +90,9 @@
client->send_buffer = nullptr;
}
-static bool is_handshake_finished_properly(grpc_gcp_handshaker_resp* resp) {
+static bool is_handshake_finished_properly(grpc_gcp_HandshakerResp* resp) {
GPR_ASSERT(resp != nullptr);
- if (resp->has_result) {
+ if (grpc_gcp_HandshakerResp_result(resp)) {
return true;
}
return false;
@@ -140,8 +139,9 @@
cb(TSI_INTERNAL_ERROR, user_data, nullptr, 0, nullptr);
return;
}
- grpc_gcp_handshaker_resp* resp =
- alts_tsi_utils_deserialize_response(recv_buffer);
+ upb::Arena arena;
+ grpc_gcp_HandshakerResp* resp =
+ alts_tsi_utils_deserialize_response(recv_buffer, arena.ptr());
grpc_byte_buffer_destroy(client->recv_buffer);
client->recv_buffer = nullptr;
/* Invalid handshaker response check. */
@@ -150,35 +150,44 @@
cb(TSI_DATA_CORRUPTED, user_data, nullptr, 0, nullptr);
return;
}
- grpc_slice* slice = static_cast<grpc_slice*>(resp->out_frames.arg);
+ const grpc_gcp_HandshakerStatus* resp_status =
+ grpc_gcp_HandshakerResp_status(resp);
+ if (resp_status == nullptr) {
+ gpr_log(GPR_ERROR, "No status in HandshakerResp");
+ cb(TSI_DATA_CORRUPTED, user_data, nullptr, 0, nullptr);
+ return;
+ }
+ upb_strview out_frames = grpc_gcp_HandshakerResp_out_frames(resp);
unsigned char* bytes_to_send = nullptr;
size_t bytes_to_send_size = 0;
- if (slice != nullptr) {
- bytes_to_send_size = GRPC_SLICE_LENGTH(*slice);
+ if (out_frames.size > 0) {
+ bytes_to_send_size = out_frames.size;
while (bytes_to_send_size > client->buffer_size) {
client->buffer_size *= 2;
client->buffer = static_cast<unsigned char*>(
gpr_realloc(client->buffer, client->buffer_size));
}
- memcpy(client->buffer, GRPC_SLICE_START_PTR(*slice), bytes_to_send_size);
+ memcpy(client->buffer, out_frames.data, bytes_to_send_size);
bytes_to_send = client->buffer;
}
tsi_handshaker_result* result = nullptr;
if (is_handshake_finished_properly(resp)) {
alts_tsi_handshaker_result_create(resp, client->is_client, &result);
- alts_tsi_handshaker_result_set_unused_bytes(result, &client->recv_bytes,
- resp->bytes_consumed);
+ alts_tsi_handshaker_result_set_unused_bytes(
+ result, &client->recv_bytes,
+ grpc_gcp_HandshakerResp_bytes_consumed(resp));
}
- grpc_status_code code = static_cast<grpc_status_code>(resp->status.code);
+ grpc_status_code code = static_cast<grpc_status_code>(
+ grpc_gcp_HandshakerStatus_code(resp_status));
if (code != GRPC_STATUS_OK) {
- grpc_slice* details = static_cast<grpc_slice*>(resp->status.details.arg);
- if (details != nullptr) {
- char* error_details = grpc_slice_to_c_string(*details);
+ upb_strview details = grpc_gcp_HandshakerStatus_details(resp_status);
+ if (details.size > 0) {
+ char* error_details = (char*)gpr_zalloc(details.size + 1);
+ memcpy(error_details, details.data, details.size);
gpr_log(GPR_ERROR, "Error from handshaker service:%s", error_details);
gpr_free(error_details);
}
}
- grpc_gcp_handshaker_resp_destroy(resp);
cb(alts_tsi_utils_convert_to_tsi_result(code), user_data, bytes_to_send,
bytes_to_send_size, result);
}
@@ -223,43 +232,59 @@
return TSI_OK;
}
+/* Serializes a grpc_gcp_HandshakerReq message into a buffer and returns newly
+ * grpc_byte_buffer holding it. */
+static grpc_byte_buffer* get_serialized_handshaker_req(
+ grpc_gcp_HandshakerReq* req, upb_arena* arena) {
+ size_t buf_length;
+ char* buf = grpc_gcp_HandshakerReq_serialize(req, arena, &buf_length);
+ if (buf == nullptr) {
+ return nullptr;
+ }
+ grpc_slice slice = grpc_slice_from_copied_buffer(buf, buf_length);
+ grpc_byte_buffer* byte_buffer = grpc_raw_byte_buffer_create(&slice, 1);
+ grpc_slice_unref_internal(slice);
+ return byte_buffer;
+}
+
/* Create and populate a client_start handshaker request, then serialize it. */
static grpc_byte_buffer* get_serialized_start_client(
alts_handshaker_client* c) {
GPR_ASSERT(c != nullptr);
alts_grpc_handshaker_client* client =
reinterpret_cast<alts_grpc_handshaker_client*>(c);
- bool ok = true;
- grpc_gcp_handshaker_req* req =
- grpc_gcp_handshaker_req_create(CLIENT_START_REQ);
- ok &= grpc_gcp_handshaker_req_set_handshake_protocol(
- req, grpc_gcp_HandshakeProtocol_ALTS);
- ok &= grpc_gcp_handshaker_req_add_application_protocol(
- req, ALTS_APPLICATION_PROTOCOL);
- ok &= grpc_gcp_handshaker_req_add_record_protocol(req, ALTS_RECORD_PROTOCOL);
- grpc_gcp_rpc_protocol_versions* versions = &client->options->rpc_versions;
- ok &= grpc_gcp_handshaker_req_set_rpc_versions(
- req, versions->max_rpc_version.major, versions->max_rpc_version.minor,
- versions->min_rpc_version.major, versions->min_rpc_version.minor);
- char* target_name = grpc_slice_to_c_string(client->target_name);
- ok &= grpc_gcp_handshaker_req_set_target_name(req, target_name);
+ upb::Arena arena;
+ grpc_gcp_HandshakerReq* req = grpc_gcp_HandshakerReq_new(arena.ptr());
+ grpc_gcp_StartClientHandshakeReq* start_client =
+ grpc_gcp_HandshakerReq_mutable_client_start(req, arena.ptr());
+ grpc_gcp_StartClientHandshakeReq_set_handshake_security_protocol(
+ start_client, grpc_gcp_ALTS);
+ grpc_gcp_StartClientHandshakeReq_add_application_protocols(
+ start_client, upb_strview_makez(ALTS_APPLICATION_PROTOCOL), arena.ptr());
+ grpc_gcp_StartClientHandshakeReq_add_record_protocols(
+ start_client, upb_strview_makez(ALTS_RECORD_PROTOCOL), arena.ptr());
+ grpc_gcp_RpcProtocolVersions* client_version =
+ grpc_gcp_StartClientHandshakeReq_mutable_rpc_versions(start_client,
+ arena.ptr());
+ grpc_gcp_RpcProtocolVersions_assign_from_struct(
+ client_version, arena.ptr(), &client->options->rpc_versions);
+ grpc_gcp_StartClientHandshakeReq_set_target_name(
+ start_client,
+ upb_strview_make(reinterpret_cast<const char*>(
+ GRPC_SLICE_START_PTR(client->target_name)),
+ GRPC_SLICE_LENGTH(client->target_name)));
target_service_account* ptr =
(reinterpret_cast<grpc_alts_credentials_client_options*>(client->options))
->target_account_list_head;
while (ptr != nullptr) {
- grpc_gcp_handshaker_req_add_target_identity_service_account(req, ptr->data);
+ grpc_gcp_Identity* target_identity =
+ grpc_gcp_StartClientHandshakeReq_add_target_identities(start_client,
+ arena.ptr());
+ grpc_gcp_Identity_set_service_account(target_identity,
+ upb_strview_makez(ptr->data));
ptr = ptr->next;
}
- grpc_slice slice;
- ok &= grpc_gcp_handshaker_req_encode(req, &slice);
- grpc_byte_buffer* buffer = nullptr;
- if (ok) {
- buffer = grpc_raw_byte_buffer_create(&slice, 1 /* number of slices */);
- }
- grpc_slice_unref_internal(slice);
- gpr_free(target_name);
- grpc_gcp_handshaker_req_destroy(req);
- return buffer;
+ return get_serialized_handshaker_req(req, arena.ptr());
}
static tsi_result handshaker_client_start_client(alts_handshaker_client* c) {
@@ -290,28 +315,35 @@
GPR_ASSERT(bytes_received != nullptr);
alts_grpc_handshaker_client* client =
reinterpret_cast<alts_grpc_handshaker_client*>(c);
- grpc_gcp_handshaker_req* req =
- grpc_gcp_handshaker_req_create(SERVER_START_REQ);
- bool ok = grpc_gcp_handshaker_req_add_application_protocol(
- req, ALTS_APPLICATION_PROTOCOL);
- ok &= grpc_gcp_handshaker_req_param_add_record_protocol(
- req, grpc_gcp_HandshakeProtocol_ALTS, ALTS_RECORD_PROTOCOL);
- ok &= grpc_gcp_handshaker_req_set_in_bytes(
- req, reinterpret_cast<const char*> GRPC_SLICE_START_PTR(*bytes_received),
- GRPC_SLICE_LENGTH(*bytes_received));
- grpc_gcp_rpc_protocol_versions* versions = &client->options->rpc_versions;
- ok &= grpc_gcp_handshaker_req_set_rpc_versions(
- req, versions->max_rpc_version.major, versions->max_rpc_version.minor,
- versions->min_rpc_version.major, versions->min_rpc_version.minor);
- grpc_slice req_slice;
- ok &= grpc_gcp_handshaker_req_encode(req, &req_slice);
- grpc_byte_buffer* buffer = nullptr;
- if (ok) {
- buffer = grpc_raw_byte_buffer_create(&req_slice, 1 /* number of slices */);
- }
- grpc_slice_unref_internal(req_slice);
- grpc_gcp_handshaker_req_destroy(req);
- return buffer;
+
+ upb::Arena arena;
+ grpc_gcp_HandshakerReq* req = grpc_gcp_HandshakerReq_new(arena.ptr());
+
+ grpc_gcp_StartServerHandshakeReq* start_server =
+ grpc_gcp_HandshakerReq_mutable_server_start(req, arena.ptr());
+ grpc_gcp_StartServerHandshakeReq_add_application_protocols(
+ start_server, upb_strview_makez(ALTS_APPLICATION_PROTOCOL), arena.ptr());
+ grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry* param =
+ grpc_gcp_StartServerHandshakeReq_add_handshake_parameters(start_server,
+ arena.ptr());
+ grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_set_key(
+ param, grpc_gcp_ALTS);
+ grpc_gcp_ServerHandshakeParameters* value =
+ grpc_gcp_ServerHandshakeParameters_new(arena.ptr());
+ grpc_gcp_ServerHandshakeParameters_add_record_protocols(
+ value, upb_strview_makez(ALTS_RECORD_PROTOCOL), arena.ptr());
+ grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_set_value(param,
+ value);
+ grpc_gcp_StartServerHandshakeReq_set_in_bytes(
+ start_server, upb_strview_make(reinterpret_cast<const char*>(
+ GRPC_SLICE_START_PTR(*bytes_received)),
+ GRPC_SLICE_LENGTH(*bytes_received)));
+ grpc_gcp_RpcProtocolVersions* server_version =
+ grpc_gcp_StartServerHandshakeReq_mutable_rpc_versions(start_server,
+ arena.ptr());
+ grpc_gcp_RpcProtocolVersions_assign_from_struct(
+ server_version, arena.ptr(), &client->options->rpc_versions);
+ return get_serialized_handshaker_req(req, arena.ptr());
}
static tsi_result handshaker_client_start_server(alts_handshaker_client* c,
@@ -339,19 +371,15 @@
/* Create and populate a next handshaker request, then serialize it. */
static grpc_byte_buffer* get_serialized_next(grpc_slice* bytes_received) {
GPR_ASSERT(bytes_received != nullptr);
- grpc_gcp_handshaker_req* req = grpc_gcp_handshaker_req_create(NEXT_REQ);
- bool ok = grpc_gcp_handshaker_req_set_in_bytes(
- req, reinterpret_cast<const char*> GRPC_SLICE_START_PTR(*bytes_received),
- GRPC_SLICE_LENGTH(*bytes_received));
- grpc_slice req_slice;
- ok &= grpc_gcp_handshaker_req_encode(req, &req_slice);
- grpc_byte_buffer* buffer = nullptr;
- if (ok) {
- buffer = grpc_raw_byte_buffer_create(&req_slice, 1 /* number of slices */);
- }
- grpc_slice_unref_internal(req_slice);
- grpc_gcp_handshaker_req_destroy(req);
- return buffer;
+ upb::Arena arena;
+ grpc_gcp_HandshakerReq* req = grpc_gcp_HandshakerReq_new(arena.ptr());
+ grpc_gcp_NextHandshakeMessageReq* next =
+ grpc_gcp_HandshakerReq_mutable_next(req, arena.ptr());
+ grpc_gcp_NextHandshakeMessageReq_set_in_bytes(
+ next, upb_strview_make(reinterpret_cast<const char*> GRPC_SLICE_START_PTR(
+ *bytes_received),
+ GRPC_SLICE_LENGTH(*bytes_received)));
+ return get_serialized_handshaker_req(req, arena.ptr());
}
static tsi_result handshaker_client_next(alts_handshaker_client* c,
diff --git a/src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc b/src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc
deleted file mode 100644
index 256e414..0000000
--- a/src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc
+++ /dev/null
@@ -1,520 +0,0 @@
-/*
- *
- * 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 <grpc/support/port_platform.h>
-
-#include "src/core/tsi/alts/handshaker/alts_handshaker_service_api.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "src/core/tsi/alts/handshaker/transport_security_common_api.h"
-
-/* HandshakerReq */
-grpc_gcp_handshaker_req* grpc_gcp_handshaker_req_create(
- grpc_gcp_handshaker_req_type type) {
- grpc_gcp_handshaker_req* req =
- static_cast<grpc_gcp_handshaker_req*>(gpr_zalloc(sizeof(*req)));
- switch (type) {
- case CLIENT_START_REQ:
- req->has_client_start = true;
- break;
- case SERVER_START_REQ:
- req->has_server_start = true;
- break;
- case NEXT_REQ:
- req->has_next = true;
- break;
- }
- return req;
-}
-
-void grpc_gcp_handshaker_req_destroy(grpc_gcp_handshaker_req* req) {
- if (req == nullptr) {
- return;
- }
- if (req->has_client_start) {
- /* Destroy client_start request. */
- destroy_repeated_field_list_identity(
- static_cast<repeated_field*>(req->client_start.target_identities.arg));
- destroy_repeated_field_list_string(static_cast<repeated_field*>(
- req->client_start.application_protocols.arg));
- destroy_repeated_field_list_string(
- static_cast<repeated_field*>(req->client_start.record_protocols.arg));
- if (req->client_start.has_local_identity) {
- destroy_slice(static_cast<grpc_slice*>(
- req->client_start.local_identity.hostname.arg));
- destroy_slice(static_cast<grpc_slice*>(
- req->client_start.local_identity.service_account.arg));
- }
- if (req->client_start.has_local_endpoint) {
- destroy_slice(static_cast<grpc_slice*>(
- req->client_start.local_endpoint.ip_address.arg));
- }
- if (req->client_start.has_remote_endpoint) {
- destroy_slice(static_cast<grpc_slice*>(
- req->client_start.remote_endpoint.ip_address.arg));
- }
- destroy_slice(static_cast<grpc_slice*>(req->client_start.target_name.arg));
- } else if (req->has_server_start) {
- /* Destroy server_start request. */
- size_t i = 0;
- for (i = 0; i < req->server_start.handshake_parameters_count; i++) {
- destroy_repeated_field_list_identity(
- static_cast<repeated_field*>(req->server_start.handshake_parameters[i]
- .value.local_identities.arg));
- destroy_repeated_field_list_string(
- static_cast<repeated_field*>(req->server_start.handshake_parameters[i]
- .value.record_protocols.arg));
- }
- destroy_repeated_field_list_string(static_cast<repeated_field*>(
- req->server_start.application_protocols.arg));
- if (req->server_start.has_local_endpoint) {
- destroy_slice(static_cast<grpc_slice*>(
- req->server_start.local_endpoint.ip_address.arg));
- }
- if (req->server_start.has_remote_endpoint) {
- destroy_slice(static_cast<grpc_slice*>(
- req->server_start.remote_endpoint.ip_address.arg));
- }
- destroy_slice(static_cast<grpc_slice*>(req->server_start.in_bytes.arg));
- } else {
- /* Destroy next request. */
- destroy_slice(static_cast<grpc_slice*>(req->next.in_bytes.arg));
- }
- gpr_free(req);
-}
-
-bool grpc_gcp_handshaker_req_set_handshake_protocol(
- grpc_gcp_handshaker_req* req,
- grpc_gcp_handshake_protocol handshake_protocol) {
- if (req == nullptr || !req->has_client_start) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_set_handshake_protocol().");
- return false;
- }
- req->client_start.has_handshake_security_protocol = true;
- req->client_start.handshake_security_protocol = handshake_protocol;
- return true;
-}
-
-bool grpc_gcp_handshaker_req_set_target_name(grpc_gcp_handshaker_req* req,
- const char* target_name) {
- if (req == nullptr || target_name == nullptr || !req->has_client_start) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_set_target_name().");
- return false;
- }
- grpc_slice* slice = create_slice(target_name, strlen(target_name));
- req->client_start.target_name.arg = slice;
- req->client_start.target_name.funcs.encode = encode_string_or_bytes_cb;
- return true;
-}
-
-bool grpc_gcp_handshaker_req_add_application_protocol(
- grpc_gcp_handshaker_req* req, const char* application_protocol) {
- if (req == nullptr || application_protocol == nullptr || req->has_next) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_add_application_protocol().");
- return false;
- }
- grpc_slice* slice =
- create_slice(application_protocol, strlen(application_protocol));
- if (req->has_client_start) {
- add_repeated_field(reinterpret_cast<repeated_field**>(
- &req->client_start.application_protocols.arg),
- slice);
- req->client_start.application_protocols.funcs.encode =
- encode_repeated_string_cb;
- } else {
- add_repeated_field(reinterpret_cast<repeated_field**>(
- &req->server_start.application_protocols.arg),
- slice);
- req->server_start.application_protocols.funcs.encode =
- encode_repeated_string_cb;
- }
- return true;
-}
-
-bool grpc_gcp_handshaker_req_add_record_protocol(grpc_gcp_handshaker_req* req,
- const char* record_protocol) {
- if (req == nullptr || record_protocol == nullptr || !req->has_client_start) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_add_record_protocol().");
- return false;
- }
- grpc_slice* slice = create_slice(record_protocol, strlen(record_protocol));
- add_repeated_field(reinterpret_cast<repeated_field**>(
- &req->client_start.record_protocols.arg),
- slice);
- req->client_start.record_protocols.funcs.encode = encode_repeated_string_cb;
- return true;
-}
-
-static void set_identity_hostname(grpc_gcp_identity* identity,
- const char* hostname) {
- grpc_slice* slice = create_slice(hostname, strlen(hostname));
- identity->hostname.arg = slice;
- identity->hostname.funcs.encode = encode_string_or_bytes_cb;
-}
-
-static void set_identity_service_account(grpc_gcp_identity* identity,
- const char* service_account) {
- grpc_slice* slice = create_slice(service_account, strlen(service_account));
- identity->service_account.arg = slice;
- identity->service_account.funcs.encode = encode_string_or_bytes_cb;
-}
-
-bool grpc_gcp_handshaker_req_add_target_identity_hostname(
- grpc_gcp_handshaker_req* req, const char* hostname) {
- if (req == nullptr || hostname == nullptr || !req->has_client_start) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_handshaker_req_add_target_identity_hostname().");
- return false;
- }
- grpc_gcp_identity* target_identity =
- static_cast<grpc_gcp_identity*>(gpr_zalloc(sizeof(*target_identity)));
- set_identity_hostname(target_identity, hostname);
- req->client_start.target_identities.funcs.encode =
- encode_repeated_identity_cb;
- add_repeated_field(reinterpret_cast<repeated_field**>(
- &req->client_start.target_identities.arg),
- target_identity);
- return true;
-}
-
-bool grpc_gcp_handshaker_req_add_target_identity_service_account(
- grpc_gcp_handshaker_req* req, const char* service_account) {
- if (req == nullptr || service_account == nullptr || !req->has_client_start) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_handshaker_req_add_target_identity_service_account().");
- return false;
- }
- grpc_gcp_identity* target_identity =
- static_cast<grpc_gcp_identity*>(gpr_zalloc(sizeof(*target_identity)));
- set_identity_service_account(target_identity, service_account);
- req->client_start.target_identities.funcs.encode =
- encode_repeated_identity_cb;
- add_repeated_field(reinterpret_cast<repeated_field**>(
- &req->client_start.target_identities.arg),
- target_identity);
- return true;
-}
-
-bool grpc_gcp_handshaker_req_set_local_identity_hostname(
- grpc_gcp_handshaker_req* req, const char* hostname) {
- if (req == nullptr || hostname == nullptr || !req->has_client_start) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_handshaker_req_set_local_identity_hostname().");
- return false;
- }
- req->client_start.has_local_identity = true;
- set_identity_hostname(&req->client_start.local_identity, hostname);
- return true;
-}
-
-bool grpc_gcp_handshaker_req_set_local_identity_service_account(
- grpc_gcp_handshaker_req* req, const char* service_account) {
- if (req == nullptr || service_account == nullptr || !req->has_client_start) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_handshaker_req_set_local_identity_service_account().");
- return false;
- }
- req->client_start.has_local_identity = true;
- set_identity_service_account(&req->client_start.local_identity,
- service_account);
- return true;
-}
-
-static void set_endpoint(grpc_gcp_endpoint* endpoint, const char* ip_address,
- size_t port, grpc_gcp_network_protocol protocol) {
- grpc_slice* slice = create_slice(ip_address, strlen(ip_address));
- endpoint->ip_address.arg = slice;
- endpoint->ip_address.funcs.encode = encode_string_or_bytes_cb;
- endpoint->has_port = true;
- endpoint->port = static_cast<int32_t>(port);
- endpoint->has_protocol = true;
- endpoint->protocol = protocol;
-}
-
-bool grpc_gcp_handshaker_req_set_rpc_versions(grpc_gcp_handshaker_req* req,
- uint32_t max_major,
- uint32_t max_minor,
- uint32_t min_major,
- uint32_t min_minor) {
- if (req == nullptr || req->has_next) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_set_rpc_versions().");
- return false;
- }
- if (req->has_client_start) {
- req->client_start.has_rpc_versions = true;
- grpc_gcp_rpc_protocol_versions_set_max(&req->client_start.rpc_versions,
- max_major, max_minor);
- grpc_gcp_rpc_protocol_versions_set_min(&req->client_start.rpc_versions,
- min_major, min_minor);
- } else {
- req->server_start.has_rpc_versions = true;
- grpc_gcp_rpc_protocol_versions_set_max(&req->server_start.rpc_versions,
- max_major, max_minor);
- grpc_gcp_rpc_protocol_versions_set_min(&req->server_start.rpc_versions,
- min_major, min_minor);
- }
- return true;
-}
-
-bool grpc_gcp_handshaker_req_set_local_endpoint(
- grpc_gcp_handshaker_req* req, const char* ip_address, size_t port,
- grpc_gcp_network_protocol protocol) {
- if (req == nullptr || ip_address == nullptr || port > 65535 ||
- req->has_next) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_set_local_endpoint().");
- return false;
- }
- if (req->has_client_start) {
- req->client_start.has_local_endpoint = true;
- set_endpoint(&req->client_start.local_endpoint, ip_address, port, protocol);
- } else {
- req->server_start.has_local_endpoint = true;
- set_endpoint(&req->server_start.local_endpoint, ip_address, port, protocol);
- }
- return true;
-}
-
-bool grpc_gcp_handshaker_req_set_remote_endpoint(
- grpc_gcp_handshaker_req* req, const char* ip_address, size_t port,
- grpc_gcp_network_protocol protocol) {
- if (req == nullptr || ip_address == nullptr || port > 65535 ||
- req->has_next) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_set_remote_endpoint().");
- return false;
- }
- if (req->has_client_start) {
- req->client_start.has_remote_endpoint = true;
- set_endpoint(&req->client_start.remote_endpoint, ip_address, port,
- protocol);
- } else {
- req->server_start.has_remote_endpoint = true;
- set_endpoint(&req->server_start.remote_endpoint, ip_address, port,
- protocol);
- }
- return true;
-}
-
-bool grpc_gcp_handshaker_req_set_in_bytes(grpc_gcp_handshaker_req* req,
- const char* in_bytes, size_t size) {
- if (req == nullptr || in_bytes == nullptr || req->has_client_start) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_set_in_bytes().");
- return false;
- }
- grpc_slice* slice = create_slice(in_bytes, size);
- if (req->has_next) {
- req->next.in_bytes.arg = slice;
- req->next.in_bytes.funcs.encode = &encode_string_or_bytes_cb;
- } else {
- req->server_start.in_bytes.arg = slice;
- req->server_start.in_bytes.funcs.encode = &encode_string_or_bytes_cb;
- }
- return true;
-}
-
-static grpc_gcp_server_handshake_parameters* server_start_find_param(
- grpc_gcp_handshaker_req* req, int32_t key) {
- size_t i = 0;
- for (i = 0; i < req->server_start.handshake_parameters_count; i++) {
- if (req->server_start.handshake_parameters[i].key == key) {
- return &req->server_start.handshake_parameters[i].value;
- }
- }
- req->server_start
- .handshake_parameters[req->server_start.handshake_parameters_count]
- .has_key = true;
- req->server_start
- .handshake_parameters[req->server_start.handshake_parameters_count]
- .has_value = true;
- req->server_start
- .handshake_parameters[req->server_start.handshake_parameters_count++]
- .key = key;
- return &req->server_start
- .handshake_parameters
- [req->server_start.handshake_parameters_count - 1]
- .value;
-}
-
-bool grpc_gcp_handshaker_req_param_add_record_protocol(
- grpc_gcp_handshaker_req* req, grpc_gcp_handshake_protocol key,
- const char* record_protocol) {
- if (req == nullptr || record_protocol == nullptr || !req->has_server_start) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_param_add_record_protocol().");
- return false;
- }
- grpc_gcp_server_handshake_parameters* param =
- server_start_find_param(req, key);
- grpc_slice* slice = create_slice(record_protocol, strlen(record_protocol));
- add_repeated_field(
- reinterpret_cast<repeated_field**>(¶m->record_protocols.arg), slice);
- param->record_protocols.funcs.encode = &encode_repeated_string_cb;
- return true;
-}
-
-bool grpc_gcp_handshaker_req_param_add_local_identity_hostname(
- grpc_gcp_handshaker_req* req, grpc_gcp_handshake_protocol key,
- const char* hostname) {
- if (req == nullptr || hostname == nullptr || !req->has_server_start) {
- gpr_log(GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_param_add_local_identity_hostname().");
- return false;
- }
- grpc_gcp_server_handshake_parameters* param =
- server_start_find_param(req, key);
- grpc_gcp_identity* local_identity =
- static_cast<grpc_gcp_identity*>(gpr_zalloc(sizeof(*local_identity)));
- set_identity_hostname(local_identity, hostname);
- add_repeated_field(
- reinterpret_cast<repeated_field**>(¶m->local_identities.arg),
- local_identity);
- param->local_identities.funcs.encode = &encode_repeated_identity_cb;
- return true;
-}
-
-bool grpc_gcp_handshaker_req_param_add_local_identity_service_account(
- grpc_gcp_handshaker_req* req, grpc_gcp_handshake_protocol key,
- const char* service_account) {
- if (req == nullptr || service_account == nullptr || !req->has_server_start) {
- gpr_log(
- GPR_ERROR,
- "Invalid arguments to "
- "grpc_gcp_handshaker_req_param_add_local_identity_service_account().");
- return false;
- }
- grpc_gcp_server_handshake_parameters* param =
- server_start_find_param(req, key);
- grpc_gcp_identity* local_identity =
- static_cast<grpc_gcp_identity*>(gpr_zalloc(sizeof(*local_identity)));
- set_identity_service_account(local_identity, service_account);
- add_repeated_field(
- reinterpret_cast<repeated_field**>(¶m->local_identities.arg),
- local_identity);
- param->local_identities.funcs.encode = &encode_repeated_identity_cb;
- return true;
-}
-
-bool grpc_gcp_handshaker_req_encode(grpc_gcp_handshaker_req* req,
- grpc_slice* slice) {
- if (req == nullptr || slice == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to grpc_gcp_handshaker_req_encode().");
- return false;
- }
- pb_ostream_t size_stream;
- memset(&size_stream, 0, sizeof(pb_ostream_t));
- if (!pb_encode(&size_stream, grpc_gcp_HandshakerReq_fields, req)) {
- gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&size_stream));
- return false;
- }
- size_t encoded_length = size_stream.bytes_written;
- *slice = grpc_slice_malloc(encoded_length);
- pb_ostream_t output_stream =
- pb_ostream_from_buffer(GRPC_SLICE_START_PTR(*slice), encoded_length);
- if (!pb_encode(&output_stream, grpc_gcp_HandshakerReq_fields, req) != 0) {
- gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&output_stream));
- return false;
- }
- return true;
-}
-
-/* HandshakerResp. */
-grpc_gcp_handshaker_resp* grpc_gcp_handshaker_resp_create(void) {
- grpc_gcp_handshaker_resp* resp =
- static_cast<grpc_gcp_handshaker_resp*>(gpr_zalloc(sizeof(*resp)));
- return resp;
-}
-
-void grpc_gcp_handshaker_resp_destroy(grpc_gcp_handshaker_resp* resp) {
- if (resp != nullptr) {
- destroy_slice(static_cast<grpc_slice*>(resp->out_frames.arg));
- if (resp->has_status) {
- destroy_slice(static_cast<grpc_slice*>(resp->status.details.arg));
- }
- if (resp->has_result) {
- destroy_slice(
- static_cast<grpc_slice*>(resp->result.application_protocol.arg));
- destroy_slice(static_cast<grpc_slice*>(resp->result.record_protocol.arg));
- destroy_slice(static_cast<grpc_slice*>(resp->result.key_data.arg));
- if (resp->result.has_local_identity) {
- destroy_slice(
- static_cast<grpc_slice*>(resp->result.local_identity.hostname.arg));
- destroy_slice(static_cast<grpc_slice*>(
- resp->result.local_identity.service_account.arg));
- }
- if (resp->result.has_peer_identity) {
- destroy_slice(
- static_cast<grpc_slice*>(resp->result.peer_identity.hostname.arg));
- destroy_slice(static_cast<grpc_slice*>(
- resp->result.peer_identity.service_account.arg));
- }
- }
- gpr_free(resp);
- }
-}
-
-bool grpc_gcp_handshaker_resp_decode(grpc_slice encoded_handshaker_resp,
- grpc_gcp_handshaker_resp* resp) {
- if (resp == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr argument to grpc_gcp_handshaker_resp_decode().");
- return false;
- }
- pb_istream_t stream =
- pb_istream_from_buffer(GRPC_SLICE_START_PTR(encoded_handshaker_resp),
- GRPC_SLICE_LENGTH(encoded_handshaker_resp));
- resp->out_frames.funcs.decode = decode_string_or_bytes_cb;
- resp->status.details.funcs.decode = decode_string_or_bytes_cb;
- resp->result.application_protocol.funcs.decode = decode_string_or_bytes_cb;
- resp->result.record_protocol.funcs.decode = decode_string_or_bytes_cb;
- resp->result.key_data.funcs.decode = decode_string_or_bytes_cb;
- resp->result.peer_identity.hostname.funcs.decode = decode_string_or_bytes_cb;
- resp->result.peer_identity.service_account.funcs.decode =
- decode_string_or_bytes_cb;
- resp->result.local_identity.hostname.funcs.decode = decode_string_or_bytes_cb;
- resp->result.local_identity.service_account.funcs.decode =
- decode_string_or_bytes_cb;
- if (!pb_decode(&stream, grpc_gcp_HandshakerResp_fields, resp)) {
- gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&stream));
- return false;
- }
- return true;
-}
diff --git a/src/core/tsi/alts/handshaker/alts_handshaker_service_api.h b/src/core/tsi/alts/handshaker/alts_handshaker_service_api.h
deleted file mode 100644
index 5df56a8..0000000
--- a/src/core/tsi/alts/handshaker/alts_handshaker_service_api.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- *
- * 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.
- *
- */
-
-#ifndef GRPC_CORE_TSI_ALTS_HANDSHAKER_ALTS_HANDSHAKER_SERVICE_API_H
-#define GRPC_CORE_TSI_ALTS_HANDSHAKER_ALTS_HANDSHAKER_SERVICE_API_H
-
-#include <grpc/support/port_platform.h>
-
-#include "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h"
-
-/**
- * An implementation of nanopb thin wrapper used to set/get and
- * serialize/de-serialize of ALTS handshake requests and responses.
- *
- * All APIs in the header are thread-compatible. A typical usage of this API at
- * the client side is as follows:
- *
- * -----------------------------------------------------------------------------
- * // Create, populate, and serialize an ALTS client_start handshake request to
- * // send to the server.
- * grpc_gcp_handshaker_req* req =
- * grpc_gcp_handshaker_req_create(CLIENT_START_REQ);
- * grpc_gcp_handshaker_req_set_handshake_protocol(
- req, grpc_gcp_HandshakeProtocol_ALTS);
- * grpc_gcp_handshaker_req_add_application_protocol(req, "grpc");
- * grpc_gcp_handshaker_req_add_record_protocol(req, "ALTSRP_GCM_AES128");
- * grpc_slice client_slice;
- * if (!grpc_gcp_handshaker_req_encode(req, &client_slice)) {
- * fprintf(stderr, "ALTS handshake request encoding failed.";
- * }
- *
- * // De-serialize a data stream received from the server, and store the result
- * // at ALTS handshake response.
- * grpc_gcp_handshaker_resp* resp = grpc_gcp_handshaker_resp_create();
- * if (!grpc_gcp_handshaker_resp_decode(server_slice, resp)) {
- * fprintf(stderr, "ALTS handshake response decoding failed.");
- * }
- * // To access a variable-length datatype field (i.e., pb_callback_t),
- * // access its "arg" subfield (if it has been set).
- * if (resp->out_frames.arg != nullptr) {
- * grpc_slice* slice = resp->out_frames.arg;
- * }
- * // To access a fixed-length datatype field (i.e., not pb_calback_t),
- * // access the field directly (if it has been set).
- * if (resp->has_status && resp->status->has_code) {
- * uint32_t code = resp->status->code;
- * }
- *------------------------------------------------------------------------------
- */
-
-/**
- * This method creates an ALTS handshake request.
- *
- * - type: an enum type value that can be either CLIENT_START_REQ,
- * SERVER_START_REQ, or NEXT_REQ to indicate the created instance will be
- * client_start, server_start, and next handshake request message
- * respectively.
- *
- * The method returns a pointer to the created instance.
- */
-grpc_gcp_handshaker_req* grpc_gcp_handshaker_req_create(
- grpc_gcp_handshaker_req_type type);
-
-/**
- * This method sets the value for handshake_security_protocol field of ALTS
- * client_start handshake request.
- *
- * - req: an ALTS handshake request.
- * - handshake_protocol: a enum type value representing the handshake security
- * protocol.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_set_handshake_protocol(
- grpc_gcp_handshaker_req* req,
- grpc_gcp_handshake_protocol handshake_protocol);
-
-/**
- * This method sets the value for target_name field of ALTS client_start
- * handshake request.
- *
- * - req: an ALTS handshake request.
- * - target_name: a target name to be set.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_set_target_name(grpc_gcp_handshaker_req* req,
- const char* target_name);
-
-/**
- * This method adds an application protocol supported by the server (or
- * client) to ALTS server_start (or client_start) handshake request.
- *
- * - req: an ALTS handshake request.
- * - application_protocol: an application protocol (e.g., grpc) to be added.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_add_application_protocol(
- grpc_gcp_handshaker_req* req, const char* application_protocol);
-
-/**
- * This method adds a record protocol supported by the client to ALTS
- * client_start handshake request.
- *
- * - req: an ALTS handshake request.
- * - record_protocol: a record protocol (e.g., ALTSRP_GCM_AES128) to be
- * added.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_add_record_protocol(grpc_gcp_handshaker_req* req,
- const char* record_protocol);
-
-/**
- * This method adds a target server identity represented as hostname and
- * acceptable by a client to ALTS client_start handshake request.
- *
- * - req: an ALTS handshake request.
- * - hostname: a string representation of hostname at the connection
- * endpoint to be added.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_add_target_identity_hostname(
- grpc_gcp_handshaker_req* req, const char* hostname);
-
-/**
- * This method adds a target server identity represented as service account and
- * acceptable by a client to ALTS client_start handshake request.
- *
- * - req: an ALTS handshake request.
- * - service_account: a string representation of service account at the
- * connection endpoint to be added.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_add_target_identity_service_account(
- grpc_gcp_handshaker_req* req, const char* service_account);
-
-/**
- * This method sets the hostname for local_identity field of ALTS client_start
- * handshake request.
- *
- * - req: an ALTS handshake request.
- * - hostname: a string representation of hostname.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_set_local_identity_hostname(
- grpc_gcp_handshaker_req* req, const char* hostname);
-
-/**
- * This method sets the service account for local_identity field of ALTS
- * client_start handshake request.
- *
- * - req: an ALTS handshake request.
- * - service_account: a string representation of service account.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_set_local_identity_service_account(
- grpc_gcp_handshaker_req* req, const char* service_account);
-
-/**
- * This method sets the value for local_endpoint field of either ALTS
- * client_start or server_start handshake request.
- *
- * - req: an ALTS handshake request.
- * - ip_address: a string representation of ip address associated with the
- * local endpoint, that could be either IPv4 or IPv6.
- * - port: a port number associated with the local endpoint.
- * - protocol: a network protocol (e.g., TCP or UDP) associated with the
- * local endpoint.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_set_local_endpoint(
- grpc_gcp_handshaker_req* req, const char* ip_address, size_t port,
- grpc_gcp_network_protocol protocol);
-
-/**
- * This method sets the value for remote_endpoint field of either ALTS
- * client_start or server_start handshake request.
- *
- * - req: an ALTS handshake request.
- * - ip_address: a string representation of ip address associated with the
- * remote endpoint, that could be either IPv4 or IPv6.
- * - port: a port number associated with the remote endpoint.
- * - protocol: a network protocol (e.g., TCP or UDP) associated with the
- * remote endpoint.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_set_remote_endpoint(
- grpc_gcp_handshaker_req* req, const char* ip_address, size_t port,
- grpc_gcp_network_protocol protocol);
-
-/**
- * This method sets the value for in_bytes field of either ALTS server_start or
- * next handshake request.
- *
- * - req: an ALTS handshake request.
- * - in_bytes: a buffer containing bytes taken from out_frames of the peer's
- * ALTS handshake response. It is possible that the peer's out_frames are
- * split into multiple handshake request messages.
- * - size: size of in_bytes buffer.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_set_in_bytes(grpc_gcp_handshaker_req* req,
- const char* in_bytes, size_t size);
-
-/**
- * This method adds a record protocol to handshake parameters mapped by the
- * handshake protocol for ALTS server_start handshake request.
- *
- * - req: an ALTS handshake request.
- * - key: an enum type value representing a handshake security protocol.
- * - record_protocol: a record protocol to be added.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_param_add_record_protocol(
- grpc_gcp_handshaker_req* req, grpc_gcp_handshake_protocol key,
- const char* record_protocol);
-
-/**
- * This method adds a local identity represented as hostname to handshake
- * parameters mapped by the handshake protocol for ALTS server_start handshake
- * request.
- *
- * - req: an ALTS handshake request.
- * - key: an enum type value representing a handshake security protocol.
- * - hostname: a string representation of hostname to be added.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_param_add_local_identity_hostname(
- grpc_gcp_handshaker_req* req, grpc_gcp_handshake_protocol key,
- const char* hostname);
-
-/**
- * This method adds a local identity represented as service account to handshake
- * parameters mapped by the handshake protocol for ALTS server_start handshake
- * request.
- *
- * - req: an ALTS handshake request.
- * - key: an enum type value representing a handshake security protocol.
- * - service_account: a string representation of service account to be added.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_param_add_local_identity_service_account(
- grpc_gcp_handshaker_req* req, grpc_gcp_handshake_protocol key,
- const char* service_account);
-
-/**
- * This method sets the value for rpc_versions field of either ALTS
- * client_start or server_start handshake request.
- *
- * - req: an ALTS handshake request.
- * - max_major: a major version of maximum supported RPC version.
- * - max_minor: a minor version of maximum supported RPC version.
- * - min_major: a major version of minimum supported RPC version.
- * - min_minor: a minor version of minimum supported RPC version.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_set_rpc_versions(grpc_gcp_handshaker_req* req,
- uint32_t max_major,
- uint32_t max_minor,
- uint32_t min_major,
- uint32_t min_minor);
-
-/**
- * This method serializes an ALTS handshake request and returns a data stream.
- *
- * - req: an ALTS handshake request.
- * - slice: a data stream where the serialized result will be written.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_req_encode(grpc_gcp_handshaker_req* req,
- grpc_slice* slice);
-
-/* This method destroys an ALTS handshake request. */
-void grpc_gcp_handshaker_req_destroy(grpc_gcp_handshaker_req* req);
-
-/* This method creates an ALTS handshake response. */
-grpc_gcp_handshaker_resp* grpc_gcp_handshaker_resp_create(void);
-
-/**
- * This method de-serializes a data stream and stores the result
- * in an ALTS handshake response.
- *
- * - slice: a data stream containing a serialized ALTS handshake response.
- * - resp: an ALTS handshake response used to hold de-serialized result.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_handshaker_resp_decode(grpc_slice slice,
- grpc_gcp_handshaker_resp* resp);
-
-/* This method destroys an ALTS handshake response. */
-void grpc_gcp_handshaker_resp_destroy(grpc_gcp_handshaker_resp* resp);
-
-#endif /* GRPC_CORE_TSI_ALTS_HANDSHAKER_ALTS_HANDSHAKER_SERVICE_API_H */
diff --git a/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc b/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc
deleted file mode 100644
index d63d353..0000000
--- a/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- *
- * 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 <grpc/support/port_platform.h>
-
-#include "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h"
-
-#include "src/core/lib/slice/slice_internal.h"
-
-void add_repeated_field(repeated_field** head, const void* data) {
- repeated_field* field =
- static_cast<repeated_field*>(gpr_zalloc(sizeof(*field)));
- field->data = data;
- if (*head == nullptr) {
- *head = field;
- (*head)->next = nullptr;
- } else {
- field->next = *head;
- *head = field;
- }
-}
-
-void destroy_repeated_field_list_identity(repeated_field* head) {
- repeated_field* field = head;
- while (field != nullptr) {
- repeated_field* next_field = field->next;
- const grpc_gcp_identity* identity =
- static_cast<const grpc_gcp_identity*>(field->data);
- destroy_slice(static_cast<grpc_slice*>(identity->hostname.arg));
- destroy_slice(static_cast<grpc_slice*>(identity->service_account.arg));
- gpr_free((void*)identity);
- gpr_free(field);
- field = next_field;
- }
-}
-
-void destroy_repeated_field_list_string(repeated_field* head) {
- repeated_field* field = head;
- while (field != nullptr) {
- repeated_field* next_field = field->next;
- destroy_slice((grpc_slice*)field->data);
- gpr_free(field);
- field = next_field;
- }
-}
-
-grpc_slice* create_slice(const char* data, size_t size) {
- grpc_slice slice = grpc_slice_from_copied_buffer(data, size);
- grpc_slice* cb_slice =
- static_cast<grpc_slice*>(gpr_zalloc(sizeof(*cb_slice)));
- memcpy(cb_slice, &slice, sizeof(*cb_slice));
- return cb_slice;
-}
-
-void destroy_slice(grpc_slice* slice) {
- if (slice != nullptr) {
- grpc_slice_unref_internal(*slice);
- gpr_free(slice);
- }
-}
-
-bool encode_string_or_bytes_cb(pb_ostream_t* stream, const pb_field_t* field,
- void* const* arg) {
- grpc_slice* slice = static_cast<grpc_slice*>(*arg);
- if (!pb_encode_tag_for_field(stream, field)) return false;
- return pb_encode_string(stream, GRPC_SLICE_START_PTR(*slice),
- GRPC_SLICE_LENGTH(*slice));
-}
-
-bool encode_repeated_identity_cb(pb_ostream_t* stream, const pb_field_t* field,
- void* const* arg) {
- repeated_field* var = static_cast<repeated_field*>(*arg);
- while (var != nullptr) {
- if (!pb_encode_tag_for_field(stream, field)) return false;
- if (!pb_encode_submessage(stream, grpc_gcp_Identity_fields,
- (grpc_gcp_identity*)var->data))
- return false;
- var = var->next;
- }
- return true;
-}
-
-bool encode_repeated_string_cb(pb_ostream_t* stream, const pb_field_t* field,
- void* const* arg) {
- repeated_field* var = static_cast<repeated_field*>(*arg);
- while (var != nullptr) {
- if (!pb_encode_tag_for_field(stream, field)) return false;
- const grpc_slice* slice = static_cast<const grpc_slice*>(var->data);
- if (!pb_encode_string(stream, GRPC_SLICE_START_PTR(*slice),
- GRPC_SLICE_LENGTH(*slice)))
- return false;
- var = var->next;
- }
- return true;
-}
-
-bool decode_string_or_bytes_cb(pb_istream_t* stream, const pb_field_t* field,
- void** arg) {
- grpc_slice slice = grpc_slice_malloc(stream->bytes_left);
- grpc_slice* cb_slice =
- static_cast<grpc_slice*>(gpr_zalloc(sizeof(*cb_slice)));
- memcpy(cb_slice, &slice, sizeof(*cb_slice));
- if (!pb_read(stream, GRPC_SLICE_START_PTR(*cb_slice), stream->bytes_left))
- return false;
- *arg = cb_slice;
- return true;
-}
-
-bool decode_repeated_identity_cb(pb_istream_t* stream, const pb_field_t* field,
- void** arg) {
- grpc_gcp_identity* identity =
- static_cast<grpc_gcp_identity*>(gpr_zalloc(sizeof(*identity)));
- identity->hostname.funcs.decode = decode_string_or_bytes_cb;
- identity->service_account.funcs.decode = decode_string_or_bytes_cb;
- add_repeated_field(reinterpret_cast<repeated_field**>(arg), identity);
- if (!pb_decode(stream, grpc_gcp_Identity_fields, identity)) return false;
- return true;
-}
-
-bool decode_repeated_string_cb(pb_istream_t* stream, const pb_field_t* field,
- void** arg) {
- grpc_slice slice = grpc_slice_malloc(stream->bytes_left);
- grpc_slice* cb_slice =
- static_cast<grpc_slice*>(gpr_zalloc(sizeof(*cb_slice)));
- memcpy(cb_slice, &slice, sizeof(grpc_slice));
- if (!pb_read(stream, GRPC_SLICE_START_PTR(*cb_slice), stream->bytes_left))
- return false;
- add_repeated_field(reinterpret_cast<repeated_field**>(arg), cb_slice);
- return true;
-}
diff --git a/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h b/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h
deleted file mode 100644
index 966ea45..0000000
--- a/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- *
- * 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.
- *
- */
-
-#ifndef GRPC_CORE_TSI_ALTS_HANDSHAKER_ALTS_HANDSHAKER_SERVICE_API_UTIL_H
-#define GRPC_CORE_TSI_ALTS_HANDSHAKER_ALTS_HANDSHAKER_SERVICE_API_UTIL_H
-
-#include <grpc/support/port_platform.h>
-
-#include "pb_decode.h"
-#include "pb_encode.h"
-
-#include <grpc/slice.h>
-#include <grpc/slice_buffer.h>
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-
-#include "src/core/tsi/alts/handshaker/handshaker.pb.h"
-
-/**
- * An implementation of utility functions used to serialize/
- * de-serialize ALTS handshake requests/responses. All APIs in the header
- * are thread-compatible.
- */
-
-/* Renaming of message/field structs generated by nanopb compiler. */
-typedef grpc_gcp_HandshakeProtocol grpc_gcp_handshake_protocol;
-typedef grpc_gcp_NetworkProtocol grpc_gcp_network_protocol;
-typedef grpc_gcp_Identity grpc_gcp_identity;
-typedef grpc_gcp_NextHandshakeMessageReq grpc_gcp_next_handshake_message_req;
-typedef grpc_gcp_ServerHandshakeParameters grpc_gcp_server_handshake_parameters;
-typedef grpc_gcp_Endpoint grpc_gcp_endpoint;
-typedef grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry
- grpc_gcp_handshake_parameters_entry;
-typedef grpc_gcp_StartClientHandshakeReq grpc_gcp_start_client_handshake_req;
-typedef grpc_gcp_StartServerHandshakeReq grpc_gcp_start_server_handshake_req;
-typedef grpc_gcp_HandshakerReq grpc_gcp_handshaker_req;
-typedef grpc_gcp_HandshakerResult grpc_gcp_handshaker_result;
-typedef grpc_gcp_HandshakerStatus grpc_gcp_handshaker_status;
-typedef grpc_gcp_HandshakerResp grpc_gcp_handshaker_resp;
-
-typedef enum {
- CLIENT_START_REQ = 0, /* StartClientHandshakeReq. */
- SERVER_START_REQ = 1, /* StartServerHandshakeReq. */
- NEXT_REQ = 2, /* NextHandshakeMessageReq. */
-} grpc_gcp_handshaker_req_type;
-
-/**
- * A struct representing a repeated field. The struct is used to organize all
- * instances of a specific repeated field into a linked list, which then will
- * be used at encode/decode phase. For instance at the encode phase, the encode
- * function will iterate through the list, encode each field, and then output
- * the result to the stream.
- */
-typedef struct repeated_field_ {
- struct repeated_field_* next;
- const void* data;
-} repeated_field;
-
-/**
- * This method adds a repeated field to the head of repeated field list.
- *
- * - head: a head of repeated field list.
- * - field: a repeated field to be added to the list.
- */
-void add_repeated_field(repeated_field** head, const void* field);
-
-/**
- * This method destroys a repeated field list that consists of string type
- * fields.
- *
- * - head: a head of repeated field list.
- */
-void destroy_repeated_field_list_string(repeated_field* head);
-
-/**
- * This method destroys a repeated field list that consists of
- * grpc_gcp_identity type fields.
- *
- * - head: a head of repeated field list.
- */
-void destroy_repeated_field_list_identity(repeated_field* head);
-
-/**
- * This method creates a grpc_slice instance by copying a data buffer. It is
- * similar to grpc_slice_from_copied_buffer() except that it returns an instance
- * allocated from the heap.
- *
- * - data: a data buffer to be copied to grpc_slice instance.
- * - size: size of data buffer.
- */
-grpc_slice* create_slice(const char* data, size_t size);
-
-/* This method destroys a grpc_slice instance. */
-void destroy_slice(grpc_slice* slice);
-
-/**
- * The following encode/decode functions will be assigned to encode/decode
- * function pointers of pb_callback_t struct (defined in
- * //third_party/nanopb/pb.h), that represent a repeated field with a dynamic
- * length (e.g., a string type or repeated field).
- */
-
-/* This method is an encode callback function for a string or byte array. */
-bool encode_string_or_bytes_cb(pb_ostream_t* stream, const pb_field_t* field,
- void* const* arg);
-
-/**
- * This method is an encode callback function for a repeated grpc_gcp_identity
- * field.
- */
-bool encode_repeated_identity_cb(pb_ostream_t* stream, const pb_field_t* field,
- void* const* arg);
-
-/* This method is an encode callback function for a repeated string field. */
-bool encode_repeated_string_cb(pb_ostream_t* stream, const pb_field_t* field,
- void* const* arg);
-
-/**
- * This method is a decode callback function for a string or byte array field.
- */
-bool decode_string_or_bytes_cb(pb_istream_t* stream, const pb_field_t* field,
- void** arg);
-/**
- * This method is a decode callback function for a repeated grpc_gcp_identity
- * field.
- */
-bool decode_repeated_identity_cb(pb_istream_t* stream, const pb_field_t* field,
- void** arg);
-
-/* This method is a decode callback function for a repeated string field. */
-bool decode_repeated_string_cb(pb_istream_t* stream, const pb_field_t* field,
- void** arg);
-
-#endif /* GRPC_CORE_TSI_ALTS_HANDSHAKER_ALTS_HANDSHAKER_SERVICE_API_UTIL_H */
diff --git a/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc b/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc
index 0d28303..917d375 100644
--- a/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc
+++ b/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc
@@ -192,38 +192,49 @@
handshaker_result_create_frame_protector,
handshaker_result_get_unused_bytes, handshaker_result_destroy};
-tsi_result alts_tsi_handshaker_result_create(grpc_gcp_handshaker_resp* resp,
+tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
bool is_client,
tsi_handshaker_result** self) {
if (self == nullptr || resp == nullptr) {
gpr_log(GPR_ERROR, "Invalid arguments to create_handshaker_result()");
return TSI_INVALID_ARGUMENT;
}
- grpc_slice* key = static_cast<grpc_slice*>(resp->result.key_data.arg);
- GPR_ASSERT(key != nullptr);
- grpc_slice* identity =
- static_cast<grpc_slice*>(resp->result.peer_identity.service_account.arg);
+ const grpc_gcp_HandshakerResult* hresult =
+ grpc_gcp_HandshakerResp_result(resp);
+ const grpc_gcp_Identity* identity =
+ grpc_gcp_HandshakerResult_peer_identity(hresult);
if (identity == nullptr) {
+ gpr_log(GPR_ERROR, "Invalid identity");
+ return TSI_FAILED_PRECONDITION;
+ }
+ upb_strview service_account = grpc_gcp_Identity_service_account(identity);
+ if (service_account.size == 0) {
gpr_log(GPR_ERROR, "Invalid service account");
return TSI_FAILED_PRECONDITION;
}
- if (GRPC_SLICE_LENGTH(*key) < kAltsAes128GcmRekeyKeyLength) {
+ upb_strview key_data = grpc_gcp_HandshakerResult_key_data(hresult);
+ if (key_data.size < kAltsAes128GcmRekeyKeyLength) {
gpr_log(GPR_ERROR, "Bad key length");
return TSI_FAILED_PRECONDITION;
}
+ const grpc_gcp_RpcProtocolVersions* peer_rpc_version =
+ grpc_gcp_HandshakerResult_peer_rpc_versions(hresult);
+ if (peer_rpc_version == nullptr) {
+ gpr_log(GPR_ERROR, "Peer does not set RPC protocol versions.");
+ return TSI_FAILED_PRECONDITION;
+ }
alts_tsi_handshaker_result* result =
static_cast<alts_tsi_handshaker_result*>(gpr_zalloc(sizeof(*result)));
result->key_data =
static_cast<char*>(gpr_zalloc(kAltsAes128GcmRekeyKeyLength));
- memcpy(result->key_data, GRPC_SLICE_START_PTR(*key),
- kAltsAes128GcmRekeyKeyLength);
- result->peer_identity = grpc_slice_to_c_string(*identity);
- if (!resp->result.has_peer_rpc_versions) {
- gpr_log(GPR_ERROR, "Peer does not set RPC protocol versions.");
- return TSI_FAILED_PRECONDITION;
- }
- if (!grpc_gcp_rpc_protocol_versions_encode(&resp->result.peer_rpc_versions,
- &result->rpc_versions)) {
+ memcpy(result->key_data, key_data.data, kAltsAes128GcmRekeyKeyLength);
+ result->peer_identity =
+ static_cast<char*>(gpr_zalloc(service_account.size + 1));
+ memcpy(result->peer_identity, service_account.data, service_account.size);
+ upb::Arena arena;
+ bool serialized = grpc_gcp_rpc_protocol_versions_encode(
+ peer_rpc_version, arena.ptr(), &result->rpc_versions);
+ if (!serialized) {
gpr_log(GPR_ERROR, "Failed to serialize peer's RPC protocol versions.");
return TSI_FAILED_PRECONDITION;
}
diff --git a/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h b/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h
index 32f94bc..6be45d7 100644
--- a/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h
+++ b/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h
@@ -26,9 +26,9 @@
#include "src/core/lib/iomgr/pollset_set.h"
#include "src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h"
#include "src/core/tsi/alts/handshaker/alts_handshaker_client.h"
-#include "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h"
#include "src/core/tsi/transport_security.h"
#include "src/core/tsi/transport_security_interface.h"
+#include "src/proto/grpc/gcp/handshaker.upb.h"
#define TSI_ALTS_SERVICE_ACCOUNT_PEER_PROPERTY "service_accont"
#define TSI_ALTS_CERTIFICATE_TYPE "ALTS"
@@ -70,7 +70,7 @@
* client or not.
* - result: address of ALTS TSI handshaker result instance.
*/
-tsi_result alts_tsi_handshaker_result_create(grpc_gcp_handshaker_resp* resp,
+tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
bool is_client,
tsi_handshaker_result** result);
diff --git a/src/core/tsi/alts/handshaker/alts_tsi_utils.cc b/src/core/tsi/alts/handshaker/alts_tsi_utils.cc
index 1747f1a..f80498d 100644
--- a/src/core/tsi/alts/handshaker/alts_tsi_utils.cc
+++ b/src/core/tsi/alts/handshaker/alts_tsi_utils.cc
@@ -41,18 +41,22 @@
}
}
-grpc_gcp_handshaker_resp* alts_tsi_utils_deserialize_response(
- grpc_byte_buffer* resp_buffer) {
+grpc_gcp_HandshakerResp* alts_tsi_utils_deserialize_response(
+ grpc_byte_buffer* resp_buffer, upb_arena* arena) {
GPR_ASSERT(resp_buffer != nullptr);
+ GPR_ASSERT(arena != nullptr);
grpc_byte_buffer_reader bbr;
grpc_byte_buffer_reader_init(&bbr, resp_buffer);
grpc_slice slice = grpc_byte_buffer_reader_readall(&bbr);
- grpc_gcp_handshaker_resp* resp = grpc_gcp_handshaker_resp_create();
- bool ok = grpc_gcp_handshaker_resp_decode(slice, resp);
+ size_t buf_size = GPR_SLICE_LENGTH(slice);
+ void* buf = upb_arena_malloc(arena, buf_size);
+ memcpy(buf, reinterpret_cast<const char*>(GPR_SLICE_START_PTR(slice)),
+ buf_size);
+ grpc_gcp_HandshakerResp* resp = grpc_gcp_HandshakerResp_parse(
+ reinterpret_cast<char*>(buf), buf_size, arena);
grpc_slice_unref_internal(slice);
grpc_byte_buffer_reader_destroy(&bbr);
- if (!ok) {
- grpc_gcp_handshaker_resp_destroy(resp);
+ if (resp == nullptr) {
gpr_log(GPR_ERROR, "grpc_gcp_handshaker_resp_decode() failed");
return nullptr;
}
diff --git a/src/core/tsi/alts/handshaker/alts_tsi_utils.h b/src/core/tsi/alts/handshaker/alts_tsi_utils.h
index 9ef649d..a20e5e9 100644
--- a/src/core/tsi/alts/handshaker/alts_tsi_utils.h
+++ b/src/core/tsi/alts/handshaker/alts_tsi_utils.h
@@ -24,8 +24,8 @@
#include <grpc/byte_buffer.h>
#include <grpc/grpc.h>
-#include "src/core/tsi/alts/handshaker/alts_handshaker_service_api.h"
#include "src/core/tsi/transport_security_interface.h"
+#include "src/proto/grpc/gcp/handshaker.upb.h"
/**
* This method converts grpc_status_code code to the corresponding tsi_result
@@ -42,11 +42,12 @@
* service.
*
* - bytes_received: data returned from ALTS handshaker service.
+ * - arena: upb arena.
*
* It returns a deserialized handshaker response on success and nullptr on
* failure.
*/
-grpc_gcp_handshaker_resp* alts_tsi_utils_deserialize_response(
- grpc_byte_buffer* resp_buffer);
+grpc_gcp_HandshakerResp* alts_tsi_utils_deserialize_response(
+ grpc_byte_buffer* resp_buffer, upb_arena* arena);
#endif /* GRPC_CORE_TSI_ALTS_HANDSHAKER_ALTS_TSI_UTILS_H */
diff --git a/src/core/tsi/alts/handshaker/altscontext.pb.c b/src/core/tsi/alts/handshaker/altscontext.pb.c
deleted file mode 100644
index 5fb152a..0000000
--- a/src/core/tsi/alts/handshaker/altscontext.pb.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Automatically generated nanopb constant definitions */
-/* Generated by nanopb-0.3.7-dev */
-
-#include "src/core/tsi/alts/handshaker/altscontext.pb.h"
-/* @@protoc_insertion_point(includes) */
-#if PB_PROTO_HEADER_VERSION != 30
-#error Regenerate this file with the current version of nanopb generator.
-#endif
-
-
-
-const pb_field_t grpc_gcp_AltsContext_fields[7] = {
- PB_FIELD( 1, STRING , OPTIONAL, CALLBACK, FIRST, grpc_gcp_AltsContext, application_protocol, application_protocol, 0),
- PB_FIELD( 2, STRING , OPTIONAL, CALLBACK, OTHER, grpc_gcp_AltsContext, record_protocol, application_protocol, 0),
- PB_FIELD( 3, UENUM , OPTIONAL, STATIC , OTHER, grpc_gcp_AltsContext, security_level, record_protocol, 0),
- PB_FIELD( 4, STRING , OPTIONAL, CALLBACK, OTHER, grpc_gcp_AltsContext, peer_service_account, security_level, 0),
- PB_FIELD( 5, STRING , OPTIONAL, CALLBACK, OTHER, grpc_gcp_AltsContext, local_service_account, peer_service_account, 0),
- PB_FIELD( 6, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_AltsContext, peer_rpc_versions, local_service_account, &grpc_gcp_RpcProtocolVersions_fields),
- PB_LAST_FIELD
-};
-
-
-/* Check that field information fits in pb_field_t */
-#if !defined(PB_FIELD_32BIT)
-/* If you get an error here, it means that you need to define PB_FIELD_32BIT
- * compile-time option. You can do that in pb.h or on compiler command line.
- *
- * The reason you need to do this is that some of your messages contain tag
- * numbers or field sizes that are larger than what can fit in 8 or 16 bit
- * field descriptors.
- */
-PB_STATIC_ASSERT((pb_membersize(grpc_gcp_AltsContext, peer_rpc_versions) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_grpc_gcp_AltsContext)
-#endif
-
-#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
-/* If you get an error here, it means that you need to define PB_FIELD_16BIT
- * compile-time option. You can do that in pb.h or on compiler command line.
- *
- * The reason you need to do this is that some of your messages contain tag
- * numbers or field sizes that are larger than what can fit in the default
- * 8 bit descriptors.
- */
-PB_STATIC_ASSERT((pb_membersize(grpc_gcp_AltsContext, peer_rpc_versions) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_grpc_gcp_AltsContext)
-#endif
-
-
-/* @@protoc_insertion_point(eof) */
diff --git a/src/core/tsi/alts/handshaker/altscontext.pb.h b/src/core/tsi/alts/handshaker/altscontext.pb.h
deleted file mode 100644
index 632b20c..0000000
--- a/src/core/tsi/alts/handshaker/altscontext.pb.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Automatically generated nanopb header */
-/* Generated by nanopb-0.3.7-dev */
-
-#ifndef PB_GRPC_GCP_ALTSCONTEXT_PB_H_INCLUDED
-#define PB_GRPC_GCP_ALTSCONTEXT_PB_H_INCLUDED
-#include "pb.h"
-#include "src/core/tsi/alts/handshaker/transport_security_common.pb.h"
-/* @@protoc_insertion_point(includes) */
-#if PB_PROTO_HEADER_VERSION != 30
-#error Regenerate this file with the current version of nanopb generator.
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Struct definitions */
-typedef struct _grpc_gcp_AltsContext {
- pb_callback_t application_protocol;
- pb_callback_t record_protocol;
- bool has_security_level;
- grpc_gcp_SecurityLevel security_level;
- pb_callback_t peer_service_account;
- pb_callback_t local_service_account;
- bool has_peer_rpc_versions;
- grpc_gcp_RpcProtocolVersions peer_rpc_versions;
-/* @@protoc_insertion_point(struct:grpc_gcp_AltsContext) */
-} grpc_gcp_AltsContext;
-
-/* Default values for struct fields */
-
-/* Initializer values for message structs */
-#define grpc_gcp_AltsContext_init_default {{{NULL}, NULL}, {{NULL}, NULL}, false, (grpc_gcp_SecurityLevel)0, {{NULL}, NULL}, {{NULL}, NULL}, false, grpc_gcp_RpcProtocolVersions_init_default}
-#define grpc_gcp_AltsContext_init_zero {{{NULL}, NULL}, {{NULL}, NULL}, false, (grpc_gcp_SecurityLevel)0, {{NULL}, NULL}, {{NULL}, NULL}, false, grpc_gcp_RpcProtocolVersions_init_zero}
-
-/* Field tags (for use in manual encoding/decoding) */
-#define grpc_gcp_AltsContext_application_protocol_tag 1
-#define grpc_gcp_AltsContext_record_protocol_tag 2
-#define grpc_gcp_AltsContext_security_level_tag 3
-#define grpc_gcp_AltsContext_peer_service_account_tag 4
-#define grpc_gcp_AltsContext_local_service_account_tag 5
-#define grpc_gcp_AltsContext_peer_rpc_versions_tag 6
-
-/* Struct field encoding specification for nanopb */
-extern const pb_field_t grpc_gcp_AltsContext_fields[7];
-
-/* Maximum encoded size of messages (where known) */
-/* grpc_gcp_AltsContext_size depends on runtime parameters */
-
-/* Message IDs (where set with "msgid" option) */
-#ifdef PB_MSGID
-
-#define ALTSCONTEXT_MESSAGES \
-
-
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-/* @@protoc_insertion_point(eof) */
-
-#endif
diff --git a/src/core/tsi/alts/handshaker/handshaker.pb.c b/src/core/tsi/alts/handshaker/handshaker.pb.c
deleted file mode 100644
index 5450b16..0000000
--- a/src/core/tsi/alts/handshaker/handshaker.pb.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Automatically generated nanopb constant definitions */
-/* Generated by nanopb-0.3.7-dev */
-
-#include "src/core/tsi/alts/handshaker/handshaker.pb.h"
-/* @@protoc_insertion_point(includes) */
-#if PB_PROTO_HEADER_VERSION != 30
-#error Regenerate this file with the current version of nanopb generator.
-#endif
-
-
-
-const pb_field_t grpc_gcp_Endpoint_fields[4] = {
- PB_FIELD( 1, STRING , OPTIONAL, CALLBACK, FIRST, grpc_gcp_Endpoint, ip_address, ip_address, 0),
- PB_FIELD( 2, INT32 , OPTIONAL, STATIC , OTHER, grpc_gcp_Endpoint, port, ip_address, 0),
- PB_FIELD( 3, UENUM , OPTIONAL, STATIC , OTHER, grpc_gcp_Endpoint, protocol, port, 0),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_Identity_fields[3] = {
- PB_FIELD( 1, STRING , OPTIONAL, CALLBACK, FIRST, grpc_gcp_Identity, service_account, service_account, 0),
- PB_FIELD( 2, STRING , OPTIONAL, CALLBACK, OTHER, grpc_gcp_Identity, hostname, service_account, 0),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_StartClientHandshakeReq_fields[10] = {
- PB_FIELD( 1, UENUM , OPTIONAL, STATIC , FIRST, grpc_gcp_StartClientHandshakeReq, handshake_security_protocol, handshake_security_protocol, 0),
- PB_FIELD( 2, STRING , REPEATED, CALLBACK, OTHER, grpc_gcp_StartClientHandshakeReq, application_protocols, handshake_security_protocol, 0),
- PB_FIELD( 3, STRING , REPEATED, CALLBACK, OTHER, grpc_gcp_StartClientHandshakeReq, record_protocols, application_protocols, 0),
- PB_FIELD( 4, MESSAGE , REPEATED, CALLBACK, OTHER, grpc_gcp_StartClientHandshakeReq, target_identities, record_protocols, &grpc_gcp_Identity_fields),
- PB_FIELD( 5, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_StartClientHandshakeReq, local_identity, target_identities, &grpc_gcp_Identity_fields),
- PB_FIELD( 6, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_StartClientHandshakeReq, local_endpoint, local_identity, &grpc_gcp_Endpoint_fields),
- PB_FIELD( 7, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_StartClientHandshakeReq, remote_endpoint, local_endpoint, &grpc_gcp_Endpoint_fields),
- PB_FIELD( 8, STRING , OPTIONAL, CALLBACK, OTHER, grpc_gcp_StartClientHandshakeReq, target_name, remote_endpoint, 0),
- PB_FIELD( 9, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_StartClientHandshakeReq, rpc_versions, target_name, &grpc_gcp_RpcProtocolVersions_fields),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_ServerHandshakeParameters_fields[3] = {
- PB_FIELD( 1, STRING , REPEATED, CALLBACK, FIRST, grpc_gcp_ServerHandshakeParameters, record_protocols, record_protocols, 0),
- PB_FIELD( 2, MESSAGE , REPEATED, CALLBACK, OTHER, grpc_gcp_ServerHandshakeParameters, local_identities, record_protocols, &grpc_gcp_Identity_fields),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_StartServerHandshakeReq_fields[7] = {
- PB_FIELD( 1, STRING , REPEATED, CALLBACK, FIRST, grpc_gcp_StartServerHandshakeReq, application_protocols, application_protocols, 0),
- PB_FIELD( 2, MESSAGE , REPEATED, STATIC , OTHER, grpc_gcp_StartServerHandshakeReq, handshake_parameters, application_protocols, &grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_fields),
- PB_FIELD( 3, BYTES , OPTIONAL, CALLBACK, OTHER, grpc_gcp_StartServerHandshakeReq, in_bytes, handshake_parameters, 0),
- PB_FIELD( 4, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_StartServerHandshakeReq, local_endpoint, in_bytes, &grpc_gcp_Endpoint_fields),
- PB_FIELD( 5, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_StartServerHandshakeReq, remote_endpoint, local_endpoint, &grpc_gcp_Endpoint_fields),
- PB_FIELD( 6, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_StartServerHandshakeReq, rpc_versions, remote_endpoint, &grpc_gcp_RpcProtocolVersions_fields),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_fields[3] = {
- PB_FIELD( 1, INT32 , OPTIONAL, STATIC , FIRST, grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry, key, key, 0),
- PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry, value, key, &grpc_gcp_ServerHandshakeParameters_fields),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_NextHandshakeMessageReq_fields[2] = {
- PB_FIELD( 1, BYTES , OPTIONAL, CALLBACK, FIRST, grpc_gcp_NextHandshakeMessageReq, in_bytes, in_bytes, 0),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_HandshakerReq_fields[4] = {
- PB_FIELD( 1, MESSAGE , OPTIONAL, STATIC , FIRST, grpc_gcp_HandshakerReq, client_start, client_start, &grpc_gcp_StartClientHandshakeReq_fields),
- PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_HandshakerReq, server_start, client_start, &grpc_gcp_StartServerHandshakeReq_fields),
- PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_HandshakerReq, next, server_start, &grpc_gcp_NextHandshakeMessageReq_fields),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_HandshakerResult_fields[8] = {
- PB_FIELD( 1, STRING , OPTIONAL, CALLBACK, FIRST, grpc_gcp_HandshakerResult, application_protocol, application_protocol, 0),
- PB_FIELD( 2, STRING , OPTIONAL, CALLBACK, OTHER, grpc_gcp_HandshakerResult, record_protocol, application_protocol, 0),
- PB_FIELD( 3, BYTES , OPTIONAL, CALLBACK, OTHER, grpc_gcp_HandshakerResult, key_data, record_protocol, 0),
- PB_FIELD( 4, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_HandshakerResult, peer_identity, key_data, &grpc_gcp_Identity_fields),
- PB_FIELD( 5, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_HandshakerResult, local_identity, peer_identity, &grpc_gcp_Identity_fields),
- PB_FIELD( 6, BOOL , OPTIONAL, STATIC , OTHER, grpc_gcp_HandshakerResult, keep_channel_open, local_identity, 0),
- PB_FIELD( 7, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_HandshakerResult, peer_rpc_versions, keep_channel_open, &grpc_gcp_RpcProtocolVersions_fields),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_HandshakerStatus_fields[3] = {
- PB_FIELD( 1, UINT32 , OPTIONAL, STATIC , FIRST, grpc_gcp_HandshakerStatus, code, code, 0),
- PB_FIELD( 2, STRING , OPTIONAL, CALLBACK, OTHER, grpc_gcp_HandshakerStatus, details, code, 0),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_HandshakerResp_fields[5] = {
- PB_FIELD( 1, BYTES , OPTIONAL, CALLBACK, FIRST, grpc_gcp_HandshakerResp, out_frames, out_frames, 0),
- PB_FIELD( 2, UINT32 , OPTIONAL, STATIC , OTHER, grpc_gcp_HandshakerResp, bytes_consumed, out_frames, 0),
- PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_HandshakerResp, result, bytes_consumed, &grpc_gcp_HandshakerResult_fields),
- PB_FIELD( 4, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_HandshakerResp, status, result, &grpc_gcp_HandshakerStatus_fields),
- PB_LAST_FIELD
-};
-
-
-/* Check that field information fits in pb_field_t */
-#if !defined(PB_FIELD_32BIT)
-/* If you get an error here, it means that you need to define PB_FIELD_32BIT
- * compile-time option. You can do that in pb.h or on compiler command line.
- *
- * The reason you need to do this is that some of your messages contain tag
- * numbers or field sizes that are larger than what can fit in 8 or 16 bit
- * field descriptors.
- */
-PB_STATIC_ASSERT((pb_membersize(grpc_gcp_StartClientHandshakeReq, target_identities) < 65536 && pb_membersize(grpc_gcp_StartClientHandshakeReq, local_identity) < 65536 && pb_membersize(grpc_gcp_StartClientHandshakeReq, local_endpoint) < 65536 && pb_membersize(grpc_gcp_StartClientHandshakeReq, remote_endpoint) < 65536 && pb_membersize(grpc_gcp_StartClientHandshakeReq, rpc_versions) < 65536 && pb_membersize(grpc_gcp_ServerHandshakeParameters, local_identities) < 65536 && pb_membersize(grpc_gcp_StartServerHandshakeReq, handshake_parameters[0]) < 65536 && pb_membersize(grpc_gcp_StartServerHandshakeReq, local_endpoint) < 65536 && pb_membersize(grpc_gcp_StartServerHandshakeReq, remote_endpoint) < 65536 && pb_membersize(grpc_gcp_StartServerHandshakeReq, rpc_versions) < 65536 && pb_membersize(grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry, value) < 65536 && pb_membersize(grpc_gcp_HandshakerReq, client_start) < 65536 && pb_membersize(grpc_gcp_HandshakerReq, server_start) < 65536 && pb_membersize(grpc_gcp_HandshakerReq, next) < 65536 && pb_membersize(grpc_gcp_HandshakerResult, peer_identity) < 65536 && pb_membersize(grpc_gcp_HandshakerResult, local_identity) < 65536 && pb_membersize(grpc_gcp_HandshakerResult, peer_rpc_versions) < 65536 && pb_membersize(grpc_gcp_HandshakerResp, result) < 65536 && pb_membersize(grpc_gcp_HandshakerResp, status) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_grpc_gcp_Endpoint_grpc_gcp_Identity_grpc_gcp_StartClientHandshakeReq_grpc_gcp_ServerHandshakeParameters_grpc_gcp_StartServerHandshakeReq_grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_grpc_gcp_NextHandshakeMessageReq_grpc_gcp_HandshakerReq_grpc_gcp_HandshakerResult_grpc_gcp_HandshakerStatus_grpc_gcp_HandshakerResp)
-#endif
-
-#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
-/* If you get an error here, it means that you need to define PB_FIELD_16BIT
- * compile-time option. You can do that in pb.h or on compiler command line.
- *
- * The reason you need to do this is that some of your messages contain tag
- * numbers or field sizes that are larger than what can fit in the default
- * 8 bit descriptors.
- */
-PB_STATIC_ASSERT((pb_membersize(grpc_gcp_StartClientHandshakeReq, target_identities) < 256 && pb_membersize(grpc_gcp_StartClientHandshakeReq, local_identity) < 256 && pb_membersize(grpc_gcp_StartClientHandshakeReq, local_endpoint) < 256 && pb_membersize(grpc_gcp_StartClientHandshakeReq, remote_endpoint) < 256 && pb_membersize(grpc_gcp_StartClientHandshakeReq, rpc_versions) < 256 && pb_membersize(grpc_gcp_ServerHandshakeParameters, local_identities) < 256 && pb_membersize(grpc_gcp_StartServerHandshakeReq, handshake_parameters[0]) < 256 && pb_membersize(grpc_gcp_StartServerHandshakeReq, local_endpoint) < 256 && pb_membersize(grpc_gcp_StartServerHandshakeReq, remote_endpoint) < 256 && pb_membersize(grpc_gcp_StartServerHandshakeReq, rpc_versions) < 256 && pb_membersize(grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry, value) < 256 && pb_membersize(grpc_gcp_HandshakerReq, client_start) < 256 && pb_membersize(grpc_gcp_HandshakerReq, server_start) < 256 && pb_membersize(grpc_gcp_HandshakerReq, next) < 256 && pb_membersize(grpc_gcp_HandshakerResult, peer_identity) < 256 && pb_membersize(grpc_gcp_HandshakerResult, local_identity) < 256 && pb_membersize(grpc_gcp_HandshakerResult, peer_rpc_versions) < 256 && pb_membersize(grpc_gcp_HandshakerResp, result) < 256 && pb_membersize(grpc_gcp_HandshakerResp, status) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_grpc_gcp_Endpoint_grpc_gcp_Identity_grpc_gcp_StartClientHandshakeReq_grpc_gcp_ServerHandshakeParameters_grpc_gcp_StartServerHandshakeReq_grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_grpc_gcp_NextHandshakeMessageReq_grpc_gcp_HandshakerReq_grpc_gcp_HandshakerResult_grpc_gcp_HandshakerStatus_grpc_gcp_HandshakerResp)
-#endif
-
-
-/* @@protoc_insertion_point(eof) */
diff --git a/src/core/tsi/alts/handshaker/handshaker.pb.h b/src/core/tsi/alts/handshaker/handshaker.pb.h
deleted file mode 100644
index 5ee42a3..0000000
--- a/src/core/tsi/alts/handshaker/handshaker.pb.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Automatically generated nanopb header */
-/* Generated by nanopb-0.3.7-dev */
-
-#ifndef PB_GRPC_GCP_HANDSHAKER_PB_H_INCLUDED
-#define PB_GRPC_GCP_HANDSHAKER_PB_H_INCLUDED
-#include "pb.h"
-#include "src/core/tsi/alts/handshaker/transport_security_common.pb.h"
-/* @@protoc_insertion_point(includes) */
-#if PB_PROTO_HEADER_VERSION != 30
-#error Regenerate this file with the current version of nanopb generator.
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Enum definitions */
-typedef enum _grpc_gcp_HandshakeProtocol {
- grpc_gcp_HandshakeProtocol_HANDSHAKE_PROTOCOL_UNSPECIFIED = 0,
- grpc_gcp_HandshakeProtocol_TLS = 1,
- grpc_gcp_HandshakeProtocol_ALTS = 2
-} grpc_gcp_HandshakeProtocol;
-#define _grpc_gcp_HandshakeProtocol_MIN grpc_gcp_HandshakeProtocol_HANDSHAKE_PROTOCOL_UNSPECIFIED
-#define _grpc_gcp_HandshakeProtocol_MAX grpc_gcp_HandshakeProtocol_ALTS
-#define _grpc_gcp_HandshakeProtocol_ARRAYSIZE ((grpc_gcp_HandshakeProtocol)(grpc_gcp_HandshakeProtocol_ALTS+1))
-
-typedef enum _grpc_gcp_NetworkProtocol {
- grpc_gcp_NetworkProtocol_NETWORK_PROTOCOL_UNSPECIFIED = 0,
- grpc_gcp_NetworkProtocol_TCP = 1,
- grpc_gcp_NetworkProtocol_UDP = 2
-} grpc_gcp_NetworkProtocol;
-#define _grpc_gcp_NetworkProtocol_MIN grpc_gcp_NetworkProtocol_NETWORK_PROTOCOL_UNSPECIFIED
-#define _grpc_gcp_NetworkProtocol_MAX grpc_gcp_NetworkProtocol_UDP
-#define _grpc_gcp_NetworkProtocol_ARRAYSIZE ((grpc_gcp_NetworkProtocol)(grpc_gcp_NetworkProtocol_UDP+1))
-
-/* Struct definitions */
-typedef struct _grpc_gcp_Identity {
- pb_callback_t service_account;
- pb_callback_t hostname;
-/* @@protoc_insertion_point(struct:grpc_gcp_Identity) */
-} grpc_gcp_Identity;
-
-typedef struct _grpc_gcp_NextHandshakeMessageReq {
- pb_callback_t in_bytes;
-/* @@protoc_insertion_point(struct:grpc_gcp_NextHandshakeMessageReq) */
-} grpc_gcp_NextHandshakeMessageReq;
-
-typedef struct _grpc_gcp_ServerHandshakeParameters {
- pb_callback_t record_protocols;
- pb_callback_t local_identities;
-/* @@protoc_insertion_point(struct:grpc_gcp_ServerHandshakeParameters) */
-} grpc_gcp_ServerHandshakeParameters;
-
-typedef struct _grpc_gcp_Endpoint {
- pb_callback_t ip_address;
- bool has_port;
- int32_t port;
- bool has_protocol;
- grpc_gcp_NetworkProtocol protocol;
-/* @@protoc_insertion_point(struct:grpc_gcp_Endpoint) */
-} grpc_gcp_Endpoint;
-
-typedef struct _grpc_gcp_HandshakerResult {
- pb_callback_t application_protocol;
- pb_callback_t record_protocol;
- pb_callback_t key_data;
- bool has_peer_identity;
- grpc_gcp_Identity peer_identity;
- bool has_local_identity;
- grpc_gcp_Identity local_identity;
- bool has_keep_channel_open;
- bool keep_channel_open;
- bool has_peer_rpc_versions;
- grpc_gcp_RpcProtocolVersions peer_rpc_versions;
-/* @@protoc_insertion_point(struct:grpc_gcp_HandshakerResult) */
-} grpc_gcp_HandshakerResult;
-
-typedef struct _grpc_gcp_HandshakerStatus {
- bool has_code;
- uint32_t code;
- pb_callback_t details;
-/* @@protoc_insertion_point(struct:grpc_gcp_HandshakerStatus) */
-} grpc_gcp_HandshakerStatus;
-
-typedef struct _grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry {
- bool has_key;
- int32_t key;
- bool has_value;
- grpc_gcp_ServerHandshakeParameters value;
-/* @@protoc_insertion_point(struct:grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry) */
-} grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry;
-
-typedef struct _grpc_gcp_HandshakerResp {
- pb_callback_t out_frames;
- bool has_bytes_consumed;
- uint32_t bytes_consumed;
- bool has_result;
- grpc_gcp_HandshakerResult result;
- bool has_status;
- grpc_gcp_HandshakerStatus status;
-/* @@protoc_insertion_point(struct:grpc_gcp_HandshakerResp) */
-} grpc_gcp_HandshakerResp;
-
-typedef struct _grpc_gcp_StartClientHandshakeReq {
- bool has_handshake_security_protocol;
- grpc_gcp_HandshakeProtocol handshake_security_protocol;
- pb_callback_t application_protocols;
- pb_callback_t record_protocols;
- pb_callback_t target_identities;
- bool has_local_identity;
- grpc_gcp_Identity local_identity;
- bool has_local_endpoint;
- grpc_gcp_Endpoint local_endpoint;
- bool has_remote_endpoint;
- grpc_gcp_Endpoint remote_endpoint;
- pb_callback_t target_name;
- bool has_rpc_versions;
- grpc_gcp_RpcProtocolVersions rpc_versions;
-/* @@protoc_insertion_point(struct:grpc_gcp_StartClientHandshakeReq) */
-} grpc_gcp_StartClientHandshakeReq;
-
-typedef struct _grpc_gcp_StartServerHandshakeReq {
- pb_callback_t application_protocols;
- pb_size_t handshake_parameters_count;
- grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry handshake_parameters[3];
- pb_callback_t in_bytes;
- bool has_local_endpoint;
- grpc_gcp_Endpoint local_endpoint;
- bool has_remote_endpoint;
- grpc_gcp_Endpoint remote_endpoint;
- bool has_rpc_versions;
- grpc_gcp_RpcProtocolVersions rpc_versions;
-/* @@protoc_insertion_point(struct:grpc_gcp_StartServerHandshakeReq) */
-} grpc_gcp_StartServerHandshakeReq;
-
-typedef struct _grpc_gcp_HandshakerReq {
- bool has_client_start;
- grpc_gcp_StartClientHandshakeReq client_start;
- bool has_server_start;
- grpc_gcp_StartServerHandshakeReq server_start;
- bool has_next;
- grpc_gcp_NextHandshakeMessageReq next;
-/* @@protoc_insertion_point(struct:grpc_gcp_HandshakerReq) */
-} grpc_gcp_HandshakerReq;
-
-/* Default values for struct fields */
-
-/* Initializer values for message structs */
-#define grpc_gcp_Endpoint_init_default {{{NULL}, NULL}, false, 0, false, (grpc_gcp_NetworkProtocol)0}
-#define grpc_gcp_Identity_init_default {{{NULL}, NULL}, {{NULL}, NULL}}
-#define grpc_gcp_StartClientHandshakeReq_init_default {false, (grpc_gcp_HandshakeProtocol)0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, grpc_gcp_Identity_init_default, false, grpc_gcp_Endpoint_init_default, false, grpc_gcp_Endpoint_init_default, {{NULL}, NULL}, false, grpc_gcp_RpcProtocolVersions_init_default}
-#define grpc_gcp_ServerHandshakeParameters_init_default {{{NULL}, NULL}, {{NULL}, NULL}}
-#define grpc_gcp_StartServerHandshakeReq_init_default {{{NULL}, NULL}, 0, {grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_init_default, grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_init_default, grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_init_default}, {{NULL}, NULL}, false, grpc_gcp_Endpoint_init_default, false, grpc_gcp_Endpoint_init_default, false, grpc_gcp_RpcProtocolVersions_init_default}
-#define grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_init_default {false, 0, false, grpc_gcp_ServerHandshakeParameters_init_default}
-#define grpc_gcp_NextHandshakeMessageReq_init_default {{{NULL}, NULL}}
-#define grpc_gcp_HandshakerReq_init_default {false, grpc_gcp_StartClientHandshakeReq_init_default, false, grpc_gcp_StartServerHandshakeReq_init_default, false, grpc_gcp_NextHandshakeMessageReq_init_default}
-#define grpc_gcp_HandshakerResult_init_default {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, grpc_gcp_Identity_init_default, false, grpc_gcp_Identity_init_default, false, 0, false, grpc_gcp_RpcProtocolVersions_init_default}
-#define grpc_gcp_HandshakerStatus_init_default {false, 0, {{NULL}, NULL}}
-#define grpc_gcp_HandshakerResp_init_default {{{NULL}, NULL}, false, 0, false, grpc_gcp_HandshakerResult_init_default, false, grpc_gcp_HandshakerStatus_init_default}
-#define grpc_gcp_Endpoint_init_zero {{{NULL}, NULL}, false, 0, false, (grpc_gcp_NetworkProtocol)0}
-#define grpc_gcp_Identity_init_zero {{{NULL}, NULL}, {{NULL}, NULL}}
-#define grpc_gcp_StartClientHandshakeReq_init_zero {false, (grpc_gcp_HandshakeProtocol)0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, grpc_gcp_Identity_init_zero, false, grpc_gcp_Endpoint_init_zero, false, grpc_gcp_Endpoint_init_zero, {{NULL}, NULL}, false, grpc_gcp_RpcProtocolVersions_init_zero}
-#define grpc_gcp_ServerHandshakeParameters_init_zero {{{NULL}, NULL}, {{NULL}, NULL}}
-#define grpc_gcp_StartServerHandshakeReq_init_zero {{{NULL}, NULL}, 0, {grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_init_zero, grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_init_zero, grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_init_zero}, {{NULL}, NULL}, false, grpc_gcp_Endpoint_init_zero, false, grpc_gcp_Endpoint_init_zero, false, grpc_gcp_RpcProtocolVersions_init_zero}
-#define grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_init_zero {false, 0, false, grpc_gcp_ServerHandshakeParameters_init_zero}
-#define grpc_gcp_NextHandshakeMessageReq_init_zero {{{NULL}, NULL}}
-#define grpc_gcp_HandshakerReq_init_zero {false, grpc_gcp_StartClientHandshakeReq_init_zero, false, grpc_gcp_StartServerHandshakeReq_init_zero, false, grpc_gcp_NextHandshakeMessageReq_init_zero}
-#define grpc_gcp_HandshakerResult_init_zero {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, grpc_gcp_Identity_init_zero, false, grpc_gcp_Identity_init_zero, false, 0, false, grpc_gcp_RpcProtocolVersions_init_zero}
-#define grpc_gcp_HandshakerStatus_init_zero {false, 0, {{NULL}, NULL}}
-#define grpc_gcp_HandshakerResp_init_zero {{{NULL}, NULL}, false, 0, false, grpc_gcp_HandshakerResult_init_zero, false, grpc_gcp_HandshakerStatus_init_zero}
-
-/* Field tags (for use in manual encoding/decoding) */
-#define grpc_gcp_Identity_service_account_tag 1
-#define grpc_gcp_Identity_hostname_tag 2
-#define grpc_gcp_NextHandshakeMessageReq_in_bytes_tag 1
-#define grpc_gcp_ServerHandshakeParameters_record_protocols_tag 1
-#define grpc_gcp_ServerHandshakeParameters_local_identities_tag 2
-#define grpc_gcp_Endpoint_ip_address_tag 1
-#define grpc_gcp_Endpoint_port_tag 2
-#define grpc_gcp_Endpoint_protocol_tag 3
-#define grpc_gcp_HandshakerResult_application_protocol_tag 1
-#define grpc_gcp_HandshakerResult_record_protocol_tag 2
-#define grpc_gcp_HandshakerResult_key_data_tag 3
-#define grpc_gcp_HandshakerResult_peer_identity_tag 4
-#define grpc_gcp_HandshakerResult_local_identity_tag 5
-#define grpc_gcp_HandshakerResult_keep_channel_open_tag 6
-#define grpc_gcp_HandshakerResult_peer_rpc_versions_tag 7
-#define grpc_gcp_HandshakerStatus_code_tag 1
-#define grpc_gcp_HandshakerStatus_details_tag 2
-#define grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_key_tag 1
-#define grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_value_tag 2
-#define grpc_gcp_HandshakerResp_out_frames_tag 1
-#define grpc_gcp_HandshakerResp_bytes_consumed_tag 2
-#define grpc_gcp_HandshakerResp_result_tag 3
-#define grpc_gcp_HandshakerResp_status_tag 4
-#define grpc_gcp_StartClientHandshakeReq_handshake_security_protocol_tag 1
-#define grpc_gcp_StartClientHandshakeReq_application_protocols_tag 2
-#define grpc_gcp_StartClientHandshakeReq_record_protocols_tag 3
-#define grpc_gcp_StartClientHandshakeReq_target_identities_tag 4
-#define grpc_gcp_StartClientHandshakeReq_local_identity_tag 5
-#define grpc_gcp_StartClientHandshakeReq_local_endpoint_tag 6
-#define grpc_gcp_StartClientHandshakeReq_remote_endpoint_tag 7
-#define grpc_gcp_StartClientHandshakeReq_target_name_tag 8
-#define grpc_gcp_StartClientHandshakeReq_rpc_versions_tag 9
-#define grpc_gcp_StartServerHandshakeReq_application_protocols_tag 1
-#define grpc_gcp_StartServerHandshakeReq_handshake_parameters_tag 2
-#define grpc_gcp_StartServerHandshakeReq_in_bytes_tag 3
-#define grpc_gcp_StartServerHandshakeReq_local_endpoint_tag 4
-#define grpc_gcp_StartServerHandshakeReq_remote_endpoint_tag 5
-#define grpc_gcp_StartServerHandshakeReq_rpc_versions_tag 6
-#define grpc_gcp_HandshakerReq_client_start_tag 1
-#define grpc_gcp_HandshakerReq_server_start_tag 2
-#define grpc_gcp_HandshakerReq_next_tag 3
-
-/* Struct field encoding specification for nanopb */
-extern const pb_field_t grpc_gcp_Endpoint_fields[4];
-extern const pb_field_t grpc_gcp_Identity_fields[3];
-extern const pb_field_t grpc_gcp_StartClientHandshakeReq_fields[10];
-extern const pb_field_t grpc_gcp_ServerHandshakeParameters_fields[3];
-extern const pb_field_t grpc_gcp_StartServerHandshakeReq_fields[7];
-extern const pb_field_t grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_fields[3];
-extern const pb_field_t grpc_gcp_NextHandshakeMessageReq_fields[2];
-extern const pb_field_t grpc_gcp_HandshakerReq_fields[4];
-extern const pb_field_t grpc_gcp_HandshakerResult_fields[8];
-extern const pb_field_t grpc_gcp_HandshakerStatus_fields[3];
-extern const pb_field_t grpc_gcp_HandshakerResp_fields[5];
-
-/* Maximum encoded size of messages (where known) */
-/* grpc_gcp_Endpoint_size depends on runtime parameters */
-/* grpc_gcp_Identity_size depends on runtime parameters */
-/* grpc_gcp_StartClientHandshakeReq_size depends on runtime parameters */
-/* grpc_gcp_ServerHandshakeParameters_size depends on runtime parameters */
-/* grpc_gcp_StartServerHandshakeReq_size depends on runtime parameters */
-#define grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_size (17 + grpc_gcp_ServerHandshakeParameters_size)
-/* grpc_gcp_NextHandshakeMessageReq_size depends on runtime parameters */
-#define grpc_gcp_HandshakerReq_size (18 + grpc_gcp_StartClientHandshakeReq_size + grpc_gcp_StartServerHandshakeReq_size + grpc_gcp_NextHandshakeMessageReq_size)
-/* grpc_gcp_HandshakerResult_size depends on runtime parameters */
-/* grpc_gcp_HandshakerStatus_size depends on runtime parameters */
-/* grpc_gcp_HandshakerResp_size depends on runtime parameters */
-
-/* Message IDs (where set with "msgid" option) */
-#ifdef PB_MSGID
-
-#define HANDSHAKER_MESSAGES \
-
-
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-/* @@protoc_insertion_point(eof) */
-
-#endif
diff --git a/src/core/tsi/alts/handshaker/transport_security_common.pb.c b/src/core/tsi/alts/handshaker/transport_security_common.pb.c
deleted file mode 100644
index 326b1b1..0000000
--- a/src/core/tsi/alts/handshaker/transport_security_common.pb.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Automatically generated nanopb constant definitions */
-/* Generated by nanopb-0.3.7-dev */
-
-#include "src/core/tsi/alts/handshaker/transport_security_common.pb.h"
-/* @@protoc_insertion_point(includes) */
-#if PB_PROTO_HEADER_VERSION != 30
-#error Regenerate this file with the current version of nanopb generator.
-#endif
-
-
-
-const pb_field_t grpc_gcp_RpcProtocolVersions_fields[3] = {
- PB_FIELD( 1, MESSAGE , OPTIONAL, STATIC , FIRST, grpc_gcp_RpcProtocolVersions, max_rpc_version, max_rpc_version, &grpc_gcp_RpcProtocolVersions_Version_fields),
- PB_FIELD( 2, MESSAGE , OPTIONAL, STATIC , OTHER, grpc_gcp_RpcProtocolVersions, min_rpc_version, max_rpc_version, &grpc_gcp_RpcProtocolVersions_Version_fields),
- PB_LAST_FIELD
-};
-
-const pb_field_t grpc_gcp_RpcProtocolVersions_Version_fields[3] = {
- PB_FIELD( 1, UINT32 , OPTIONAL, STATIC , FIRST, grpc_gcp_RpcProtocolVersions_Version, major, major, 0),
- PB_FIELD( 2, UINT32 , OPTIONAL, STATIC , OTHER, grpc_gcp_RpcProtocolVersions_Version, minor, major, 0),
- PB_LAST_FIELD
-};
-
-
-/* Check that field information fits in pb_field_t */
-#if !defined(PB_FIELD_32BIT)
-/* If you get an error here, it means that you need to define PB_FIELD_32BIT
- * compile-time option. You can do that in pb.h or on compiler command line.
- *
- * The reason you need to do this is that some of your messages contain tag
- * numbers or field sizes that are larger than what can fit in 8 or 16 bit
- * field descriptors.
- */
-PB_STATIC_ASSERT((pb_membersize(grpc_gcp_RpcProtocolVersions, max_rpc_version) < 65536 && pb_membersize(grpc_gcp_RpcProtocolVersions, min_rpc_version) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_grpc_gcp_RpcProtocolVersions_grpc_gcp_RpcProtocolVersions_Version)
-#endif
-
-#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
-/* If you get an error here, it means that you need to define PB_FIELD_16BIT
- * compile-time option. You can do that in pb.h or on compiler command line.
- *
- * The reason you need to do this is that some of your messages contain tag
- * numbers or field sizes that are larger than what can fit in the default
- * 8 bit descriptors.
- */
-PB_STATIC_ASSERT((pb_membersize(grpc_gcp_RpcProtocolVersions, max_rpc_version) < 256 && pb_membersize(grpc_gcp_RpcProtocolVersions, min_rpc_version) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_grpc_gcp_RpcProtocolVersions_grpc_gcp_RpcProtocolVersions_Version)
-#endif
-
-
-/* @@protoc_insertion_point(eof) */
diff --git a/src/core/tsi/alts/handshaker/transport_security_common.pb.h b/src/core/tsi/alts/handshaker/transport_security_common.pb.h
deleted file mode 100644
index 87d9abf..0000000
--- a/src/core/tsi/alts/handshaker/transport_security_common.pb.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Automatically generated nanopb header */
-/* Generated by nanopb-0.3.7-dev */
-
-#ifndef PB_GRPC_GCP_TRANSPORT_SECURITY_COMMON_PB_H_INCLUDED
-#define PB_GRPC_GCP_TRANSPORT_SECURITY_COMMON_PB_H_INCLUDED
-#include "pb.h"
-/* @@protoc_insertion_point(includes) */
-#if PB_PROTO_HEADER_VERSION != 30
-#error Regenerate this file with the current version of nanopb generator.
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Enum definitions */
-typedef enum _grpc_gcp_SecurityLevel {
- grpc_gcp_SecurityLevel_SECURITY_NONE = 0,
- grpc_gcp_SecurityLevel_INTEGRITY_ONLY = 1,
- grpc_gcp_SecurityLevel_INTEGRITY_AND_PRIVACY = 2
-} grpc_gcp_SecurityLevel;
-#define _grpc_gcp_SecurityLevel_MIN grpc_gcp_SecurityLevel_SECURITY_NONE
-#define _grpc_gcp_SecurityLevel_MAX grpc_gcp_SecurityLevel_INTEGRITY_AND_PRIVACY
-#define _grpc_gcp_SecurityLevel_ARRAYSIZE ((grpc_gcp_SecurityLevel)(grpc_gcp_SecurityLevel_INTEGRITY_AND_PRIVACY+1))
-
-/* Struct definitions */
-typedef struct _grpc_gcp_RpcProtocolVersions_Version {
- bool has_major;
- uint32_t major;
- bool has_minor;
- uint32_t minor;
-/* @@protoc_insertion_point(struct:grpc_gcp_RpcProtocolVersions_Version) */
-} grpc_gcp_RpcProtocolVersions_Version;
-
-typedef struct _grpc_gcp_RpcProtocolVersions {
- bool has_max_rpc_version;
- grpc_gcp_RpcProtocolVersions_Version max_rpc_version;
- bool has_min_rpc_version;
- grpc_gcp_RpcProtocolVersions_Version min_rpc_version;
-/* @@protoc_insertion_point(struct:grpc_gcp_RpcProtocolVersions) */
-} grpc_gcp_RpcProtocolVersions;
-
-/* Default values for struct fields */
-
-/* Initializer values for message structs */
-#define grpc_gcp_RpcProtocolVersions_init_default {false, grpc_gcp_RpcProtocolVersions_Version_init_default, false, grpc_gcp_RpcProtocolVersions_Version_init_default}
-#define grpc_gcp_RpcProtocolVersions_Version_init_default {false, 0, false, 0}
-#define grpc_gcp_RpcProtocolVersions_init_zero {false, grpc_gcp_RpcProtocolVersions_Version_init_zero, false, grpc_gcp_RpcProtocolVersions_Version_init_zero}
-#define grpc_gcp_RpcProtocolVersions_Version_init_zero {false, 0, false, 0}
-
-/* Field tags (for use in manual encoding/decoding) */
-#define grpc_gcp_RpcProtocolVersions_Version_major_tag 1
-#define grpc_gcp_RpcProtocolVersions_Version_minor_tag 2
-#define grpc_gcp_RpcProtocolVersions_max_rpc_version_tag 1
-#define grpc_gcp_RpcProtocolVersions_min_rpc_version_tag 2
-
-/* Struct field encoding specification for nanopb */
-extern const pb_field_t grpc_gcp_RpcProtocolVersions_fields[3];
-extern const pb_field_t grpc_gcp_RpcProtocolVersions_Version_fields[3];
-
-/* Maximum encoded size of messages (where known) */
-#define grpc_gcp_RpcProtocolVersions_size 28
-#define grpc_gcp_RpcProtocolVersions_Version_size 12
-
-/* Message IDs (where set with "msgid" option) */
-#ifdef PB_MSGID
-
-#define TRANSPORT_SECURITY_COMMON_MESSAGES \
-
-
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-/* @@protoc_insertion_point(eof) */
-
-#endif
diff --git a/src/core/tsi/alts/handshaker/transport_security_common_api.cc b/src/core/tsi/alts/handshaker/transport_security_common_api.cc
index 6c518c1..c7b9faf 100644
--- a/src/core/tsi/alts/handshaker/transport_security_common_api.cc
+++ b/src/core/tsi/alts/handshaker/transport_security_common_api.cc
@@ -29,9 +29,6 @@
"grpc_gcp_rpc_protocol_versions_set_max().");
return false;
}
- versions->has_max_rpc_version = true;
- versions->max_rpc_version.has_major = true;
- versions->max_rpc_version.has_minor = true;
versions->max_rpc_version.major = max_major;
versions->max_rpc_version.minor = max_minor;
return true;
@@ -46,49 +43,11 @@
"grpc_gcp_rpc_protocol_versions_set_min().");
return false;
}
- versions->has_min_rpc_version = true;
- versions->min_rpc_version.has_major = true;
- versions->min_rpc_version.has_minor = true;
versions->min_rpc_version.major = min_major;
versions->min_rpc_version.minor = min_minor;
return true;
}
-size_t grpc_gcp_rpc_protocol_versions_encode_length(
- const grpc_gcp_rpc_protocol_versions* versions) {
- if (versions == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_rpc_protocol_versions_encode_length().");
- return 0;
- }
- pb_ostream_t size_stream;
- memset(&size_stream, 0, sizeof(pb_ostream_t));
- if (!pb_encode(&size_stream, grpc_gcp_RpcProtocolVersions_fields, versions)) {
- gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&size_stream));
- return 0;
- }
- return size_stream.bytes_written;
-}
-
-bool grpc_gcp_rpc_protocol_versions_encode_to_raw_bytes(
- const grpc_gcp_rpc_protocol_versions* versions, uint8_t* bytes,
- size_t bytes_length) {
- if (versions == nullptr || bytes == nullptr || bytes_length == 0) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_rpc_protocol_versions_encode_to_raw_bytes().");
- return false;
- }
- pb_ostream_t output_stream = pb_ostream_from_buffer(bytes, bytes_length);
- if (!pb_encode(&output_stream, grpc_gcp_RpcProtocolVersions_fields,
- versions)) {
- gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&output_stream));
- return false;
- }
- return true;
-}
-
bool grpc_gcp_rpc_protocol_versions_encode(
const grpc_gcp_rpc_protocol_versions* versions, grpc_slice* slice) {
if (versions == nullptr || slice == nullptr) {
@@ -97,12 +56,32 @@
"grpc_gcp_rpc_protocol_versions_encode().");
return false;
}
- size_t encoded_length =
- grpc_gcp_rpc_protocol_versions_encode_length(versions);
- if (encoded_length == 0) return false;
- *slice = grpc_slice_malloc(encoded_length);
- return grpc_gcp_rpc_protocol_versions_encode_to_raw_bytes(
- versions, GRPC_SLICE_START_PTR(*slice), encoded_length);
+ upb::Arena arena;
+ grpc_gcp_RpcProtocolVersions* versions_msg =
+ grpc_gcp_RpcProtocolVersions_new(arena.ptr());
+ grpc_gcp_RpcProtocolVersions_assign_from_struct(versions_msg, arena.ptr(),
+ versions);
+ return grpc_gcp_rpc_protocol_versions_encode(versions_msg, arena.ptr(),
+ slice);
+}
+
+bool grpc_gcp_rpc_protocol_versions_encode(
+ const grpc_gcp_RpcProtocolVersions* versions, upb_arena* arena,
+ grpc_slice* slice) {
+ if (versions == nullptr || arena == nullptr || slice == nullptr) {
+ gpr_log(GPR_ERROR,
+ "Invalid nullptr arguments to "
+ "grpc_gcp_rpc_protocol_versions_encode().");
+ return false;
+ }
+ size_t buf_length;
+ char* buf =
+ grpc_gcp_RpcProtocolVersions_serialize(versions, arena, &buf_length);
+ if (buf == nullptr) {
+ return false;
+ }
+ *slice = grpc_slice_from_copied_buffer(buf, buf_length);
+ return true;
}
bool grpc_gcp_rpc_protocol_versions_decode(
@@ -113,16 +92,63 @@
"grpc_gcp_rpc_protocol_versions_decode().");
return false;
}
- pb_istream_t stream =
- pb_istream_from_buffer(const_cast<uint8_t*>(GRPC_SLICE_START_PTR(slice)),
- GRPC_SLICE_LENGTH(slice));
- if (!pb_decode(&stream, grpc_gcp_RpcProtocolVersions_fields, versions)) {
- gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&stream));
+ upb::Arena arena;
+ grpc_gcp_RpcProtocolVersions* versions_msg =
+ grpc_gcp_RpcProtocolVersions_parse(
+ reinterpret_cast<const char*>(GRPC_SLICE_START_PTR(slice)),
+ GRPC_SLICE_LENGTH(slice), arena.ptr());
+ if (versions_msg == nullptr) {
+ gpr_log(GPR_ERROR, "cannot deserialize RpcProtocolVersions message");
return false;
}
+ grpc_gcp_rpc_protocol_versions_assign_from_upb(versions, versions_msg);
return true;
}
+void grpc_gcp_rpc_protocol_versions_assign_from_upb(
+ grpc_gcp_rpc_protocol_versions* versions,
+ const grpc_gcp_RpcProtocolVersions* value) {
+ const grpc_gcp_RpcProtocolVersions_Version* max_version_msg =
+ grpc_gcp_RpcProtocolVersions_max_rpc_version(value);
+ if (max_version_msg != nullptr) {
+ versions->max_rpc_version.major =
+ grpc_gcp_RpcProtocolVersions_Version_major(max_version_msg);
+ versions->max_rpc_version.minor =
+ grpc_gcp_RpcProtocolVersions_Version_minor(max_version_msg);
+ } else {
+ versions->max_rpc_version.major = 0;
+ versions->max_rpc_version.minor = 0;
+ }
+ const grpc_gcp_RpcProtocolVersions_Version* min_version_msg =
+ grpc_gcp_RpcProtocolVersions_min_rpc_version(value);
+ if (min_version_msg != nullptr) {
+ versions->min_rpc_version.major =
+ grpc_gcp_RpcProtocolVersions_Version_major(min_version_msg);
+ versions->min_rpc_version.minor =
+ grpc_gcp_RpcProtocolVersions_Version_minor(min_version_msg);
+ } else {
+ versions->min_rpc_version.major = 0;
+ versions->min_rpc_version.minor = 0;
+ }
+}
+
+void grpc_gcp_RpcProtocolVersions_assign_from_struct(
+ grpc_gcp_RpcProtocolVersions* versions, upb_arena* arena,
+ const grpc_gcp_rpc_protocol_versions* value) {
+ grpc_gcp_RpcProtocolVersions_Version* max_version_msg =
+ grpc_gcp_RpcProtocolVersions_mutable_max_rpc_version(versions, arena);
+ grpc_gcp_RpcProtocolVersions_Version_set_major(max_version_msg,
+ value->max_rpc_version.major);
+ grpc_gcp_RpcProtocolVersions_Version_set_minor(max_version_msg,
+ value->max_rpc_version.minor);
+ grpc_gcp_RpcProtocolVersions_Version* min_version_msg =
+ grpc_gcp_RpcProtocolVersions_mutable_min_rpc_version(versions, arena);
+ grpc_gcp_RpcProtocolVersions_Version_set_major(min_version_msg,
+ value->min_rpc_version.major);
+ grpc_gcp_RpcProtocolVersions_Version_set_minor(min_version_msg,
+ value->min_rpc_version.minor);
+}
+
bool grpc_gcp_rpc_protocol_versions_copy(
const grpc_gcp_rpc_protocol_versions* src,
grpc_gcp_rpc_protocol_versions* dst) {
diff --git a/src/core/tsi/alts/handshaker/transport_security_common_api.h b/src/core/tsi/alts/handshaker/transport_security_common_api.h
index 27942c8..75739e4 100644
--- a/src/core/tsi/alts/handshaker/transport_security_common_api.h
+++ b/src/core/tsi/alts/handshaker/transport_security_common_api.h
@@ -21,20 +21,24 @@
#include <grpc/support/port_platform.h>
-#include "pb_decode.h"
-#include "pb_encode.h"
-
#include <grpc/slice.h>
#include <grpc/slice_buffer.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
-#include "src/core/tsi/alts/handshaker/transport_security_common.pb.h"
+#include "src/proto/grpc/gcp/transport_security_common.upb.h"
-typedef grpc_gcp_RpcProtocolVersions grpc_gcp_rpc_protocol_versions;
+// C struct coresponding to protobuf message RpcProtocolVersions.Version
+typedef struct _grpc_gcp_RpcProtocolVersions_Version {
+ uint32_t major;
+ uint32_t minor;
+} grpc_gcp_rpc_protocol_versions_version;
-typedef grpc_gcp_RpcProtocolVersions_Version
- grpc_gcp_rpc_protocol_versions_version;
+// C struct coresponding to protobuf message RpcProtocolVersions
+typedef struct _grpc_gcp_RpcProtocolVersions {
+ grpc_gcp_rpc_protocol_versions_version max_rpc_version;
+ grpc_gcp_rpc_protocol_versions_version min_rpc_version;
+} grpc_gcp_rpc_protocol_versions;
/**
* This method sets the value for max_rpc_versions field of rpc protocol
@@ -65,31 +69,6 @@
uint32_t min_minor);
/**
- * This method computes serialized byte length of rpc protocol versions.
- *
- * - versions: an rpc protocol versions instance.
- *
- * The method returns serialized byte length. It returns 0 on failure.
- */
-size_t grpc_gcp_rpc_protocol_versions_encode_length(
- const grpc_gcp_rpc_protocol_versions* versions);
-
-/**
- * This method serializes rpc protocol versions and writes the result to
- * the memory buffer provided by the caller. Caller is responsible for
- * allocating sufficient memory to store the serialized data.
- *
- * - versions: an rpc protocol versions instance.
- * - bytes: bytes buffer where the result will be written to.
- * - bytes_length: length of the bytes buffer.
- *
- * The method returns true on success and false otherwise.
- */
-bool grpc_gcp_rpc_protocol_versions_encode_to_raw_bytes(
- const grpc_gcp_rpc_protocol_versions* versions, uint8_t* bytes,
- size_t bytes_length);
-
-/**
* This method serializes an rpc protocol version and returns serialized rpc
* versions in grpc slice.
*
@@ -102,6 +81,20 @@
const grpc_gcp_rpc_protocol_versions* versions, grpc_slice* slice);
/**
+ * This method serializes an rpc protocol version and returns serialized rpc
+ * versions in grpc slice.
+ *
+ * - versions: an rpc protocol versions instance.
+ * - arena: upb arena.
+ * - slice: grpc slice where the serialized result will be written.
+ *
+ * The method returns true on success and false otherwise.
+ */
+bool grpc_gcp_rpc_protocol_versions_encode(
+ const grpc_gcp_RpcProtocolVersions* versions, upb_arena* arena,
+ grpc_slice* slice);
+
+/**
* This method de-serializes input in grpc slice form and stores the result
* in rpc protocol versions.
*
@@ -115,6 +108,21 @@
const grpc_slice& slice, grpc_gcp_rpc_protocol_versions* versions);
/**
+ * Assigns value of upb RpcProtocolVersions to grpc_gcp_rpc_protocol_versions.
+ */
+void grpc_gcp_rpc_protocol_versions_assign_from_upb(
+ grpc_gcp_rpc_protocol_versions* versions,
+ const grpc_gcp_RpcProtocolVersions* value);
+
+/**
+ * Assigns value of struct grpc_gcp_rpc_protocol_versions to
+ * RpcProtocolVersions.
+ */
+void grpc_gcp_RpcProtocolVersions_assign_from_struct(
+ grpc_gcp_RpcProtocolVersions* versions, upb_arena* arena,
+ const grpc_gcp_rpc_protocol_versions* value);
+
+/**
* This method performs a deep copy operation on rpc protocol versions
* instance.
*
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index f1c1a72..58c1fd3 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -306,23 +306,18 @@
'src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc',
'src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc',
'src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc',
- 'src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc',
'src/core/tsi/alts/handshaker/alts_tsi_utils.cc',
'src/core/tsi/alts/handshaker/transport_security_common_api.cc',
- 'src/core/tsi/alts/handshaker/altscontext.pb.c',
- 'src/core/tsi/alts/handshaker/handshaker.pb.c',
- 'src/core/tsi/alts/handshaker/transport_security_common.pb.c',
- 'third_party/nanopb/pb_common.c',
- 'third_party/nanopb/pb_decode.c',
- 'third_party/nanopb/pb_encode.c',
- 'src/core/tsi/transport_security.cc',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c',
+ 'src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c',
'third_party/upb/upb/decode.c',
'third_party/upb/upb/encode.c',
'third_party/upb/upb/msg.c',
'third_party/upb/upb/port.c',
'third_party/upb/upb/table.c',
'third_party/upb/upb/upb.c',
+ 'src/core/tsi/transport_security.cc',
'src/core/ext/transport/chttp2/client/insecure/channel_create.cc',
'src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc',
'src/core/ext/transport/chttp2/client/authority.cc',
diff --git a/test/core/tsi/alts/handshaker/BUILD b/test/core/tsi/alts/handshaker/BUILD
index 61ba16a..ed97056 100644
--- a/test/core/tsi/alts/handshaker/BUILD
+++ b/test/core/tsi/alts/handshaker/BUILD
@@ -42,17 +42,6 @@
)
grpc_cc_test(
- name = "alts_handshaker_service_api_test",
- srcs = ["alts_handshaker_service_api_test.cc"],
- language = "C++",
- deps = [
- ":alts_handshaker_service_api_test_lib",
- "//:grpc",
- "//test/core/util:grpc_test_util",
- ],
-)
-
-grpc_cc_test(
name = "alts_tsi_handshaker_test",
srcs = ["alts_tsi_handshaker_test.cc"],
language = "C++",
diff --git a/test/core/tsi/alts/handshaker/alts_handshaker_client_test.cc b/test/core/tsi/alts/handshaker/alts_handshaker_client_test.cc
index 9a4541b..4d36c24 100644
--- a/test/core/tsi/alts/handshaker/alts_handshaker_client_test.cc
+++ b/test/core/tsi/alts/handshaker/alts_handshaker_client_test.cc
@@ -54,34 +54,34 @@
} alts_handshaker_client_test_config;
static void validate_rpc_protocol_versions(
- grpc_gcp_rpc_protocol_versions* versions) {
+ const grpc_gcp_RpcProtocolVersions* versions) {
GPR_ASSERT(versions != nullptr);
- GPR_ASSERT(versions->max_rpc_version.major == kMaxRpcVersionMajor);
- GPR_ASSERT(versions->max_rpc_version.minor == kMaxRpcVersionMinor);
- GPR_ASSERT(versions->min_rpc_version.major == kMinRpcVersionMajor);
- GPR_ASSERT(versions->min_rpc_version.minor == kMinRpcVersionMinor);
+ const grpc_gcp_RpcProtocolVersions_Version* max_version =
+ grpc_gcp_RpcProtocolVersions_max_rpc_version(versions);
+ const grpc_gcp_RpcProtocolVersions_Version* min_version =
+ grpc_gcp_RpcProtocolVersions_min_rpc_version(versions);
+ GPR_ASSERT(grpc_gcp_RpcProtocolVersions_Version_major(max_version) ==
+ kMaxRpcVersionMajor);
+ GPR_ASSERT(grpc_gcp_RpcProtocolVersions_Version_minor(max_version) ==
+ kMaxRpcVersionMinor);
+ GPR_ASSERT(grpc_gcp_RpcProtocolVersions_Version_major(min_version) ==
+ kMinRpcVersionMajor);
+ GPR_ASSERT(grpc_gcp_RpcProtocolVersions_Version_minor(min_version) ==
+ kMinRpcVersionMinor);
}
static void validate_target_identities(
- const repeated_field* target_identity_head) {
- grpc_gcp_identity* target_identity1 = static_cast<grpc_gcp_identity*>(
- const_cast<void*>(target_identity_head->next->data));
- grpc_gcp_identity* target_identity2 = static_cast<grpc_gcp_identity*>(
- const_cast<void*>(target_identity_head->data));
- grpc_slice* service_account1 =
- static_cast<grpc_slice*>(target_identity1->service_account.arg);
- grpc_slice* service_account2 =
- static_cast<grpc_slice*>(target_identity2->service_account.arg);
- GPR_ASSERT(memcmp(GRPC_SLICE_START_PTR(*service_account1),
- ALTS_HANDSHAKER_CLIENT_TEST_TARGET_SERVICE_ACCOUNT1,
- GRPC_SLICE_LENGTH(*service_account1)) == 0);
- GPR_ASSERT(strlen(ALTS_HANDSHAKER_CLIENT_TEST_TARGET_SERVICE_ACCOUNT1) ==
- GRPC_SLICE_LENGTH(*service_account1));
- GPR_ASSERT(memcmp(GRPC_SLICE_START_PTR(*service_account2),
- ALTS_HANDSHAKER_CLIENT_TEST_TARGET_SERVICE_ACCOUNT2,
- GRPC_SLICE_LENGTH(*service_account2)) == 0);
- GPR_ASSERT(strlen(ALTS_HANDSHAKER_CLIENT_TEST_TARGET_SERVICE_ACCOUNT2) ==
- GRPC_SLICE_LENGTH(*service_account2));
+ const grpc_gcp_Identity* const* target_identities,
+ size_t target_identities_count) {
+ GPR_ASSERT(target_identities_count == 2);
+ const grpc_gcp_Identity* identity1 = target_identities[1];
+ const grpc_gcp_Identity* identity2 = target_identities[0];
+ GPR_ASSERT(upb_strview_eql(
+ grpc_gcp_Identity_service_account(identity1),
+ upb_strview_makez(ALTS_HANDSHAKER_CLIENT_TEST_TARGET_SERVICE_ACCOUNT1)));
+ GPR_ASSERT(upb_strview_eql(
+ grpc_gcp_Identity_service_account(identity2),
+ upb_strview_makez(ALTS_HANDSHAKER_CLIENT_TEST_TARGET_SERVICE_ACCOUNT2)));
}
/**
@@ -117,14 +117,14 @@
return ok;
}
-static grpc_gcp_handshaker_req* deserialize_handshaker_req(
- grpc_gcp_handshaker_req_type type, grpc_byte_buffer* buffer) {
+static grpc_gcp_HandshakerReq* deserialize_handshaker_req(
+ grpc_byte_buffer* buffer, upb_arena* arena) {
GPR_ASSERT(buffer != nullptr);
- grpc_gcp_handshaker_req* req = grpc_gcp_handshaker_decoded_req_create(type);
grpc_byte_buffer_reader bbr;
GPR_ASSERT(grpc_byte_buffer_reader_init(&bbr, buffer));
grpc_slice slice = grpc_byte_buffer_reader_readall(&bbr);
- GPR_ASSERT(grpc_gcp_handshaker_req_decode(slice, req));
+ grpc_gcp_HandshakerReq* req = grpc_gcp_handshaker_req_decode(slice, arena);
+ GPR_ASSERT(req != nullptr);
grpc_slice_unref(slice);
grpc_byte_buffer_reader_destroy(&bbr);
return req;
@@ -150,40 +150,38 @@
const grpc_op* op,
size_t nops,
grpc_closure* closure) {
+ upb::Arena arena;
alts_handshaker_client* client =
static_cast<alts_handshaker_client*>(closure->cb_arg);
GPR_ASSERT(alts_handshaker_client_get_closure_for_testing(client) == closure);
- grpc_gcp_handshaker_req* req = deserialize_handshaker_req(
- CLIENT_START_REQ,
- alts_handshaker_client_get_send_buffer_for_testing(client));
- GPR_ASSERT(req->client_start.handshake_security_protocol ==
- grpc_gcp_HandshakeProtocol_ALTS);
- const void* data = (static_cast<repeated_field*>(
- req->client_start.application_protocols.arg))
- ->data;
- GPR_ASSERT(data != nullptr);
- grpc_slice* application_protocol = (grpc_slice*)data;
- data = (static_cast<repeated_field*>(req->client_start.record_protocols.arg))
- ->data;
- grpc_slice* record_protocol = (grpc_slice*)data;
- GPR_ASSERT(memcmp(GRPC_SLICE_START_PTR(*application_protocol),
- ALTS_APPLICATION_PROTOCOL,
- GRPC_SLICE_LENGTH(*application_protocol)) == 0);
- GPR_ASSERT(memcmp(GRPC_SLICE_START_PTR(*record_protocol),
- ALTS_RECORD_PROTOCOL,
- GRPC_SLICE_LENGTH(*record_protocol)) == 0);
- validate_rpc_protocol_versions(&req->client_start.rpc_versions);
- validate_target_identities(
- static_cast<repeated_field*>(req->client_start.target_identities.arg));
- grpc_slice* target_name =
- static_cast<grpc_slice*>(req->client_start.target_name.arg);
- GPR_ASSERT(memcmp(GRPC_SLICE_START_PTR(*target_name),
- ALTS_HANDSHAKER_CLIENT_TEST_TARGET_NAME,
- GRPC_SLICE_LENGTH(*target_name)) == 0);
- GPR_ASSERT(GRPC_SLICE_LENGTH(*target_name) ==
- strlen(ALTS_HANDSHAKER_CLIENT_TEST_TARGET_NAME));
+ grpc_gcp_HandshakerReq* req = deserialize_handshaker_req(
+ alts_handshaker_client_get_send_buffer_for_testing(client), arena.ptr());
+ const grpc_gcp_StartClientHandshakeReq* client_start =
+ grpc_gcp_HandshakerReq_client_start(req);
+ GPR_ASSERT(grpc_gcp_StartClientHandshakeReq_handshake_security_protocol(
+ client_start) == grpc_gcp_ALTS);
+ upb_strview const* application_protocols =
+ grpc_gcp_StartClientHandshakeReq_application_protocols(client_start,
+ nullptr);
+ GPR_ASSERT(upb_strview_eql(application_protocols[0],
+ upb_strview_makez(ALTS_APPLICATION_PROTOCOL)));
+ upb_strview const* record_protocols =
+ grpc_gcp_StartClientHandshakeReq_record_protocols(client_start, nullptr);
+ GPR_ASSERT(upb_strview_eql(record_protocols[0],
+ upb_strview_makez(ALTS_RECORD_PROTOCOL)));
+ const grpc_gcp_RpcProtocolVersions* rpc_protocol_versions =
+ grpc_gcp_StartClientHandshakeReq_rpc_versions(client_start);
+ validate_rpc_protocol_versions(rpc_protocol_versions);
+ size_t target_identities_count;
+ const grpc_gcp_Identity* const* target_identities =
+ grpc_gcp_StartClientHandshakeReq_target_identities(
+ client_start, &target_identities_count);
+ validate_target_identities(target_identities, target_identities_count);
+ GPR_ASSERT(upb_strview_eql(
+ grpc_gcp_StartClientHandshakeReq_target_name(client_start),
+ upb_strview_makez(ALTS_HANDSHAKER_CLIENT_TEST_TARGET_NAME)));
+
GPR_ASSERT(validate_op(client, op, nops, true /* is_start */));
- grpc_gcp_handshaker_req_destroy(req);
return GRPC_CALL_OK;
}
@@ -197,34 +195,37 @@
const grpc_op* op,
size_t nops,
grpc_closure* closure) {
+ upb::Arena arena;
alts_handshaker_client* client =
static_cast<alts_handshaker_client*>(closure->cb_arg);
GPR_ASSERT(alts_handshaker_client_get_closure_for_testing(client) == closure);
- grpc_gcp_handshaker_req* req = deserialize_handshaker_req(
- SERVER_START_REQ,
- alts_handshaker_client_get_send_buffer_for_testing(client));
- const void* data = (static_cast<repeated_field*>(
- req->server_start.application_protocols.arg))
- ->data;
- GPR_ASSERT(data != nullptr);
- grpc_slice* application_protocol = (grpc_slice*)data;
- GPR_ASSERT(memcmp(GRPC_SLICE_START_PTR(*application_protocol),
- ALTS_APPLICATION_PROTOCOL,
- GRPC_SLICE_LENGTH(*application_protocol)) == 0);
- GPR_ASSERT(req->server_start.handshake_parameters_count == 1);
- GPR_ASSERT(req->server_start.handshake_parameters[0].key ==
- grpc_gcp_HandshakeProtocol_ALTS);
- data = (static_cast<repeated_field*>(req->server_start.handshake_parameters[0]
- .value.record_protocols.arg))
- ->data;
- GPR_ASSERT(data != nullptr);
- grpc_slice* record_protocol = (grpc_slice*)data;
- GPR_ASSERT(memcmp(GRPC_SLICE_START_PTR(*record_protocol),
- ALTS_RECORD_PROTOCOL,
- GRPC_SLICE_LENGTH(*record_protocol)) == 0);
- validate_rpc_protocol_versions(&req->server_start.rpc_versions);
+ grpc_gcp_HandshakerReq* req = deserialize_handshaker_req(
+ alts_handshaker_client_get_send_buffer_for_testing(client), arena.ptr());
+ const grpc_gcp_StartServerHandshakeReq* server_start =
+ grpc_gcp_HandshakerReq_server_start(req);
+ upb_strview const* application_protocols =
+ grpc_gcp_StartServerHandshakeReq_application_protocols(server_start,
+ nullptr);
+ GPR_ASSERT(upb_strview_eql(application_protocols[0],
+ upb_strview_makez(ALTS_APPLICATION_PROTOCOL)));
+ size_t handshake_parameters_count;
+ const grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry* const*
+ handshake_parameters =
+ grpc_gcp_StartServerHandshakeReq_handshake_parameters(
+ server_start, &handshake_parameters_count);
+ GPR_ASSERT(handshake_parameters_count == 1);
+ GPR_ASSERT(grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_key(
+ handshake_parameters[0]) == grpc_gcp_ALTS);
+ const grpc_gcp_ServerHandshakeParameters* value =
+ grpc_gcp_StartServerHandshakeReq_HandshakeParametersEntry_value(
+ handshake_parameters[0]);
+ upb_strview const* record_protocols =
+ grpc_gcp_ServerHandshakeParameters_record_protocols(value, nullptr);
+ GPR_ASSERT(upb_strview_eql(record_protocols[0],
+ upb_strview_makez(ALTS_RECORD_PROTOCOL)));
+ validate_rpc_protocol_versions(
+ grpc_gcp_StartServerHandshakeReq_rpc_versions(server_start));
GPR_ASSERT(validate_op(client, op, nops, true /* is_start */));
- grpc_gcp_handshaker_req_destroy(req);
return GRPC_CALL_OK;
}
@@ -235,20 +236,21 @@
*/
static grpc_call_error check_next_success(grpc_call* call, const grpc_op* op,
size_t nops, grpc_closure* closure) {
+ upb::Arena arena;
alts_handshaker_client* client =
static_cast<alts_handshaker_client*>(closure->cb_arg);
GPR_ASSERT(alts_handshaker_client_get_closure_for_testing(client) == closure);
- grpc_gcp_handshaker_req* req = deserialize_handshaker_req(
- NEXT_REQ, alts_handshaker_client_get_send_buffer_for_testing(client));
- grpc_slice* in_bytes = static_cast<grpc_slice*>(req->next.in_bytes.arg);
- GPR_ASSERT(in_bytes != nullptr);
- GPR_ASSERT(memcmp(GRPC_SLICE_START_PTR(*in_bytes),
- ALTS_HANDSHAKER_CLIENT_TEST_OUT_FRAME,
- GRPC_SLICE_LENGTH(*in_bytes)) == 0);
+ grpc_gcp_HandshakerReq* req = deserialize_handshaker_req(
+ alts_handshaker_client_get_send_buffer_for_testing(client), arena.ptr());
+ const grpc_gcp_NextHandshakeMessageReq* next =
+ grpc_gcp_HandshakerReq_next(req);
+ GPR_ASSERT(upb_strview_eql(
+ grpc_gcp_NextHandshakeMessageReq_in_bytes(next),
+ upb_strview_makez(ALTS_HANDSHAKER_CLIENT_TEST_OUT_FRAME)));
GPR_ASSERT(validate_op(client, op, nops, false /* is_start */));
- grpc_gcp_handshaker_req_destroy(req);
return GRPC_CALL_OK;
}
+
/**
* A mock grpc_caller used to check if client_start, server_start, and next
* operations correctly handle the situation when the grpc call made to the
diff --git a/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test.cc b/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test.cc
deleted file mode 100644
index 3506264..0000000
--- a/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test.cc
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- *
- * 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 <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.h"
-
-int main(int argc, char** argv) {
- const char in_bytes[] = "HELLO GOOGLE!";
- const char out_frames[] = "HELLO WORLD!";
- const char key_data[] = "THIS IS KEY DATA.";
- const char details[] = "DETAILS NEED TO BE POPULATED";
- const uint32_t max_rpc_version_major = 3;
- const uint32_t max_rpc_version_minor = 2;
- const uint32_t min_rpc_version_major = 2;
- const uint32_t min_rpc_version_minor = 1;
-
- /* handshaker_req_next. */
- grpc_gcp_handshaker_req* req = grpc_gcp_handshaker_req_create(NEXT_REQ);
- grpc_gcp_handshaker_req* decoded_req =
- grpc_gcp_handshaker_decoded_req_create(NEXT_REQ);
- GPR_ASSERT(
- grpc_gcp_handshaker_req_set_in_bytes(req, in_bytes, strlen(in_bytes)));
- grpc_slice encoded_req;
- GPR_ASSERT(grpc_gcp_handshaker_req_encode(req, &encoded_req));
- GPR_ASSERT(grpc_gcp_handshaker_req_decode(encoded_req, decoded_req));
- GPR_ASSERT(grpc_gcp_handshaker_req_equals(req, decoded_req));
- grpc_gcp_handshaker_req_destroy(req);
- grpc_gcp_handshaker_req_destroy(decoded_req);
- grpc_slice_unref(encoded_req);
-
- /* handshaker_req_client_start. */
- req = grpc_gcp_handshaker_req_create(CLIENT_START_REQ);
- decoded_req = grpc_gcp_handshaker_decoded_req_create(CLIENT_START_REQ);
- GPR_ASSERT(grpc_gcp_handshaker_req_set_handshake_protocol(
- req, grpc_gcp_HandshakeProtocol_TLS));
- GPR_ASSERT(grpc_gcp_handshaker_req_set_local_identity_hostname(
- req, "www.google.com"));
- GPR_ASSERT(grpc_gcp_handshaker_req_set_local_endpoint(
- req, "2001:db8::8:800:200C:417a", 9876, grpc_gcp_NetworkProtocol_TCP));
- GPR_ASSERT(grpc_gcp_handshaker_req_set_remote_endpoint(
- req, "2001:db8::bac5::fed0:84a2", 1234, grpc_gcp_NetworkProtocol_TCP));
- GPR_ASSERT(grpc_gcp_handshaker_req_add_application_protocol(req, "grpc"));
- GPR_ASSERT(grpc_gcp_handshaker_req_add_application_protocol(req, "http2"));
- GPR_ASSERT(
- grpc_gcp_handshaker_req_add_record_protocol(req, "ALTSRP_GCM_AES256"));
- GPR_ASSERT(
- grpc_gcp_handshaker_req_add_record_protocol(req, "ALTSRP_GCM_AES384"));
- GPR_ASSERT(grpc_gcp_handshaker_req_add_target_identity_service_account(
- req, "foo@google.com"));
- GPR_ASSERT(grpc_gcp_handshaker_req_set_target_name(
- req, "google.example.library.service"));
- GPR_ASSERT(grpc_gcp_handshaker_req_set_rpc_versions(
- req, max_rpc_version_major, max_rpc_version_minor, min_rpc_version_major,
- min_rpc_version_minor));
- GPR_ASSERT(grpc_gcp_handshaker_req_encode(req, &encoded_req));
- GPR_ASSERT(grpc_gcp_handshaker_req_decode(encoded_req, decoded_req));
- GPR_ASSERT(grpc_gcp_handshaker_req_equals(req, decoded_req));
- grpc_gcp_handshaker_req_destroy(req);
- grpc_gcp_handshaker_req_destroy(decoded_req);
- grpc_slice_unref(encoded_req);
-
- /* handshaker_req_server_start. */
- req = grpc_gcp_handshaker_req_create(SERVER_START_REQ);
- decoded_req = grpc_gcp_handshaker_decoded_req_create(SERVER_START_REQ);
- GPR_ASSERT(grpc_gcp_handshaker_req_add_application_protocol(req, "grpc"));
- GPR_ASSERT(grpc_gcp_handshaker_req_add_application_protocol(req, "http2"));
- GPR_ASSERT(grpc_gcp_handshaker_req_set_local_endpoint(
- req, "2001:db8::8:800:200C:417a", 9876, grpc_gcp_NetworkProtocol_TCP));
- GPR_ASSERT(grpc_gcp_handshaker_req_set_remote_endpoint(
- req, "2001:db8::bac5::fed0:84a2", 1234, grpc_gcp_NetworkProtocol_UDP));
- GPR_ASSERT(
- grpc_gcp_handshaker_req_set_in_bytes(req, in_bytes, strlen(in_bytes)));
- GPR_ASSERT(grpc_gcp_handshaker_req_param_add_record_protocol(
- req, grpc_gcp_HandshakeProtocol_TLS, "ALTSRP_GCM_AES128"));
- GPR_ASSERT(grpc_gcp_handshaker_req_param_add_local_identity_service_account(
- req, grpc_gcp_HandshakeProtocol_TLS, "foo@google.com"));
- GPR_ASSERT(grpc_gcp_handshaker_req_param_add_local_identity_hostname(
- req, grpc_gcp_HandshakeProtocol_TLS, "yihuaz0.mtv.corp.google.com"));
- GPR_ASSERT(grpc_gcp_handshaker_req_param_add_record_protocol(
- req, grpc_gcp_HandshakeProtocol_ALTS, "ALTSRP_GCM_AES128"));
- GPR_ASSERT(grpc_gcp_handshaker_req_param_add_local_identity_hostname(
- req, grpc_gcp_HandshakeProtocol_ALTS, "www.amazon.com"));
- GPR_ASSERT(grpc_gcp_handshaker_req_set_rpc_versions(
- req, max_rpc_version_major, max_rpc_version_minor, min_rpc_version_major,
- min_rpc_version_minor));
-
- GPR_ASSERT(grpc_gcp_handshaker_req_encode(req, &encoded_req));
- GPR_ASSERT(grpc_gcp_handshaker_req_decode(encoded_req, decoded_req));
- GPR_ASSERT(grpc_gcp_handshaker_req_equals(req, decoded_req));
- grpc_gcp_handshaker_req_destroy(req);
- grpc_gcp_handshaker_req_destroy(decoded_req);
- grpc_slice_unref(encoded_req);
-
- /* handshaker_resp. */
- grpc_gcp_handshaker_resp* resp = grpc_gcp_handshaker_resp_create();
- grpc_gcp_handshaker_resp* decoded_resp = grpc_gcp_handshaker_resp_create();
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_out_frames(resp, out_frames,
- strlen(out_frames)));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_bytes_consumed(resp, 1024));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_application_protocol(resp, "http"));
- GPR_ASSERT(
- grpc_gcp_handshaker_resp_set_record_protocol(resp, "ALTSRP_GCM_AES128"));
- GPR_ASSERT(
- grpc_gcp_handshaker_resp_set_key_data(resp, key_data, strlen(key_data)));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_local_identity_hostname(
- resp, "www.faceboook.com"));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_peer_identity_hostname(
- resp, "www.amazon.com"));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_channel_open(
- resp, false /* channel_open */));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_code(resp, 1023));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_details(resp, details));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_peer_rpc_versions(
- resp, max_rpc_version_major, max_rpc_version_minor, min_rpc_version_major,
- min_rpc_version_minor));
- grpc_slice encoded_resp;
- GPR_ASSERT(grpc_gcp_handshaker_resp_encode(resp, &encoded_resp));
- GPR_ASSERT(grpc_gcp_handshaker_resp_decode(encoded_resp, decoded_resp));
- GPR_ASSERT(grpc_gcp_handshaker_resp_equals(resp, decoded_resp));
- grpc_gcp_handshaker_resp_destroy(resp);
- grpc_gcp_handshaker_resp_destroy(decoded_resp);
- grpc_slice_unref(encoded_resp);
- /* Test invalid arguments. */
- GPR_ASSERT(!grpc_gcp_handshaker_req_set_in_bytes(nullptr, in_bytes,
- strlen(in_bytes)));
- GPR_ASSERT(!grpc_gcp_handshaker_req_param_add_record_protocol(
- req, grpc_gcp_HandshakeProtocol_TLS, nullptr));
- GPR_ASSERT(!grpc_gcp_handshaker_req_param_add_local_identity_service_account(
- nullptr, grpc_gcp_HandshakeProtocol_TLS, nullptr));
- GPR_ASSERT(!grpc_gcp_handshaker_resp_set_record_protocol(nullptr, nullptr));
-}
diff --git a/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.cc b/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.cc
index ecca04d..2ab73a2 100644
--- a/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.cc
+++ b/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.cc
@@ -18,625 +18,146 @@
#include "test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.h"
-const size_t kHandshakeProtocolNum = 3;
-
-grpc_gcp_handshaker_req* grpc_gcp_handshaker_decoded_req_create(
- grpc_gcp_handshaker_req_type type) {
- grpc_gcp_handshaker_req* req =
- static_cast<grpc_gcp_handshaker_req*>(gpr_zalloc(sizeof(*req)));
- switch (type) {
- case CLIENT_START_REQ:
- req->has_client_start = true;
- req->client_start.target_identities.funcs.decode =
- decode_repeated_identity_cb;
- req->client_start.application_protocols.funcs.decode =
- decode_repeated_string_cb;
- req->client_start.record_protocols.funcs.decode =
- decode_repeated_string_cb;
- req->client_start.local_identity.hostname.funcs.decode =
- decode_string_or_bytes_cb;
- req->client_start.local_identity.service_account.funcs.decode =
- decode_string_or_bytes_cb;
- req->client_start.local_endpoint.ip_address.funcs.decode =
- decode_string_or_bytes_cb;
- req->client_start.remote_endpoint.ip_address.funcs.decode =
- decode_string_or_bytes_cb;
- req->client_start.target_name.funcs.decode = decode_string_or_bytes_cb;
- break;
- case SERVER_START_REQ:
- req->has_server_start = true;
- req->server_start.application_protocols.funcs.decode =
- &decode_repeated_string_cb;
- for (size_t i = 0; i < kHandshakeProtocolNum; i++) {
- req->server_start.handshake_parameters[i]
- .value.local_identities.funcs.decode = &decode_repeated_identity_cb;
- req->server_start.handshake_parameters[i]
- .value.record_protocols.funcs.decode = &decode_repeated_string_cb;
- }
- req->server_start.in_bytes.funcs.decode = decode_string_or_bytes_cb;
- req->server_start.local_endpoint.ip_address.funcs.decode =
- decode_string_or_bytes_cb;
- req->server_start.remote_endpoint.ip_address.funcs.decode =
- decode_string_or_bytes_cb;
- break;
- case NEXT_REQ:
- req->has_next = true;
- break;
- }
- return req;
-}
-
-bool grpc_gcp_handshaker_resp_set_application_protocol(
- grpc_gcp_handshaker_resp* resp, const char* application_protocol) {
- if (resp == nullptr || application_protocol == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "handshaker_resp_set_application_protocol().");
- return false;
- }
- resp->has_result = true;
- grpc_slice* slice =
- create_slice(application_protocol, strlen(application_protocol));
- resp->result.application_protocol.arg = slice;
- resp->result.application_protocol.funcs.encode = encode_string_or_bytes_cb;
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_record_protocol(
- grpc_gcp_handshaker_resp* resp, const char* record_protocol) {
- if (resp == nullptr || record_protocol == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "handshaker_resp_set_record_protocol().");
- return false;
- }
- resp->has_result = true;
- grpc_slice* slice = create_slice(record_protocol, strlen(record_protocol));
- resp->result.record_protocol.arg = slice;
- resp->result.record_protocol.funcs.encode = encode_string_or_bytes_cb;
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_key_data(grpc_gcp_handshaker_resp* resp,
- const char* key_data, size_t size) {
- if (resp == nullptr || key_data == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to handshaker_resp_set_key_data().");
- return false;
- }
- resp->has_result = true;
- grpc_slice* slice = create_slice(key_data, size);
- resp->result.key_data.arg = slice;
- resp->result.key_data.funcs.encode = encode_string_or_bytes_cb;
- return true;
-}
-
-static void set_identity_hostname(grpc_gcp_identity* identity,
- const char* hostname) {
- grpc_slice* slice = create_slice(hostname, strlen(hostname));
- identity->hostname.arg = slice;
- identity->hostname.funcs.encode = encode_string_or_bytes_cb;
-}
-
-static void set_identity_service_account(grpc_gcp_identity* identity,
- const char* service_account) {
- grpc_slice* slice = create_slice(service_account, strlen(service_account));
- identity->service_account.arg = slice;
- identity->service_account.funcs.encode = encode_string_or_bytes_cb;
-}
-
-bool grpc_gcp_handshaker_resp_set_local_identity_hostname(
- grpc_gcp_handshaker_resp* resp, const char* hostname) {
- if (resp == nullptr || hostname == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_handshaker_resp_set_local_identity_hostname().");
- return false;
- }
- resp->has_result = true;
- resp->result.has_local_identity = true;
- set_identity_hostname(&resp->result.local_identity, hostname);
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_local_identity_service_account(
- grpc_gcp_handshaker_resp* resp, const char* service_account) {
- if (resp == nullptr || service_account == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_handshaker_resp_set_local_identity_service_account().");
- return false;
- }
- resp->has_result = true;
- resp->result.has_local_identity = true;
- set_identity_service_account(&resp->result.local_identity, service_account);
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_peer_identity_hostname(
- grpc_gcp_handshaker_resp* resp, const char* hostname) {
- if (resp == nullptr || hostname == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_handshaker_resp_set_peer_identity_hostname().");
- return false;
- }
- resp->has_result = true;
- resp->result.has_peer_identity = true;
- set_identity_hostname(&resp->result.peer_identity, hostname);
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_peer_identity_service_account(
- grpc_gcp_handshaker_resp* resp, const char* service_account) {
- if (resp == nullptr || service_account == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_handshaker_resp_set_peer_identity_service_account().");
- return false;
- }
- resp->has_result = true;
- resp->result.has_peer_identity = true;
- set_identity_service_account(&resp->result.peer_identity, service_account);
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_channel_open(grpc_gcp_handshaker_resp* resp,
- bool keep_channel_open) {
- if (resp == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr argument to "
- "grpc_gcp_handshaker_resp_set_channel_open().");
- return false;
- }
- resp->has_result = true;
- resp->result.has_keep_channel_open = true;
- resp->result.keep_channel_open = keep_channel_open;
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_code(grpc_gcp_handshaker_resp* resp,
- uint32_t code) {
- if (resp == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr argument to grpc_gcp_handshaker_resp_set_code().");
- return false;
- }
- resp->has_status = true;
- resp->status.has_code = true;
- resp->status.code = code;
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_details(grpc_gcp_handshaker_resp* resp,
- const char* details) {
- if (resp == nullptr || details == nullptr) {
- gpr_log(
- GPR_ERROR,
- "Invalid nullptr arguments to grpc_gcp_handshaker_resp_set_details().");
- return false;
- }
- resp->has_status = true;
- grpc_slice* slice = create_slice(details, strlen(details));
- resp->status.details.arg = slice;
- resp->status.details.funcs.encode = encode_string_or_bytes_cb;
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_out_frames(grpc_gcp_handshaker_resp* resp,
- const char* out_frames,
- size_t size) {
- if (resp == nullptr || out_frames == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to "
- "grpc_gcp_handshaker_resp_set_out_frames().");
- return false;
- }
- grpc_slice* slice = create_slice(out_frames, size);
- resp->out_frames.arg = slice;
- resp->out_frames.funcs.encode = encode_string_or_bytes_cb;
- return true;
-}
-
-bool grpc_gcp_handshaker_resp_set_bytes_consumed(grpc_gcp_handshaker_resp* resp,
- int32_t bytes_consumed) {
- if (resp == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr argument to "
- "grpc_gcp_handshaker_resp_set_bytes_consumed().");
- return false;
- }
- resp->has_bytes_consumed = true;
- resp->bytes_consumed = bytes_consumed;
- return true;
-}
-
bool grpc_gcp_handshaker_resp_set_peer_rpc_versions(
- grpc_gcp_handshaker_resp* resp, uint32_t max_major, uint32_t max_minor,
- uint32_t min_major, uint32_t min_minor) {
+ grpc_gcp_HandshakerResp* resp, upb_arena* arena, uint32_t max_major,
+ uint32_t max_minor, uint32_t min_major, uint32_t min_minor) {
if (resp == nullptr) {
gpr_log(GPR_ERROR,
"Invalid nullptr argument to "
"grpc_gcp_handshaker_resp_set_peer_rpc_versions().");
return false;
}
- resp->has_result = true;
- resp->result.has_peer_rpc_versions = true;
- grpc_gcp_rpc_protocol_versions* versions = &resp->result.peer_rpc_versions;
- versions->has_max_rpc_version = true;
- versions->has_min_rpc_version = true;
- versions->max_rpc_version.has_major = true;
- versions->max_rpc_version.has_minor = true;
- versions->min_rpc_version.has_major = true;
- versions->min_rpc_version.has_minor = true;
- versions->max_rpc_version.major = max_major;
- versions->max_rpc_version.minor = max_minor;
- versions->min_rpc_version.major = min_major;
- versions->min_rpc_version.minor = min_minor;
+ grpc_gcp_rpc_protocol_versions versions;
+ versions.max_rpc_version.major = max_major;
+ versions.max_rpc_version.minor = max_minor;
+ versions.min_rpc_version.major = min_major;
+ versions.min_rpc_version.minor = min_minor;
+ grpc_gcp_HandshakerResult* result =
+ grpc_gcp_HandshakerResp_mutable_result(resp, arena);
+ grpc_gcp_RpcProtocolVersions* upb_versions =
+ grpc_gcp_HandshakerResult_mutable_peer_rpc_versions(result, arena);
+ grpc_gcp_RpcProtocolVersions_assign_from_struct(upb_versions, arena,
+ &versions);
return true;
}
-bool grpc_gcp_handshaker_resp_encode(grpc_gcp_handshaker_resp* resp,
- grpc_slice* slice) {
- if (resp == nullptr || slice == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr arguments to grpc_gcp_handshaker_resp_encode().");
- return false;
+grpc_gcp_HandshakerReq* grpc_gcp_handshaker_req_decode(grpc_slice slice,
+ upb_arena* arena) {
+ size_t buf_size = GPR_SLICE_LENGTH(slice);
+ void* buf = upb_arena_malloc(arena, buf_size);
+ memcpy(buf, reinterpret_cast<const char*>(GPR_SLICE_START_PTR(slice)),
+ buf_size);
+ grpc_gcp_HandshakerReq* resp = grpc_gcp_HandshakerReq_parse(
+ reinterpret_cast<char*>(buf), buf_size, arena);
+ if (!resp) {
+ gpr_log(GPR_ERROR, "grpc_gcp_HandshakerReq decode error");
+ return nullptr;
}
- pb_ostream_t size_stream;
- memset(&size_stream, 0, sizeof(pb_ostream_t));
- if (!pb_encode(&size_stream, grpc_gcp_HandshakerResp_fields, resp)) {
- gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&size_stream));
- return false;
- }
- size_t encoded_length = size_stream.bytes_written;
- *slice = grpc_slice_malloc(encoded_length);
- pb_ostream_t output_stream =
- pb_ostream_from_buffer(GRPC_SLICE_START_PTR(*slice), encoded_length);
- if (!pb_encode(&output_stream, grpc_gcp_HandshakerResp_fields, resp)) {
- gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&size_stream));
- return false;
- }
- return true;
-}
-
-bool grpc_gcp_handshaker_req_decode(grpc_slice slice,
- grpc_gcp_handshaker_req* req) {
- if (req == nullptr) {
- gpr_log(GPR_ERROR,
- "Invalid nullptr argument to grpc_gcp_handshaker_req_decode().");
- return false;
- }
- pb_istream_t stream = pb_istream_from_buffer(GRPC_SLICE_START_PTR(slice),
- GRPC_SLICE_LENGTH(slice));
- req->next.in_bytes.funcs.decode = decode_string_or_bytes_cb;
- if (!pb_decode(&stream, grpc_gcp_HandshakerReq_fields, req)) {
- gpr_log(GPR_ERROR, "nanopb error: %s", PB_GET_ERROR(&stream));
- return false;
- }
- return true;
-}
-
-/* Check equality of a pair of grpc_slice fields. */
-static bool slice_equals(grpc_slice* l_slice, grpc_slice* r_slice) {
- if (l_slice == nullptr && r_slice == nullptr) {
- return true;
- }
- if (l_slice != nullptr && r_slice != nullptr) {
- return grpc_slice_eq(*l_slice, *r_slice);
- }
- return false;
+ return resp;
}
/* Check equality of a pair of grpc_gcp_identity fields. */
-static bool handshaker_identity_equals(const grpc_gcp_identity* l_id,
- const grpc_gcp_identity* r_id) {
- if (!((l_id->hostname.arg != nullptr) != (r_id->hostname.arg != nullptr))) {
- if (l_id->hostname.arg != nullptr) {
- return slice_equals(static_cast<grpc_slice*>(l_id->hostname.arg),
- static_cast<grpc_slice*>(r_id->hostname.arg));
- }
- } else {
+static bool handshaker_identity_equals(const grpc_gcp_Identity* l_id,
+ const grpc_gcp_Identity* r_id) {
+ if ((grpc_gcp_Identity_has_service_account(l_id) !=
+ grpc_gcp_Identity_has_service_account(r_id)) ||
+ (grpc_gcp_Identity_has_hostname(l_id) !=
+ grpc_gcp_Identity_has_hostname(r_id))) {
return false;
}
- if (!((l_id->service_account.arg != nullptr) !=
- (r_id->service_account.arg != nullptr))) {
- if (l_id->service_account.arg != nullptr) {
- return slice_equals(static_cast<grpc_slice*>(l_id->service_account.arg),
- static_cast<grpc_slice*>(r_id->service_account.arg));
+
+ if (grpc_gcp_Identity_has_service_account(l_id)) {
+ if (!upb_strview_eql(grpc_gcp_Identity_service_account(l_id),
+ grpc_gcp_Identity_service_account(r_id))) {
+ return false;
}
- } else {
- return false;
+ } else if (grpc_gcp_Identity_has_hostname(l_id)) {
+ if (!upb_strview_eql(grpc_gcp_Identity_hostname(l_id),
+ grpc_gcp_Identity_hostname(r_id))) {
+ return false;
+ }
}
return true;
}
static bool handshaker_rpc_versions_equals(
- const grpc_gcp_rpc_protocol_versions* l_version,
- const grpc_gcp_rpc_protocol_versions* r_version) {
- bool result = true;
- result &=
- (l_version->max_rpc_version.major == r_version->max_rpc_version.major);
- result &=
- (l_version->max_rpc_version.minor == r_version->max_rpc_version.minor);
- result &=
- (l_version->min_rpc_version.major == r_version->min_rpc_version.major);
- result &=
- (l_version->min_rpc_version.minor == r_version->min_rpc_version.minor);
- return result;
-}
-
-/* Check equality of a pair of grpc_gcp_endpoint fields. */
-static bool handshaker_endpoint_equals(const grpc_gcp_endpoint* l_end,
- const grpc_gcp_endpoint* r_end) {
- bool result = true;
- result &= (l_end->port == r_end->port);
- result &= (l_end->protocol == r_end->protocol);
- if (!((l_end->ip_address.arg != nullptr) !=
- (r_end->ip_address.arg != nullptr))) {
- if (l_end->ip_address.arg != nullptr) {
- result &= slice_equals(static_cast<grpc_slice*>(l_end->ip_address.arg),
- static_cast<grpc_slice*>(r_end->ip_address.arg));
- }
- } else {
- return false;
- }
- return result;
-}
-/**
- * Check if a specific repeated field (i.e., target) is contained in a repeated
- * field list (i.e., head).
- */
-static bool repeated_field_list_contains_identity(
- const repeated_field* head, const repeated_field* target) {
- repeated_field* field = const_cast<repeated_field*>(head);
- while (field != nullptr) {
- if (handshaker_identity_equals(
- static_cast<const grpc_gcp_identity*>(field->data),
- static_cast<const grpc_gcp_identity*>(target->data))) {
- return true;
- }
- field = field->next;
- }
- return false;
-}
-
-static bool repeated_field_list_contains_string(const repeated_field* head,
- const repeated_field* target) {
- repeated_field* field = const_cast<repeated_field*>(head);
- while (field != nullptr) {
- if (slice_equals((grpc_slice*)field->data, (grpc_slice*)target->data)) {
- return true;
- }
- field = field->next;
- }
- return false;
-}
-
-/* Return a length of repeated field list. */
-static size_t repeated_field_list_get_length(const repeated_field* head) {
- repeated_field* field = const_cast<repeated_field*>(head);
- size_t len = 0;
- while (field != nullptr) {
- len++;
- field = field->next;
- }
- return len;
-}
-
-/**
- * Check if a pair of repeated field lists contain the same set of repeated
- * fields.
- */
-static bool repeated_field_list_equals_identity(const repeated_field* l_head,
- const repeated_field* r_head) {
- if (repeated_field_list_get_length(l_head) !=
- repeated_field_list_get_length(r_head)) {
- return false;
- }
- repeated_field* field = const_cast<repeated_field*>(l_head);
- repeated_field* head = const_cast<repeated_field*>(r_head);
- while (field != nullptr) {
- if (!repeated_field_list_contains_identity(head, field)) {
- return false;
- }
- field = field->next;
- }
- return true;
-}
-
-static bool repeated_field_list_equals_string(const repeated_field* l_head,
- const repeated_field* r_head) {
- if (repeated_field_list_get_length(l_head) !=
- repeated_field_list_get_length(r_head)) {
- return false;
- }
- repeated_field* field = const_cast<repeated_field*>(l_head);
- repeated_field* head = const_cast<repeated_field*>(r_head);
- while (field != nullptr) {
- if (!repeated_field_list_contains_string(head, field)) {
- return false;
- }
- field = field->next;
- }
- return true;
-}
-
-/* Check equality of a pair of ALTS client_start handshake requests. */
-bool grpc_gcp_handshaker_client_start_req_equals(
- grpc_gcp_start_client_handshake_req* l_req,
- grpc_gcp_start_client_handshake_req* r_req) {
- bool result = true;
- /* Compare handshake_security_protocol. */
- result &=
- l_req->handshake_security_protocol == r_req->handshake_security_protocol;
- /* Compare application_protocols, record_protocols, and target_identities. */
- result &= repeated_field_list_equals_string(
- static_cast<const repeated_field*>(l_req->application_protocols.arg),
- static_cast<const repeated_field*>(r_req->application_protocols.arg));
- result &= repeated_field_list_equals_string(
- static_cast<const repeated_field*>(l_req->record_protocols.arg),
- static_cast<const repeated_field*>(r_req->record_protocols.arg));
- result &= repeated_field_list_equals_identity(
- static_cast<const repeated_field*>(l_req->target_identities.arg),
- static_cast<const repeated_field*>(r_req->target_identities.arg));
- if ((l_req->has_local_identity ^ r_req->has_local_identity) |
- (l_req->has_local_endpoint ^ r_req->has_local_endpoint) |
- ((l_req->has_remote_endpoint ^ r_req->has_remote_endpoint)) |
- (l_req->has_rpc_versions ^ r_req->has_rpc_versions)) {
- return false;
- }
- /* Compare local_identity, local_endpoint, and remote_endpoint. */
- if (l_req->has_local_identity) {
- result &= handshaker_identity_equals(&l_req->local_identity,
- &r_req->local_identity);
- }
- if (l_req->has_local_endpoint) {
- result &= handshaker_endpoint_equals(&l_req->local_endpoint,
- &r_req->local_endpoint);
- }
- if (l_req->has_remote_endpoint) {
- result &= handshaker_endpoint_equals(&l_req->remote_endpoint,
- &r_req->remote_endpoint);
- }
- if (l_req->has_rpc_versions) {
- result &= handshaker_rpc_versions_equals(&l_req->rpc_versions,
- &r_req->rpc_versions);
- }
- return result;
-}
-
-/* Check equality of a pair of ALTS server_start handshake requests. */
-bool grpc_gcp_handshaker_server_start_req_equals(
- grpc_gcp_start_server_handshake_req* l_req,
- grpc_gcp_start_server_handshake_req* r_req) {
- bool result = true;
- /* Compare application_protocols. */
- result &= repeated_field_list_equals_string(
- static_cast<const repeated_field*>(l_req->application_protocols.arg),
- static_cast<const repeated_field*>(r_req->application_protocols.arg));
- /* Compare handshake_parameters. */
- size_t i = 0, j = 0;
- result &=
- (l_req->handshake_parameters_count == r_req->handshake_parameters_count);
- for (i = 0; i < l_req->handshake_parameters_count; i++) {
- bool found = false;
- for (j = 0; j < r_req->handshake_parameters_count; j++) {
- if (l_req->handshake_parameters[i].key ==
- r_req->handshake_parameters[j].key) {
- found = true;
- result &= repeated_field_list_equals_string(
- static_cast<const repeated_field*>(
- l_req->handshake_parameters[i].value.record_protocols.arg),
- static_cast<const repeated_field*>(
- r_req->handshake_parameters[j].value.record_protocols.arg));
- result &= repeated_field_list_equals_identity(
- static_cast<const repeated_field*>(
- l_req->handshake_parameters[i].value.local_identities.arg),
- static_cast<const repeated_field*>(
- r_req->handshake_parameters[j].value.local_identities.arg));
- }
- }
- if (!found) {
- return false;
- }
- }
- /* Compare in_bytes, local_endpoint, remote_endpoint. */
- result &= slice_equals(static_cast<grpc_slice*>(l_req->in_bytes.arg),
- static_cast<grpc_slice*>(r_req->in_bytes.arg));
- if ((l_req->has_local_endpoint ^ r_req->has_local_endpoint) |
- (l_req->has_remote_endpoint ^ r_req->has_remote_endpoint) |
- (l_req->has_rpc_versions ^ r_req->has_rpc_versions))
- return false;
- if (l_req->has_local_endpoint) {
- result &= handshaker_endpoint_equals(&l_req->local_endpoint,
- &r_req->local_endpoint);
- }
- if (l_req->has_remote_endpoint) {
- result &= handshaker_endpoint_equals(&l_req->remote_endpoint,
- &r_req->remote_endpoint);
- }
- if (l_req->has_rpc_versions) {
- result &= handshaker_rpc_versions_equals(&l_req->rpc_versions,
- &r_req->rpc_versions);
- }
- return result;
-}
-
-/* Check equality of a pair of ALTS handshake requests. */
-bool grpc_gcp_handshaker_req_equals(grpc_gcp_handshaker_req* l_req,
- grpc_gcp_handshaker_req* r_req) {
- if (l_req->has_next && r_req->has_next) {
- return slice_equals(static_cast<grpc_slice*>(l_req->next.in_bytes.arg),
- static_cast<grpc_slice*>(r_req->next.in_bytes.arg));
- } else if (l_req->has_client_start && r_req->has_client_start) {
- return grpc_gcp_handshaker_client_start_req_equals(&l_req->client_start,
- &r_req->client_start);
- } else if (l_req->has_server_start && r_req->has_server_start) {
- return grpc_gcp_handshaker_server_start_req_equals(&l_req->server_start,
- &r_req->server_start);
- }
- return false;
-}
-
-/* Check equality of a pair of ALTS handshake results. */
-bool grpc_gcp_handshaker_resp_result_equals(
- grpc_gcp_handshaker_result* l_result,
- grpc_gcp_handshaker_result* r_result) {
- bool result = true;
- /* Compare application_protocol, record_protocol, and key_data. */
- result &= slice_equals(
- static_cast<grpc_slice*>(l_result->application_protocol.arg),
- static_cast<grpc_slice*>(r_result->application_protocol.arg));
- result &=
- slice_equals(static_cast<grpc_slice*>(l_result->record_protocol.arg),
- static_cast<grpc_slice*>(r_result->record_protocol.arg));
- result &= slice_equals(static_cast<grpc_slice*>(l_result->key_data.arg),
- static_cast<grpc_slice*>(r_result->key_data.arg));
- /* Compare local_identity, peer_identity, and keep_channel_open. */
- if ((l_result->has_local_identity ^ r_result->has_local_identity) |
- (l_result->has_peer_identity ^ r_result->has_peer_identity) |
- (l_result->has_peer_rpc_versions ^ r_result->has_peer_rpc_versions)) {
- return false;
- }
- if (l_result->has_local_identity) {
- result &= handshaker_identity_equals(&l_result->local_identity,
- &r_result->local_identity);
- }
- if (l_result->has_peer_identity) {
- result &= handshaker_identity_equals(&l_result->peer_identity,
- &r_result->peer_identity);
- }
- if (l_result->has_peer_rpc_versions) {
- result &= handshaker_rpc_versions_equals(&l_result->peer_rpc_versions,
- &r_result->peer_rpc_versions);
- }
- result &= (l_result->keep_channel_open == r_result->keep_channel_open);
- return result;
+ const grpc_gcp_RpcProtocolVersions* l_version,
+ const grpc_gcp_RpcProtocolVersions* r_version) {
+ const grpc_gcp_RpcProtocolVersions_Version* l_maxver =
+ grpc_gcp_RpcProtocolVersions_max_rpc_version(l_version);
+ const grpc_gcp_RpcProtocolVersions_Version* r_maxver =
+ grpc_gcp_RpcProtocolVersions_max_rpc_version(r_version);
+ const grpc_gcp_RpcProtocolVersions_Version* l_minver =
+ grpc_gcp_RpcProtocolVersions_min_rpc_version(l_version);
+ const grpc_gcp_RpcProtocolVersions_Version* r_minver =
+ grpc_gcp_RpcProtocolVersions_min_rpc_version(r_version);
+ return (grpc_gcp_RpcProtocolVersions_Version_major(l_maxver) ==
+ grpc_gcp_RpcProtocolVersions_Version_major(r_maxver)) &&
+ (grpc_gcp_RpcProtocolVersions_Version_minor(l_maxver) ==
+ grpc_gcp_RpcProtocolVersions_Version_minor(r_maxver)) &&
+ (grpc_gcp_RpcProtocolVersions_Version_major(l_minver) ==
+ grpc_gcp_RpcProtocolVersions_Version_major(r_minver)) &&
+ (grpc_gcp_RpcProtocolVersions_Version_minor(l_minver) ==
+ grpc_gcp_RpcProtocolVersions_Version_minor(r_minver));
}
/* Check equality of a pair of ALTS handshake responses. */
-bool grpc_gcp_handshaker_resp_equals(grpc_gcp_handshaker_resp* l_resp,
- grpc_gcp_handshaker_resp* r_resp) {
- bool result = true;
- /* Compare out_frames and bytes_consumed. */
- result &= slice_equals(static_cast<grpc_slice*>(l_resp->out_frames.arg),
- static_cast<grpc_slice*>(r_resp->out_frames.arg));
- result &= (l_resp->bytes_consumed == r_resp->bytes_consumed);
- /* Compare result and status. */
- if ((l_resp->has_result ^ r_resp->has_result) |
- (l_resp->has_status ^ r_resp->has_status)) {
+bool grpc_gcp_handshaker_resp_equals(const grpc_gcp_HandshakerResp* l_resp,
+ const grpc_gcp_HandshakerResp* r_resp) {
+ return upb_strview_eql(grpc_gcp_HandshakerResp_out_frames(l_resp),
+ grpc_gcp_HandshakerResp_out_frames(r_resp)) &&
+ (grpc_gcp_HandshakerResp_bytes_consumed(l_resp) ==
+ grpc_gcp_HandshakerResp_bytes_consumed(l_resp)) &&
+ grpc_gcp_handshaker_resp_result_equals(
+ grpc_gcp_HandshakerResp_result(l_resp),
+ grpc_gcp_HandshakerResp_result(r_resp)) &&
+ grpc_gcp_handshaker_resp_status_equals(
+ grpc_gcp_HandshakerResp_status(l_resp),
+ grpc_gcp_HandshakerResp_status(r_resp));
+}
+
+/* This method checks equality of two handshaker response results. */
+bool grpc_gcp_handshaker_resp_result_equals(
+ const grpc_gcp_HandshakerResult* l_result,
+ const grpc_gcp_HandshakerResult* r_result) {
+ if (l_result == nullptr && r_result == nullptr) {
+ return true;
+ } else if ((l_result != nullptr && r_result == nullptr) ||
+ (l_result == nullptr && r_result != nullptr)) {
return false;
}
- if (l_resp->has_result) {
- result &= grpc_gcp_handshaker_resp_result_equals(&l_resp->result,
- &r_resp->result);
+ return upb_strview_eql(
+ grpc_gcp_HandshakerResult_application_protocol(l_result),
+ grpc_gcp_HandshakerResult_application_protocol(r_result)) &&
+ upb_strview_eql(grpc_gcp_HandshakerResult_record_protocol(l_result),
+ grpc_gcp_HandshakerResult_record_protocol(r_result)) &&
+ upb_strview_eql(grpc_gcp_HandshakerResult_key_data(l_result),
+ grpc_gcp_HandshakerResult_key_data(r_result)) &&
+ handshaker_identity_equals(
+ grpc_gcp_HandshakerResult_peer_identity(l_result),
+ grpc_gcp_HandshakerResult_peer_identity(r_result)) &&
+ handshaker_identity_equals(
+ grpc_gcp_HandshakerResult_local_identity(l_result),
+ grpc_gcp_HandshakerResult_local_identity(r_result)) &&
+ (grpc_gcp_HandshakerResult_keep_channel_open(l_result) ==
+ grpc_gcp_HandshakerResult_keep_channel_open(r_result)) &&
+ handshaker_rpc_versions_equals(
+ grpc_gcp_HandshakerResult_peer_rpc_versions(l_result),
+ grpc_gcp_HandshakerResult_peer_rpc_versions(r_result));
+}
+
+/* This method checks equality of two handshaker response statuses. */
+bool grpc_gcp_handshaker_resp_status_equals(
+ const grpc_gcp_HandshakerStatus* l_status,
+ const grpc_gcp_HandshakerStatus* r_status) {
+ if (l_status == nullptr && r_status == nullptr) {
+ return true;
+ } else if ((l_status != nullptr && r_status == nullptr) ||
+ (l_status == nullptr && r_status != nullptr)) {
+ return false;
}
- if (l_resp->has_status) {
- result &= (l_resp->status.code == r_resp->status.code);
- result &=
- slice_equals(static_cast<grpc_slice*>(l_resp->status.details.arg),
- static_cast<grpc_slice*>(r_resp->status.details.arg));
- }
- return result;
+ return (grpc_gcp_HandshakerStatus_code(l_status) ==
+ grpc_gcp_HandshakerStatus_code(r_status)) &&
+ upb_strview_eql(grpc_gcp_HandshakerStatus_details(l_status),
+ grpc_gcp_HandshakerStatus_details(r_status));
}
diff --git a/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.h b/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.h
index 2fcbb4e..d0a7cc8 100644
--- a/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.h
+++ b/test/core/tsi/alts/handshaker/alts_handshaker_service_api_test_lib.h
@@ -19,9 +19,8 @@
#ifndef GRPC_TEST_CORE_TSI_ALTS_HANDSHAKER_ALTS_HANDSHAKER_SERVICE_API_TEST_LIB_H
#define GRPC_TEST_CORE_TSI_ALTS_HANDSHAKER_ALTS_HANDSHAKER_SERVICE_API_TEST_LIB_H
-#include "src/core/tsi/alts/handshaker/alts_handshaker_service_api.h"
-#include "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h"
#include "src/core/tsi/alts/handshaker/transport_security_common_api.h"
+#include "src/proto/grpc/gcp/handshaker.upb.h"
/**
* The first part of this file contains function signatures for de-serializing
@@ -30,114 +29,27 @@
* service.
*/
-/**
- * This method creates a ALTS handshaker request that is used to hold
- * de-serialized result.
- */
-grpc_gcp_handshaker_req* grpc_gcp_handshaker_decoded_req_create(
- grpc_gcp_handshaker_req_type type);
-
-/* This method de-serializes a ALTS handshaker request. */
-bool grpc_gcp_handshaker_req_decode(grpc_slice slice,
- grpc_gcp_handshaker_req* req);
-
-/* This method serializes a ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_encode(grpc_gcp_handshaker_resp* resp,
- grpc_slice* slice);
-
-/* This method sets application protocol of ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_application_protocol(
- grpc_gcp_handshaker_resp* resp, const char* application_protocol);
-
-/* This method sets record protocol of ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_record_protocol(
- grpc_gcp_handshaker_resp* resp, const char* record_protocol);
-
-/* This method sets key_data of ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_key_data(grpc_gcp_handshaker_resp* resp,
- const char* key_data, size_t size);
-
-/* This method sets local identity's hostname for ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_local_identity_hostname(
- grpc_gcp_handshaker_resp* resp, const char* hostname);
-
-/**
- * This method sets local identity's service account for ALTS handshaker
- * response.
- */
-bool grpc_gcp_handshaker_resp_set_local_identity_service_account(
- grpc_gcp_handshaker_resp* resp, const char* service_account);
-
-/* This method sets peer identity's hostname for ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_peer_identity_hostname(
- grpc_gcp_handshaker_resp* resp, const char* hostname);
-
-/**
- * This method sets peer identity's service account for ALTS handshaker
- * response.
- */
-bool grpc_gcp_handshaker_resp_set_peer_identity_service_account(
- grpc_gcp_handshaker_resp* resp, const char* service_account);
-
-/* This method sets keep_channel_open for ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_channel_open(grpc_gcp_handshaker_resp* resp,
- bool keep_channel_open);
-
-/* This method sets code for ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_code(grpc_gcp_handshaker_resp* resp,
- uint32_t code);
-
-/* This method sets details for ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_details(grpc_gcp_handshaker_resp* resp,
- const char* details);
-
-/* This method sets out_frames for ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_out_frames(grpc_gcp_handshaker_resp* resp,
- const char* out_frames,
- size_t size);
-
/* This method sets peer_rpc_versions for ALTS handshaker response. */
bool grpc_gcp_handshaker_resp_set_peer_rpc_versions(
- grpc_gcp_handshaker_resp* resp, uint32_t max_major, uint32_t max_minor,
- uint32_t min_major, uint32_t min_minor);
-
-/* This method sets bytes_consumed for ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_set_bytes_consumed(grpc_gcp_handshaker_resp* resp,
- int32_t bytes_consumed);
-
-/* This method serializes ALTS handshaker response. */
-bool grpc_gcp_handshaker_resp_encode(grpc_gcp_handshaker_resp* resp,
- grpc_slice* slice);
+ grpc_gcp_HandshakerResp* resp, upb_arena* arena, uint32_t max_major,
+ uint32_t max_minor, uint32_t min_major, uint32_t min_minor);
/* This method de-serializes ALTS handshaker request. */
-bool grpc_gcp_handshaker_req_decode(grpc_slice slice,
- grpc_gcp_handshaker_req* req);
+grpc_gcp_HandshakerReq* grpc_gcp_handshaker_req_decode(grpc_slice slice,
+ upb_arena* arena);
-/**
- * The second part contains function signatures for checking equality of a pair
- * of ALTS handshake requests/responses.
- */
-
-/* This method checks equality of two client_start handshaker requests. */
-bool grpc_gcp_handshaker_client_start_req_equals(
- grpc_gcp_start_client_handshake_req* l_req,
- grpc_gcp_start_client_handshake_req* r_req);
-
-/* This method checks equality of two server_start handshaker requests. */
-bool grpc_gcp_handshaker_server_start_req_equals(
- grpc_gcp_start_server_handshake_req* l_req,
- grpc_gcp_start_server_handshake_req* r_req);
-
-/* This method checks equality of two ALTS handshaker requests. */
-bool grpc_gcp_handshaker_req_equals(grpc_gcp_handshaker_req* l_req,
- grpc_gcp_handshaker_req* r_req);
+/* This method checks equality of two ALTS handshaker responses. */
+bool grpc_gcp_handshaker_resp_equals(const grpc_gcp_HandshakerResp* l_resp,
+ const grpc_gcp_HandshakerResp* r_resp);
/* This method checks equality of two handshaker response results. */
bool grpc_gcp_handshaker_resp_result_equals(
- grpc_gcp_handshaker_result* l_result, grpc_gcp_handshaker_result* r_result);
+ const grpc_gcp_HandshakerResult* l_result,
+ const grpc_gcp_HandshakerResult* r_result);
-/* This method checks equality of two ALTS handshaker responses. */
-bool grpc_gcp_handshaker_resp_equals(grpc_gcp_handshaker_resp* l_resp,
- grpc_gcp_handshaker_resp* r_resp);
+/* This method checks equality of two handshaker response statuses. */
+bool grpc_gcp_handshaker_resp_status_equals(
+ const grpc_gcp_HandshakerStatus* l_status,
+ const grpc_gcp_HandshakerStatus* r_status);
#endif // GRPC_TEST_CORE_TSI_ALTS_HANDSHAKER_ALTS_HANDSHAKER_SERVICE_API_TEST_LIB_H
diff --git a/test/core/tsi/alts/handshaker/alts_tsi_handshaker_test.cc b/test/core/tsi/alts/handshaker/alts_tsi_handshaker_test.cc
index 316ff13..3773137 100644
--- a/test/core/tsi/alts/handshaker/alts_tsi_handshaker_test.cc
+++ b/test/core/tsi/alts/handshaker/alts_tsi_handshaker_test.cc
@@ -110,55 +110,64 @@
*/
static grpc_byte_buffer* generate_handshaker_response(
alts_handshaker_response_type type) {
- grpc_gcp_handshaker_resp* resp = grpc_gcp_handshaker_resp_create();
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_code(resp, 0));
+ upb::Arena arena;
+ grpc_gcp_HandshakerResult* result;
+ grpc_gcp_Identity* peer_identity;
+ grpc_gcp_HandshakerResp* resp = grpc_gcp_HandshakerResp_new(arena.ptr());
+ grpc_gcp_HandshakerStatus* status =
+ grpc_gcp_HandshakerResp_mutable_status(resp, arena.ptr());
+ grpc_gcp_HandshakerStatus_set_code(status, 0);
switch (type) {
case INVALID:
break;
case CLIENT_START:
case SERVER_START:
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_out_frames(
- resp, ALTS_TSI_HANDSHAKER_TEST_OUT_FRAME,
- strlen(ALTS_TSI_HANDSHAKER_TEST_OUT_FRAME)));
+ grpc_gcp_HandshakerResp_set_out_frames(
+ resp, upb_strview_makez(ALTS_TSI_HANDSHAKER_TEST_OUT_FRAME));
break;
case CLIENT_NEXT:
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_out_frames(
- resp, ALTS_TSI_HANDSHAKER_TEST_OUT_FRAME,
- strlen(ALTS_TSI_HANDSHAKER_TEST_OUT_FRAME)));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_peer_identity_service_account(
- resp, ALTS_TSI_HANDSHAKER_TEST_PEER_IDENTITY));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_bytes_consumed(
- resp, strlen(ALTS_TSI_HANDSHAKER_TEST_CONSUMED_BYTES)));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_key_data(
- resp, ALTS_TSI_HANDSHAKER_TEST_KEY_DATA,
- strlen(ALTS_TSI_HANDSHAKER_TEST_KEY_DATA)));
+ grpc_gcp_HandshakerResp_set_out_frames(
+ resp, upb_strview_makez(ALTS_TSI_HANDSHAKER_TEST_OUT_FRAME));
+ grpc_gcp_HandshakerResp_set_bytes_consumed(
+ resp, strlen(ALTS_TSI_HANDSHAKER_TEST_CONSUMED_BYTES));
+ result = grpc_gcp_HandshakerResp_mutable_result(resp, arena.ptr());
+ peer_identity =
+ grpc_gcp_HandshakerResult_mutable_peer_identity(result, arena.ptr());
+ grpc_gcp_Identity_set_service_account(
+ peer_identity,
+ upb_strview_makez(ALTS_TSI_HANDSHAKER_TEST_PEER_IDENTITY));
+ grpc_gcp_HandshakerResult_set_key_data(
+ result, upb_strview_makez(ALTS_TSI_HANDSHAKER_TEST_KEY_DATA));
GPR_ASSERT(grpc_gcp_handshaker_resp_set_peer_rpc_versions(
- resp, ALTS_TSI_HANDSHAKER_TEST_MAX_RPC_VERSION_MAJOR,
+ resp, arena.ptr(), ALTS_TSI_HANDSHAKER_TEST_MAX_RPC_VERSION_MAJOR,
ALTS_TSI_HANDSHAKER_TEST_MAX_RPC_VERSION_MINOR,
ALTS_TSI_HANDSHAKER_TEST_MIN_RPC_VERSION_MAJOR,
ALTS_TSI_HANDSHAKER_TEST_MIN_RPC_VERSION_MINOR));
break;
case SERVER_NEXT:
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_peer_identity_service_account(
- resp, ALTS_TSI_HANDSHAKER_TEST_PEER_IDENTITY));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_bytes_consumed(
- resp, strlen(ALTS_TSI_HANDSHAKER_TEST_OUT_FRAME)));
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_key_data(
- resp, ALTS_TSI_HANDSHAKER_TEST_KEY_DATA,
- strlen(ALTS_TSI_HANDSHAKER_TEST_KEY_DATA)));
+ grpc_gcp_HandshakerResp_set_bytes_consumed(
+ resp, strlen(ALTS_TSI_HANDSHAKER_TEST_OUT_FRAME));
+ result = grpc_gcp_HandshakerResp_mutable_result(resp, arena.ptr());
+ peer_identity =
+ grpc_gcp_HandshakerResult_mutable_peer_identity(result, arena.ptr());
+ grpc_gcp_Identity_set_service_account(
+ peer_identity,
+ upb_strview_makez(ALTS_TSI_HANDSHAKER_TEST_PEER_IDENTITY));
+ grpc_gcp_HandshakerResult_set_key_data(
+ result, upb_strview_makez(ALTS_TSI_HANDSHAKER_TEST_KEY_DATA));
GPR_ASSERT(grpc_gcp_handshaker_resp_set_peer_rpc_versions(
- resp, ALTS_TSI_HANDSHAKER_TEST_MAX_RPC_VERSION_MAJOR,
+ resp, arena.ptr(), ALTS_TSI_HANDSHAKER_TEST_MAX_RPC_VERSION_MAJOR,
ALTS_TSI_HANDSHAKER_TEST_MAX_RPC_VERSION_MINOR,
ALTS_TSI_HANDSHAKER_TEST_MIN_RPC_VERSION_MAJOR,
ALTS_TSI_HANDSHAKER_TEST_MIN_RPC_VERSION_MINOR));
break;
case FAILED:
- GPR_ASSERT(
- grpc_gcp_handshaker_resp_set_code(resp, 3 /* INVALID ARGUMENT */));
+ grpc_gcp_HandshakerStatus_set_code(status, 3 /* INVALID ARGUMENT */);
break;
}
- grpc_slice slice;
- GPR_ASSERT(grpc_gcp_handshaker_resp_encode(resp, &slice));
+ size_t buf_len;
+ char* buf = grpc_gcp_HandshakerResp_serialize(resp, arena.ptr(), &buf_len);
+ grpc_slice slice = gpr_slice_from_copied_buffer(buf, buf_len);
if (type == INVALID) {
grpc_slice bad_slice =
grpc_slice_split_head(&slice, GRPC_SLICE_LENGTH(slice) - 1);
@@ -169,7 +178,6 @@
grpc_byte_buffer* buffer =
grpc_raw_byte_buffer_create(&slice, 1 /* number of slices */);
grpc_slice_unref(slice);
- grpc_gcp_handshaker_resp_destroy(resp);
return buffer;
}
diff --git a/test/core/tsi/alts/handshaker/alts_tsi_utils_test.cc b/test/core/tsi/alts/handshaker/alts_tsi_utils_test.cc
index 8d75d35..9b4c9f8 100644
--- a/test/core/tsi/alts/handshaker/alts_tsi_utils_test.cc
+++ b/test/core/tsi/alts/handshaker/alts_tsi_utils_test.cc
@@ -36,18 +36,20 @@
}
static void deserialize_response_test() {
- grpc_gcp_handshaker_resp* resp = grpc_gcp_handshaker_resp_create();
- GPR_ASSERT(grpc_gcp_handshaker_resp_set_out_frames(
- resp, ALTS_TSI_UTILS_TEST_OUT_FRAME,
- strlen(ALTS_TSI_UTILS_TEST_OUT_FRAME)));
- grpc_slice slice;
- GPR_ASSERT(grpc_gcp_handshaker_resp_encode(resp, &slice));
+ upb::Arena arena;
+ grpc_gcp_HandshakerResp* resp = grpc_gcp_HandshakerResp_new(arena.ptr());
+ grpc_gcp_HandshakerResp_set_out_frames(
+ resp, upb_strview_makez(ALTS_TSI_UTILS_TEST_OUT_FRAME));
+ size_t buf_len;
+ char* buf = grpc_gcp_HandshakerResp_serialize(resp, arena.ptr(), &buf_len);
+ grpc_slice slice = grpc_slice_from_copied_buffer(buf, buf_len);
/* Valid serialization. */
+ upb::Arena arena2;
grpc_byte_buffer* buffer =
grpc_raw_byte_buffer_create(&slice, 1 /* number of slices */);
- grpc_gcp_handshaker_resp* decoded_resp =
- alts_tsi_utils_deserialize_response(buffer);
+ grpc_gcp_HandshakerResp* decoded_resp =
+ alts_tsi_utils_deserialize_response(buffer, arena2.ptr());
GPR_ASSERT(grpc_gcp_handshaker_resp_equals(resp, decoded_resp));
grpc_byte_buffer_destroy(buffer);
@@ -55,14 +57,13 @@
grpc_slice bad_slice =
grpc_slice_split_head(&slice, GRPC_SLICE_LENGTH(slice) - 1);
buffer = grpc_raw_byte_buffer_create(&bad_slice, 1 /* number of slices */);
- GPR_ASSERT(alts_tsi_utils_deserialize_response(buffer) == nullptr);
+ GPR_ASSERT(alts_tsi_utils_deserialize_response(buffer, arena2.ptr()) ==
+ nullptr);
/* Clean up. */
grpc_slice_unref(slice);
grpc_slice_unref(bad_slice);
grpc_byte_buffer_destroy(buffer);
- grpc_gcp_handshaker_resp_destroy(resp);
- grpc_gcp_handshaker_resp_destroy(decoded_resp);
}
int main(int argc, char** argv) {
diff --git a/test/core/tsi/alts/handshaker/transport_security_common_api_test.cc b/test/core/tsi/alts/handshaker/transport_security_common_api_test.cc
index 6ff1357..a2c3d48 100644
--- a/test/core/tsi/alts/handshaker/transport_security_common_api_test.cc
+++ b/test/core/tsi/alts/handshaker/transport_security_common_api_test.cc
@@ -31,25 +31,17 @@
grpc_gcp_rpc_protocol_versions* l_versions,
grpc_gcp_rpc_protocol_versions* r_versions) {
GPR_ASSERT(l_versions != nullptr && r_versions != nullptr);
- if ((l_versions->has_max_rpc_version ^ r_versions->has_max_rpc_version) |
- (l_versions->has_min_rpc_version ^ r_versions->has_min_rpc_version)) {
+ if ((l_versions->max_rpc_version.major !=
+ r_versions->max_rpc_version.major) ||
+ (l_versions->max_rpc_version.minor !=
+ r_versions->max_rpc_version.minor)) {
return false;
}
- if (l_versions->has_max_rpc_version) {
- if ((l_versions->max_rpc_version.major !=
- r_versions->max_rpc_version.major) ||
- (l_versions->max_rpc_version.minor !=
- r_versions->max_rpc_version.minor)) {
- return false;
- }
- }
- if (l_versions->has_min_rpc_version) {
- if ((l_versions->min_rpc_version.major !=
- r_versions->min_rpc_version.major) ||
- (l_versions->min_rpc_version.minor !=
- r_versions->min_rpc_version.minor)) {
- return false;
- }
+ if ((l_versions->min_rpc_version.major !=
+ r_versions->min_rpc_version.major) ||
+ (l_versions->min_rpc_version.minor !=
+ r_versions->min_rpc_version.minor)) {
+ return false;
}
return true;
}
@@ -61,25 +53,14 @@
&version, kMaxRpcVersionMajor, kMaxRpcVersionMinor));
GPR_ASSERT(grpc_gcp_rpc_protocol_versions_set_min(
&version, kMinRpcVersionMajor, kMinRpcVersionMinor));
- /* Serializes to raw bytes. */
- size_t encoded_length =
- grpc_gcp_rpc_protocol_versions_encode_length(&version);
- uint8_t* encoded_bytes = static_cast<uint8_t*>(gpr_malloc(encoded_length));
- GPR_ASSERT(grpc_gcp_rpc_protocol_versions_encode_to_raw_bytes(
- &version, encoded_bytes, encoded_length));
- grpc_slice encoded_slice;
/* Serializes to grpc slice. */
+ grpc_slice encoded_slice;
GPR_ASSERT(grpc_gcp_rpc_protocol_versions_encode(&version, &encoded_slice));
- /* Checks serialized raw bytes and serialized grpc slice have same content. */
- GPR_ASSERT(encoded_length == GRPC_SLICE_LENGTH(encoded_slice));
- GPR_ASSERT(memcmp(encoded_bytes, GRPC_SLICE_START_PTR(encoded_slice),
- encoded_length) == 0);
/* Deserializes and compares with the original version. */
GPR_ASSERT(
grpc_gcp_rpc_protocol_versions_decode(encoded_slice, &decoded_version));
GPR_ASSERT(grpc_gcp_rpc_protocol_versions_equal(&version, &decoded_version));
grpc_slice_unref(encoded_slice);
- gpr_free(encoded_bytes);
}
static void test_failure() {
@@ -90,24 +71,14 @@
nullptr, kMaxRpcVersionMajor, kMaxRpcVersionMinor));
GPR_ASSERT(!grpc_gcp_rpc_protocol_versions_set_min(
nullptr, kMinRpcVersionMajor, kMinRpcVersionMinor));
- GPR_ASSERT(grpc_gcp_rpc_protocol_versions_encode_length(nullptr) == 0);
GPR_ASSERT(grpc_gcp_rpc_protocol_versions_set_max(
&version, kMaxRpcVersionMajor, kMaxRpcVersionMinor));
GPR_ASSERT(grpc_gcp_rpc_protocol_versions_set_min(
&version, kMinRpcVersionMajor, kMinRpcVersionMinor));
- size_t encoded_length =
- grpc_gcp_rpc_protocol_versions_encode_length(&version);
- uint8_t* encoded_bytes = static_cast<uint8_t*>(gpr_malloc(encoded_length));
- GPR_ASSERT(!grpc_gcp_rpc_protocol_versions_encode_to_raw_bytes(
- nullptr, encoded_bytes, encoded_length));
- GPR_ASSERT(!grpc_gcp_rpc_protocol_versions_encode_to_raw_bytes(
- &version, nullptr, encoded_length));
- GPR_ASSERT(!grpc_gcp_rpc_protocol_versions_encode_to_raw_bytes(
- &version, encoded_bytes, 0));
GPR_ASSERT(!grpc_gcp_rpc_protocol_versions_encode(nullptr, &encoded_slice));
GPR_ASSERT(!grpc_gcp_rpc_protocol_versions_encode(&version, nullptr));
GPR_ASSERT(!grpc_gcp_rpc_protocol_versions_decode(encoded_slice, nullptr));
- /* Test for nanopb decode. */
+ /* Test for upb decode. */
GPR_ASSERT(grpc_gcp_rpc_protocol_versions_encode(&version, &encoded_slice));
grpc_slice bad_slice = grpc_slice_split_head(
&encoded_slice, GRPC_SLICE_LENGTH(encoded_slice) - 1);
@@ -115,7 +86,6 @@
GPR_ASSERT(
!grpc_gcp_rpc_protocol_versions_decode(bad_slice, &decoded_version));
grpc_slice_unref(bad_slice);
- gpr_free(encoded_bytes);
}
static void test_copy() {
diff --git a/tools/distrib/check_nanopb_output.sh b/tools/distrib/check_nanopb_output.sh
index 7317e84..573e02e 100755
--- a/tools/distrib/check_nanopb_output.sh
+++ b/tools/distrib/check_nanopb_output.sh
@@ -15,7 +15,6 @@
set -ex
-readonly NANOPB_ALTS_TMP_OUTPUT="$(mktemp -d)"
readonly NANOPB_HEALTH_TMP_OUTPUT="$(mktemp -d)"
readonly NANOPB_TMP_OUTPUT="$(mktemp -d)"
readonly PROTOBUF_INSTALL_PREFIX="$(mktemp -d)"
@@ -58,29 +57,3 @@
exit 2
fi
done
-
-#
-# Checks for handshaker.proto and transport_security_common.proto
-#
-readonly HANDSHAKER_GRPC_OUTPUT_PATH='src/core/tsi/alts/handshaker'
-# nanopb-compile the proto to a temp location
-./tools/codegen/core/gen_nano_proto.sh \
- src/core/tsi/alts/handshaker/proto/handshaker.proto \
- "$NANOPB_ALTS_TMP_OUTPUT" \
- "$HANDSHAKER_GRPC_OUTPUT_PATH"
-./tools/codegen/core/gen_nano_proto.sh \
- src/core/tsi/alts/handshaker/proto/transport_security_common.proto \
- "$NANOPB_ALTS_TMP_OUTPUT" \
- "$HANDSHAKER_GRPC_OUTPUT_PATH"
-./tools/codegen/core/gen_nano_proto.sh \
- src/core/tsi/alts/handshaker/proto/altscontext.proto \
- "$NANOPB_ALTS_TMP_OUTPUT" \
- "$HANDSHAKER_GRPC_OUTPUT_PATH"
-
-# compare outputs to checked compiled code
-for NANOPB_OUTPUT_FILE in $NANOPB_ALTS_TMP_OUTPUT/*.pb.*; do
- if ! diff "$NANOPB_OUTPUT_FILE" "src/core/tsi/alts/handshaker/$(basename $NANOPB_OUTPUT_FILE)"; then
- echo "Outputs differ: $NANOPB_ALTS_TMP_OUTPUT vs $HANDSHAKER_GRPC_OUTPUT_PATH"
- exit 2
- fi
-done
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 4579af5..5180fab 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -1116,6 +1116,12 @@
src/core/ext/upb-generated/google/protobuf/wrappers.upb.h \
src/core/ext/upb-generated/google/rpc/status.upb.c \
src/core/ext/upb-generated/google/rpc/status.upb.h \
+src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c \
+src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h \
+src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c \
+src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h \
+src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c \
+src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h \
src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c \
src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h \
src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c \
@@ -1598,10 +1604,6 @@
src/core/tsi/alts/frame_protector/frame_handler.h \
src/core/tsi/alts/handshaker/alts_handshaker_client.cc \
src/core/tsi/alts/handshaker/alts_handshaker_client.h \
-src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc \
-src/core/tsi/alts/handshaker/alts_handshaker_service_api.h \
-src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc \
-src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h \
src/core/tsi/alts/handshaker/alts_shared_resource.cc \
src/core/tsi/alts/handshaker/alts_shared_resource.h \
src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc \
@@ -1609,12 +1611,6 @@
src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h \
src/core/tsi/alts/handshaker/alts_tsi_utils.cc \
src/core/tsi/alts/handshaker/alts_tsi_utils.h \
-src/core/tsi/alts/handshaker/altscontext.pb.c \
-src/core/tsi/alts/handshaker/altscontext.pb.h \
-src/core/tsi/alts/handshaker/handshaker.pb.c \
-src/core/tsi/alts/handshaker/handshaker.pb.h \
-src/core/tsi/alts/handshaker/transport_security_common.pb.c \
-src/core/tsi/alts/handshaker/transport_security_common.pb.h \
src/core/tsi/alts/handshaker/transport_security_common_api.cc \
src/core/tsi/alts/handshaker/transport_security_common_api.h \
src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc \
@@ -1646,13 +1642,6 @@
src/core/tsi/transport_security_grpc.cc \
src/core/tsi/transport_security_grpc.h \
src/core/tsi/transport_security_interface.h \
-third_party/nanopb/pb.h \
-third_party/nanopb/pb_common.c \
-third_party/nanopb/pb_common.h \
-third_party/nanopb/pb_decode.c \
-third_party/nanopb/pb_decode.h \
-third_party/nanopb/pb_encode.c \
-third_party/nanopb/pb_encode.h \
third_party/upb/upb/decode.c \
third_party/upb/upb/decode.h \
third_party/upb/upb/encode.c \
diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json
index 60ba4d7..36e6ef1 100644
--- a/tools/run_tests/generated/sources_and_headers.json
+++ b/tools/run_tests/generated/sources_and_headers.json
@@ -2584,22 +2584,6 @@
"headers": [],
"is_filegroup": false,
"language": "c++",
- "name": "alts_handshaker_service_api_test",
- "src": [
- "test/core/tsi/alts/handshaker/alts_handshaker_service_api_test.cc"
- ],
- "third_party": false,
- "type": "target"
- },
- {
- "deps": [
- "alts_test_util",
- "gpr",
- "grpc"
- ],
- "headers": [],
- "is_filegroup": false,
- "language": "c++",
"name": "alts_iovec_record_protocol_test",
"src": [
"test/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol_test.cc"
@@ -8114,29 +8098,6 @@
},
{
"deps": [
- "nanopb"
- ],
- "headers": [
- "src/core/tsi/alts/handshaker/altscontext.pb.h",
- "src/core/tsi/alts/handshaker/handshaker.pb.h",
- "src/core/tsi/alts/handshaker/transport_security_common.pb.h"
- ],
- "is_filegroup": true,
- "language": "c",
- "name": "alts_proto",
- "src": [
- "src/core/tsi/alts/handshaker/altscontext.pb.c",
- "src/core/tsi/alts/handshaker/altscontext.pb.h",
- "src/core/tsi/alts/handshaker/handshaker.pb.c",
- "src/core/tsi/alts/handshaker/handshaker.pb.h",
- "src/core/tsi/alts/handshaker/transport_security_common.pb.c",
- "src/core/tsi/alts/handshaker/transport_security_common.pb.h"
- ],
- "third_party": false,
- "type": "filegroup"
- },
- {
- "deps": [
"alts_util",
"gpr",
"grpc_base",
@@ -8205,7 +8166,9 @@
"type": "filegroup"
},
{
- "deps": [],
+ "deps": [
+ "upb"
+ ],
"headers": [
"src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
"src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
@@ -8227,10 +8190,9 @@
},
{
"deps": [
- "alts_proto",
+ "alts_upb",
"gpr",
"grpc_base",
- "nanopb",
"tsi_interface",
"upb"
],
@@ -8238,8 +8200,6 @@
"include/grpc/grpc_security.h",
"src/core/lib/security/credentials/alts/check_gcp_environment.h",
"src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api.h",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h",
"src/core/tsi/alts/handshaker/alts_tsi_utils.h",
"src/core/tsi/alts/handshaker/transport_security_common_api.h"
],
@@ -8257,10 +8217,6 @@
"src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
"src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
"src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api.h",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc",
- "src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h",
"src/core/tsi/alts/handshaker/alts_tsi_utils.cc",
"src/core/tsi/alts/handshaker/alts_tsi_utils.h",
"src/core/tsi/alts/handshaker/transport_security_common_api.cc",
@@ -8407,7 +8363,9 @@
"type": "filegroup"
},
{
- "deps": [],
+ "deps": [
+ "upb"
+ ],
"headers": [
"src/core/ext/upb-generated/google/api/annotations.upb.h",
"src/core/ext/upb-generated/google/api/http.upb.h",
@@ -9586,7 +9544,8 @@
},
{
"deps": [
- "google_api_upb"
+ "google_api_upb",
+ "upb"
],
"headers": [
"src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h"
diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json
index 255db94..cb5093d 100644
--- a/tools/run_tests/generated/tests.json
+++ b/tools/run_tests/generated/tests.json
@@ -3266,30 +3266,6 @@
"flaky": false,
"gtest": false,
"language": "c++",
- "name": "alts_handshaker_service_api_test",
- "platforms": [
- "linux",
- "mac",
- "posix",
- "windows"
- ],
- "uses_polling": true
- },
- {
- "args": [],
- "benchmark": false,
- "ci_platforms": [
- "linux",
- "mac",
- "posix",
- "windows"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "exclude_iomgrs": [],
- "flaky": false,
- "gtest": false,
- "language": "c++",
"name": "alts_iovec_record_protocol_test",
"platforms": [
"linux",