Go to the documentation of this file.
40 #ifndef TSI_OPENSSL_ALPN_SUPPORT
41 #define TSI_OPENSSL_ALPN_SUPPORT 1
49 if ((strcmp(prop->
name, expected->
name) == 0) &&
76 const char* expected_property_name,
77 const char* expected_property_value) {
81 if (prop ==
nullptr) {
87 expected_property_value, prop->
value, expected_property_name);
92 expected_property_name);
100 const std::vector<std::string>& expected_property_values) {
103 for (
const auto& property_value : expected_property_values) {
105 if (prop ==
nullptr) {
107 property_value.c_str());
110 if (strcmp(prop->
name, expected_property_name) != 0) {
112 expected_property_name, prop->
name);
117 property_value.c_str(), prop->
value);
123 expected_property_values.size());
130 const char* expected_spiffe_id,
131 bool expect_spiffe_id) {
135 if (prop ==
nullptr && !expect_spiffe_id) {
138 if (prop !=
nullptr && !expect_spiffe_id) {
142 if (prop ==
nullptr && expect_spiffe_id) {
188 const char* expected_cn =
"cn1";
189 const char* expected_pem_cert =
"pem_cert1";
190 const char* expected_pem_cert_chain =
"pem_cert1_chain";
222 expected_pem_cert_chain));
235 const char* expected_cn =
"cn1";
236 const std::vector<std::string> expected_sans = {
"san1"};
237 const char* expected_pem_cert =
"pem_cert1";
238 const char* expected_pem_cert_chain =
"pem_cert1_chain";
256 for (
size_t i = 0;
i < expected_sans.size();
i++) {
276 expected_pem_cert_chain));
289 const char* expected_cn =
"cn1";
290 const std::vector<std::string> expected_sans = {
"san1",
"san2",
"san3"};
291 const char* expected_pem_cert =
"pem_cert1";
292 const char* expected_pem_cert_chain =
"pem_cert1_chain";
311 for (
i = 0;
i < expected_sans.size();
i++) {
331 expected_pem_cert_chain));
345 const char* expected_cn =
"cn1";
346 const char* expected_pem_cert =
"pem_cert1";
347 const char* expected_pem_cert_chain =
"pem_cert1_chain";
348 const std::vector<std::string> expected_sans = {
"san1",
"san2",
"san3"};
371 for (
i = 0;
i < expected_sans.size();
i++) {
391 expected_pem_cert_chain));
403 const std::vector<std::string> expected_dns = {
"dns1",
"dns2",
"dns3"};
405 for (
size_t i = 0;
i < expected_dns.size(); ++
i) {
421 const std::vector<std::string> expected_uri = {
"uri1",
"uri2",
"uri3"};
423 for (
size_t i = 0;
i < expected_uri.size(); ++
i) {
439 const std::vector<std::string> expected_emails = {
"email1",
"email2"};
441 for (
size_t i = 0;
i < expected_emails.size(); ++
i) {
457 const std::vector<std::string> expected_ips = {
"128.128.128.128",
460 for (
size_t i = 0;
i < expected_ips.size(); ++
i) {
479 std::vector<std::string> invalid_spiffe_id = {
482 "sfiffe://domain/wl",
486 "spiffe://" + long_domain +
"/wl"};
490 for (
i = 0;
i < invalid_spiffe_id.size();
i++) {
504 std::string valid_spiffe_id =
"spiffe://foo.bar.com/wl";
518 std::vector<std::string> multiple_spiffe_id = {
519 "spiffe://foo.bar.com/wl",
"https://xyz",
"spiffe://foo.bar.com/wl2"};
522 for (
i = 0;
i < multiple_spiffe_id.size();
i++) {
537 std::vector<std::string> multiple_uri = {
"spiffe://foo.bar.com/wl",
538 "https://xyz",
"ssh://foo.bar.com/"};
541 for (
i = 0;
i < multiple_spiffe_id.size();
i++) {
557 const char* expected_subject =
"subject1";
585 const char* addresses[] = {
586 "2001:db8::1",
"fe80::abcd:ef65:4321%em0",
"fd11:feed:beef:0:cafe::4",
587 "128.10.0.1:8888",
"[2001:db8::1]:8080",
"[2001:db8::1%em1]:8080",
589 const char* san_ips[] = {
590 "2001:db8::1",
"fe80::abcd:ef65:4321",
"fd11:feed:beef:0:cafe::4",
591 "128.10.0.1",
"2001:db8::1",
"2001:db8::1",
608 class TestDefaultSslRootStore :
public DefaultSslRootStore {
610 static grpc_slice ComputePemRootCertsForTesting() {
611 return ComputePemRootCerts();
621 const char* roots_for_env_var =
"roots for env var";
623 char* roots_env_var_file_path;
624 FILE* roots_env_var_file =
625 gpr_tmpfile(
"test_roots_for_env_var", &roots_env_var_file_path);
626 fwrite(roots_for_env_var, 1, strlen(roots_for_env_var), roots_env_var_file);
627 fclose(roots_env_var_file);
634 grpc_core::TestDefaultSslRootStore::ComputePemRootCertsForTesting();
643 roots_env_var_file_path);
644 roots = grpc_core::TestDefaultSslRootStore::ComputePemRootCertsForTesting();
647 GPR_ASSERT(strcmp(roots_contents, roots_for_env_var) == 0);
653 roots = grpc_core::TestDefaultSslRootStore::ComputePemRootCertsForTesting();
663 roots = grpc_core::TestDefaultSslRootStore::ComputePemRootCertsForTesting();
666 grpc_core::TestDefaultSslRootStore::GetRootStore();
670 remove(roots_env_var_file_path);
675 #if TSI_OPENSSL_ALPN_SUPPORT
677 const char* alpn =
"grpc";
678 const char* wrong_alpn =
"wrong";
692 wrong_alpn, strlen(wrong_alpn),
711 int main(
int argc,
char** argv) {
static void test_dns_peer_to_auth_context(void)
const char * tsi_security_level_to_string(tsi_security_level security_level)
#define GRPC_PEER_DNS_PROPERTY_NAME
GPRAPI void grpc_slice_unref(grpc_slice s)
#define TSI_X509_CERTIFICATE_TYPE
static void test_cn_and_multiple_sans_and_others_ssl_peer_to_auth_context(void)
void tsi_peer_property_destruct(tsi_peer_property *property)
static int check_properties(const grpc_auth_context *ctx, const char *expected_property_name, const std::vector< std::string > &expected_property_values)
tsi_peer_property * properties
static void test_email_peer_to_auth_context(void)
struct tsi_peer_property::@48 value
static void test_default_ssl_roots(void)
#define TSI_SSL_ALPN_SELECTED_PROTOCOL
static char * pem_root_certs
#define TSI_X509_SUBJECT_PEER_PROPERTY
static grpc_ssl_roots_override_result override_roots_success(char **pem_root_certs)
#define TSI_X509_IP_PEER_PROPERTY
grpc_core::RefCountedPtr< grpc_auth_context > grpc_ssl_peer_to_auth_context(const tsi_peer *peer, const char *transport_security_type)
#define TSI_SECURITY_LEVEL_PEER_PROPERTY
void reset(T *value=nullptr)
GPRAPI void gpr_free(void *ptr)
GRPCAPI int grpc_auth_context_peer_is_authenticated(const grpc_auth_context *ctx)
#define GRPC_SSL_TRANSPORT_SECURITY_TYPE
FILE * gpr_tmpfile(const char *prefix, char **tmp_filename)
static void test_unauthenticated_ssl_peer(void)
static int check_spiffe_id(const grpc_auth_context *ctx, const char *expected_spiffe_id, bool expect_spiffe_id)
const GRPCAPI grpc_auth_property * grpc_auth_property_iterator_next(grpc_auth_property_iterator *it)
static void test_ip_peer_to_auth_context(void)
#define TSI_X509_URI_PEER_PROPERTY
static grpc_ssl_roots_override_result override_roots_permanent_failure(char **)
static void test_subject_to_auth_context(void)
static void test_peer_alpn_check(void)
#define TSI_X509_DNS_PEER_PROPERTY
#define GRPC_PEER_IP_PROPERTY_NAME
#define GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME
#define GRPC_PEER_SPIFFE_ID_PROPERTY_NAME
def c_str(s, encoding='ascii')
tsi_peer grpc_shallow_peer_from_ssl_auth_context(const grpc_auth_context *auth_context)
static void test_cn_and_one_san_ssl_peer_to_auth_context(void)
#define GRPC_SLICE_IS_EMPTY(slice)
#define TSI_X509_PEM_CERT_PROPERTY
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
#define GRPC_X509_SUBJECT_PROPERTY_NAME
grpc_ssl_roots_override_result
@ GRPC_SSL_ROOTS_OVERRIDE_OK
grpc_error_handle grpc_ssl_check_alpn(const tsi_peer *peer)
#define GRPC_X509_CN_PROPERTY_NAME
static void test_uri_peer_to_auth_context(void)
static int check_ssl_peer_equivalence(const tsi_peer *original, const tsi_peer *reconstructed)
#define GRPC_PEER_EMAIL_PROPERTY_NAME
static void test_cn_and_multiple_sans_ssl_peer_to_auth_context(void)
#define GPR_GLOBAL_CONFIG_SET(name, value)
static const char * roots_for_override_api
GPRAPI char * grpc_slice_to_c_string(grpc_slice s)
#define GRPC_X509_PEM_CERT_PROPERTY_NAME
#define GPR_ARRAY_SIZE(array)
void grpc_shallow_peer_destruct(tsi_peer *peer)
static int check_property(const grpc_auth_context *ctx, const char *expected_property_name, const char *expected_property_value)
int grpc_ssl_host_matches_name(const tsi_peer *peer, absl::string_view peer_name)
static void test_ipv6_address_san(void)
GRPCAPI void grpc_set_ssl_roots_override_callback(grpc_ssl_roots_override_callback cb)
#define TSI_X509_SUBJECT_COMMON_NAME_PEER_PROPERTY
int main(int argc, char **argv)
#define GRPC_ERROR_UNREF(err)
GPRAPI char * gpr_strdup(const char *src)
#define GRPC_X509_SAN_PROPERTY_NAME
@ TSI_PRIVACY_AND_INTEGRITY
GRPCAPI grpc_auth_property_iterator grpc_auth_context_find_properties_by_name(const grpc_auth_context *ctx, const char *name)
static int check_peer_property(const tsi_peer *peer, const tsi_peer_property *expected)
@ GRPC_SSL_ROOTS_OVERRIDE_FAIL_PERMANENTLY
#define TSI_CERTIFICATE_TYPE_PEER_PROPERTY
GRPCAPI void grpc_init(void)
#define GRPC_X509_PEM_CERT_CHAIN_PROPERTY_NAME
#define TSI_X509_PEM_CERT_CHAIN_PROPERTY
#define TSI_X509_EMAIL_PEER_PROPERTY
static void test_spiffe_id_peer_to_auth_context(void)
#define TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY
void tsi_peer_destruct(tsi_peer *self)
#define GRPC_PEER_URI_PROPERTY_NAME
GRPCAPI void grpc_shutdown(void)
tsi_result tsi_construct_string_peer_property(const char *name, const char *value, size_t value_length, tsi_peer_property *property)
static void test_cn_only_ssl_peer_to_auth_context(void)
tsi_result tsi_construct_string_peer_property_from_cstring(const char *name, const char *value, tsi_peer_property *property)
tsi_result tsi_construct_peer(size_t property_count, tsi_peer *peer)
#define GRPC_ERROR_IS_NONE(err)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:15