19 #ifndef GRPC_CORE_TSI_SSL_TRANSPORT_SECURITY_H
20 #define GRPC_CORE_TSI_SSL_TRANSPORT_SECURITY_H
28 #define TSI_X509_CERTIFICATE_TYPE "X509"
31 #define TSI_X509_SUBJECT_COMMON_NAME_PEER_PROPERTY "x509_subject_common_name"
32 #define TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY \
33 "x509_subject_alternative_name"
34 #define TSI_SSL_SESSION_REUSED_PEER_PROPERTY "ssl_session_reused"
36 #define TSI_X509_PEM_CERT_PROPERTY "x509_pem_cert"
38 #define TSI_SSL_ALPN_SELECTED_PROTOCOL "ssl_alpn_selected_protocol"
49 const char* pem_roots);
111 const char* pem_root_certs,
const char* cipher_suites,
112 const char** alpn_protocols, uint16_t num_alpn_protocols,
215 size_t num_key_cert_pairs,
const char* pem_client_root_certs,
216 int force_client_auth,
const char* cipher_suites,
217 const char** alpn_protocols, uint16_t num_alpn_protocols,
229 size_t num_key_cert_pairs,
const char* pem_client_root_certs,
231 const char* cipher_suites,
const char** alpn_protocols,
337 const char* pem_cert,
tsi_peer* peer);
Definition: string_view.h:69
tsi_result tsi_create_ssl_client_handshaker_factory(const tsi_ssl_pem_key_cert_pair *pem_key_cert_pair, const char *pem_root_certs, const char *cipher_suites, const char **alpn_protocols, uint16_t num_alpn_protocols, tsi_ssl_client_handshaker_factory **factory)
Definition: ssl_transport_security.cc:1631
void(* tsi_ssl_handshaker_factory_destructor)(tsi_ssl_handshaker_factory *factory)
Definition: ssl_transport_security.h:321
tsi_result tsi_ssl_server_handshaker_factory_create_handshaker(tsi_ssl_server_handshaker_factory *self, tsi_handshaker **handshaker)
Definition: ssl_transport_security.cc:1480
void tsi_ssl_server_handshaker_factory_unref(tsi_ssl_server_handshaker_factory *self)
Definition: ssl_transport_security.cc:1489
struct tsi_ssl_session_cache tsi_ssl_session_cache
Definition: ssl_transport_security.h:58
tsi_ssl_session_cache * tsi_ssl_session_cache_create_lru(size_t capacity)
Definition: ssl_transport_security.cc:820
void tsi_ssl_client_handshaker_factory_unref(tsi_ssl_client_handshaker_factory *factory)
Definition: ssl_transport_security.cc:1451
void tsi_ssl_session_cache_ref(tsi_ssl_session_cache *cache)
Definition: ssl_transport_security.cc:826
void tsi_ssl_root_certs_store_destroy(tsi_ssl_root_certs_store *self)
Definition: ssl_transport_security.cc:812
const tsi_ssl_handshaker_factory_vtable * tsi_ssl_handshaker_factory_swap_vtable(tsi_ssl_handshaker_factory *factory, tsi_ssl_handshaker_factory_vtable *new_vtable)
Definition: ssl_transport_security.cc:1965
void tsi_ssl_session_cache_unref(tsi_ssl_session_cache *cache)
Definition: ssl_transport_security.cc:831
tsi_result tsi_create_ssl_server_handshaker_factory_with_options(const tsi_ssl_server_handshaker_options *options, tsi_ssl_server_handshaker_factory **factory)
Definition: ssl_transport_security.cc:1777
tsi_result tsi_create_ssl_server_handshaker_factory_ex(const tsi_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, const char *pem_client_root_certs, tsi_client_certificate_request_type client_certificate_request, const char *cipher_suites, const char **alpn_protocols, uint16_t num_alpn_protocols, tsi_ssl_server_handshaker_factory **factory)
Definition: ssl_transport_security.cc:1759
tsi_ssl_root_certs_store * tsi_ssl_root_certs_store_create(const char *pem_roots)
Definition: ssl_transport_security.cc:783
tsi_result tsi_ssl_extract_x509_subject_names_from_pem_cert(const char *pem_cert, tsi_peer *peer)
Definition: ssl_transport_security.cc:715
tsi_result tsi_create_ssl_client_handshaker_factory_with_options(const tsi_ssl_client_handshaker_options *options, tsi_ssl_client_handshaker_factory **factory)
Definition: ssl_transport_security.cc:1646
tsi_result tsi_ssl_client_handshaker_factory_create_handshaker(tsi_ssl_client_handshaker_factory *self, const char *server_name_indication, tsi_handshaker **handshaker)
Definition: ssl_transport_security.cc:1444
int tsi_ssl_peer_matches_name(const tsi_peer *peer, grpc_core::StringView name)
Definition: ssl_transport_security.cc:1924
tsi_result tsi_create_ssl_server_handshaker_factory(const tsi_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, const char *pem_client_root_certs, int force_client_auth, const char *cipher_suites, const char **alpn_protocols, uint16_t num_alpn_protocols, tsi_ssl_server_handshaker_factory **factory)
Definition: ssl_transport_security.cc:1746
Definition: transport_security.h:79
Definition: transport_security_interface.h:198
Definition: ssl_transport_security.cc:86
Definition: ssl_transport_security.h:115
const tsi_ssl_root_certs_store * root_store
Definition: ssl_transport_security.h:127
tsi_ssl_client_handshaker_options()
Definition: ssl_transport_security.h:145
const char * pem_root_certs
Definition: ssl_transport_security.h:122
const char * cipher_suites
Definition: ssl_transport_security.h:133
const char ** alpn_protocols
Definition: ssl_transport_security.h:137
tsi_ssl_session_cache * session_cache
Definition: ssl_transport_security.h:143
size_t num_alpn_protocols
Definition: ssl_transport_security.h:141
const tsi_ssl_pem_key_cert_pair * pem_key_cert_pair
Definition: ssl_transport_security.h:119
Definition: ssl_transport_security.h:325
tsi_ssl_handshaker_factory_destructor destroy
Definition: ssl_transport_security.h:326
Definition: ssl_transport_security.cc:81
Definition: ssl_transport_security.h:78
const char * cert_chain
Definition: ssl_transport_security.h:85
const char * private_key
Definition: ssl_transport_security.h:81
Definition: ssl_transport_security.cc:77
Definition: ssl_transport_security.cc:94
Definition: ssl_transport_security.h:234
const char * cipher_suites
Definition: ssl_transport_security.h:254
size_t session_ticket_key_size
Definition: ssl_transport_security.h:267
const tsi_ssl_pem_key_cert_pair * pem_key_cert_pairs
Definition: ssl_transport_security.h:237
size_t num_key_cert_pairs
Definition: ssl_transport_security.h:240
const char * session_ticket_key
Definition: ssl_transport_security.h:265
const char ** alpn_protocols
Definition: ssl_transport_security.h:258
tsi_ssl_server_handshaker_options()
Definition: ssl_transport_security.h:269
uint16_t num_alpn_protocols
Definition: ssl_transport_security.h:262
tsi_client_certificate_request_type client_certificate_request
Definition: ssl_transport_security.h:248
const char * pem_client_root_certs
Definition: ssl_transport_security.h:244
tsi_result
Definition: transport_security_interface.h:31
tsi_client_certificate_request_type
Definition: transport_security_interface.h:49
@ TSI_DONT_REQUEST_CLIENT_CERTIFICATE
Definition: transport_security_interface.h:51