alts_security_connector_test.cc
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2018 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
20 
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <string.h>
24 
25 #include <grpc/grpc.h>
26 #include <grpc/support/alloc.h>
27 #include <grpc/support/log.h>
28 
33 
35 
36 /* This file contains unit tests of grpc_alts_auth_context_from_tsi_peer(). */
40  GPR_ASSERT(ctx == nullptr);
41 }
42 
44  tsi_peer peer;
45  GPR_ASSERT(tsi_construct_peer(0, &peer) == TSI_OK);
48  GPR_ASSERT(ctx == nullptr);
49  tsi_peer_destruct(&peer);
50 }
51 
53  tsi_peer peer;
54  GPR_ASSERT(tsi_construct_peer(1, &peer) == TSI_OK);
57  &peer.properties[0]) == TSI_OK);
60  GPR_ASSERT(ctx == nullptr);
61  tsi_peer_destruct(&peer);
62 }
63 
65  tsi_peer peer;
69  &peer.properties[0]) == TSI_OK);
72  &peer.properties[1]) == TSI_OK);
75  GPR_ASSERT(ctx == nullptr);
76  tsi_peer_destruct(&peer);
77 }
78 
80  tsi_peer peer;
84  &peer.properties[0]) == TSI_OK);
87  &peer.properties[1]) == TSI_OK);
88  grpc_gcp_rpc_protocol_versions peer_versions;
95  grpc_slice serialized_peer_versions;
97  &serialized_peer_versions));
98 
101  reinterpret_cast<char*>(
102  GRPC_SLICE_START_PTR(serialized_peer_versions)),
103  GRPC_SLICE_LENGTH(serialized_peer_versions),
104  &peer.properties[2]) == TSI_OK);
107  GPR_ASSERT(ctx == nullptr);
108  grpc_slice_unref(serialized_peer_versions);
109  tsi_peer_destruct(&peer);
110 }
111 
113  tsi_peer peer;
117  &peer.properties[0]) == TSI_OK);
119  "unknown", "alice", &peer.properties[1]) == TSI_OK);
122  GPR_ASSERT(ctx == nullptr);
123  tsi_peer_destruct(&peer);
124 }
125 
127  const char* expected_property_name,
128  const char* expected_identity) {
130  const grpc_auth_property* prop;
134  GPR_ASSERT(prop != nullptr);
135  if (strcmp(prop->name, expected_property_name) != 0) {
136  gpr_log(GPR_ERROR, "Expected peer identity property name %s and got %s.",
137  expected_property_name, prop->name);
138  return false;
139  }
140  if (strncmp(prop->value, expected_identity, prop->value_length) != 0) {
141  gpr_log(GPR_ERROR, "Expected peer identity %s and got got %s.",
142  expected_identity, prop->value);
143  return false;
144  }
145  return true;
146 }
147 
149  tsi_peer peer;
153  &peer.properties[0]) == TSI_OK);
156  &peer.properties[1]) == TSI_OK);
157  grpc_gcp_rpc_protocol_versions peer_versions;
164  grpc_slice serialized_peer_versions;
166  &serialized_peer_versions));
169  reinterpret_cast<char*>(
170  GRPC_SLICE_START_PTR(serialized_peer_versions)),
171  GRPC_SLICE_LENGTH(serialized_peer_versions),
172  &peer.properties[2]) == TSI_OK);
176  &peer.properties[3]) == TSI_OK);
177  char test_ctx[] = "test serialized context";
178  grpc_slice serialized_alts_ctx = grpc_slice_from_copied_string(test_ctx);
179  GPR_ASSERT(
182  reinterpret_cast<char*>(GRPC_SLICE_START_PTR(serialized_alts_ctx)),
183  GRPC_SLICE_LENGTH(serialized_alts_ctx),
184  &peer.properties[4]) == TSI_OK);
187  GPR_ASSERT(ctx != nullptr);
189  "alice"));
190  ctx.reset(DEBUG_LOCATION, "test");
191  grpc_slice_unref(serialized_peer_versions);
192  grpc_slice_unref(serialized_alts_ctx);
193  tsi_peer_destruct(&peer);
194 }
195 
196 int main(int /*argc*/, char** /*argv*/) {
197  /* Test. */
205 
206  return 0;
207 }
tsi_security_level_to_string
const char * tsi_security_level_to_string(tsi_security_level security_level)
Definition: transport_security.cc:70
grpc_slice_unref
GPRAPI void grpc_slice_unref(grpc_slice s)
Definition: slice_api.cc:32
grpc_auth_context
Definition: security_context.h:63
regen-readme.it
it
Definition: regen-readme.py:15
log.h
tsi_peer::properties
tsi_peer_property * properties
Definition: transport_security_interface.h:239
GRPC_PROTOCOL_VERSION_MIN_MAJOR
#define GRPC_PROTOCOL_VERSION_MIN_MAJOR
Definition: transport.h:68
ctx
Definition: benchmark-async.c:30
test_empty_peer_property_failure
static void test_empty_peer_property_failure()
Definition: alts_security_connector_test.cc:52
test_missing_rpc_protocol_versions_property_failure
static void test_missing_rpc_protocol_versions_property_failure()
Definition: alts_security_connector_test.cc:64
grpc_slice_from_copied_string
GPRAPI grpc_slice grpc_slice_from_copied_string(const char *source)
Definition: slice/slice.cc:177
TSI_SECURITY_LEVEL_PEER_PROPERTY
#define TSI_SECURITY_LEVEL_PEER_PROPERTY
Definition: transport_security_interface.h:226
alts_tsi_handshaker.h
string.h
grpc_core::internal::grpc_alts_auth_context_from_tsi_peer
RefCountedPtr< grpc_auth_context > grpc_alts_auth_context_from_tsi_peer(const tsi_peer *peer)
Definition: alts_security_connector.cc:204
GRPC_PROTOCOL_VERSION_MIN_MINOR
#define GRPC_PROTOCOL_VERSION_MIN_MINOR
Definition: transport.h:69
test_missing_security_level_property_failure
static void test_missing_security_level_property_failure()
Definition: alts_security_connector_test.cc:79
grpc_auth_context_peer_is_authenticated
GRPCAPI int grpc_auth_context_peer_is_authenticated(const grpc_auth_context *ctx)
Definition: security_context.cc:168
kTsiAltsNumOfPeerProperties
const size_t kTsiAltsNumOfPeerProperties
Definition: alts_tsi_handshaker.h:39
grpc_auth_property_iterator_next
const GRPCAPI grpc_auth_property * grpc_auth_property_iterator_next(grpc_auth_property_iterator *it)
Definition: security_context.cc:182
grpc_gcp_rpc_protocol_versions_encode
bool grpc_gcp_rpc_protocol_versions_encode(const grpc_gcp_rpc_protocol_versions *versions, grpc_slice *slice)
Definition: transport_security_common_api.cc:53
alts_security_connector.h
test_invalid_input_failure
static void test_invalid_input_failure()
Definition: alts_security_connector_test.cc:37
TSI_OK
@ TSI_OK
Definition: transport_security_interface.h:32
DEBUG_LOCATION
#define DEBUG_LOCATION
Definition: debug_location.h:41
grpc_core::RefCountedPtr< grpc_auth_context >
GPR_ASSERT
#define GPR_ASSERT(x)
Definition: include/grpc/impl/codegen/log.h:94
TSI_ALTS_SERVICE_ACCOUNT_PEER_PROPERTY
#define TSI_ALTS_SERVICE_ACCOUNT_PEER_PROPERTY
Definition: alts_tsi_handshaker.h:34
gpr_log
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
test_ctx
Definition: test-ipc-send-recv.c:43
TSI_ALTS_RPC_VERSIONS
#define TSI_ALTS_RPC_VERSIONS
Definition: alts_tsi_handshaker.h:36
grpc_auth_property::name
char * name
Definition: grpc_security.h:44
grpc_auth_property_iterator
Definition: grpc_security.h:36
grpc.h
grpc_auth_property::value_length
size_t value_length
Definition: grpc_security.h:46
GRPC_PROTOCOL_VERSION_MAX_MAJOR
#define GRPC_PROTOCOL_VERSION_MAX_MAJOR
Definition: transport.h:66
GRPC_SLICE_START_PTR
#define GRPC_SLICE_START_PTR(slice)
Definition: include/grpc/impl/codegen/slice.h:101
grpc_slice
Definition: include/grpc/impl/codegen/slice.h:65
grpc_auth_property::value
char * value
Definition: grpc_security.h:45
test_identity
static bool test_identity(const grpc_auth_context *ctx, const char *expected_property_name, const char *expected_identity)
Definition: alts_security_connector_test.cc:126
GPR_ERROR
#define GPR_ERROR
Definition: include/grpc/impl/codegen/log.h:57
TSI_ALTS_CERTIFICATE_TYPE
#define TSI_ALTS_CERTIFICATE_TYPE
Definition: alts_tsi_handshaker.h:35
grpc_gcp_rpc_protocol_versions_set_min
bool grpc_gcp_rpc_protocol_versions_set_min(grpc_gcp_rpc_protocol_versions *versions, uint32_t min_major, uint32_t min_minor)
Definition: transport_security_common_api.cc:39
GRPC_SLICE_LENGTH
#define GRPC_SLICE_LENGTH(slice)
Definition: include/grpc/impl/codegen/slice.h:104
grpc_auth_property
Definition: grpc_security.h:43
tsi_peer
Definition: transport_security_interface.h:238
security_context.h
transport_security.h
alloc.h
grpc_auth_context_peer_identity
GRPCAPI grpc_auth_property_iterator grpc_auth_context_peer_identity(const grpc_auth_context *ctx)
Definition: security_context.cc:218
main
int main(int, char **)
Definition: alts_security_connector_test.cc:196
test_empty_certificate_type_failure
static void test_empty_certificate_type_failure()
Definition: alts_security_connector_test.cc:43
transport.h
grpc_gcp_rpc_protocol_versions_set_max
bool grpc_gcp_rpc_protocol_versions_set_max(grpc_gcp_rpc_protocol_versions *versions, uint32_t max_major, uint32_t max_minor)
Definition: transport_security_common_api.cc:25
TSI_PRIVACY_AND_INTEGRITY
@ TSI_PRIVACY_AND_INTEGRITY
Definition: transport_security_interface.h:56
test_alts_peer_to_auth_context_success
static void test_alts_peer_to_auth_context_success()
Definition: alts_security_connector_test.cc:148
TSI_CERTIFICATE_TYPE_PEER_PROPERTY
#define TSI_CERTIFICATE_TYPE_PEER_PROPERTY
Definition: transport_security_interface.h:223
TSI_ALTS_CONTEXT
#define TSI_ALTS_CONTEXT
Definition: alts_tsi_handshaker.h:37
_grpc_gcp_RpcProtocolVersions
Definition: transport_security_common_api.h:38
tsi_peer_destruct
void tsi_peer_destruct(tsi_peer *self)
Definition: transport_security.cc:320
tsi_construct_string_peer_property
tsi_result tsi_construct_string_peer_property(const char *name, const char *value, size_t value_length, tsi_peer_property *property)
Definition: transport_security.cc:346
GRPC_PROTOCOL_VERSION_MAX_MINOR
#define GRPC_PROTOCOL_VERSION_MAX_MINOR
Definition: transport.h:67
test_unknown_peer_property_failure
static void test_unknown_peer_property_failure()
Definition: alts_security_connector_test.cc:112
tsi_construct_string_peer_property_from_cstring
tsi_result tsi_construct_string_peer_property_from_cstring(const char *name, const char *value, tsi_peer_property *property)
Definition: transport_security.cc:340
tsi_construct_peer
tsi_result tsi_construct_peer(size_t property_count, tsi_peer *peer)
Definition: transport_security.cc:359


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:41