GRPC Core  52.0.0
credentials.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2024 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 
19 #ifndef GRPC_CREDENTIALS_H
20 #define GRPC_CREDENTIALS_H
21 
23 #include <grpc/impl/grpc_types.h>
24 #include <grpc/slice.h>
25 #include <grpc/status.h>
27 #include <grpc/support/time.h>
28 #include <stdbool.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
44 
52  gpr_timespec token_lifetime,
53  void* reserved);
54 
61  const char* json_string, const char* scopes_string);
62 
70  const char* json_refresh_token, void* reserved);
71 
75  const char* access_token, void* reserved);
76 
79  const char* authorization_token, const char* authority_selector,
80  void* reserved);
81 
88 typedef struct {
89  const char* token_exchange_service_uri; /* Required. */
90  const char* resource; /* Optional. */
91  const char* audience; /* Optional. */
92  const char* scope; /* Optional. */
93  const char* requested_token_type; /* Optional. */
94  const char* subject_token_path; /* Required. */
95  const char* subject_token_type; /* Required. */
96  const char* actor_token_path; /* Optional. */
97  const char* actor_token_type; /* Optional. */
99 
105  const grpc_sts_credentials_options* options, void* reserved);
106 
109 typedef struct {
111  const char* service_url;
112 
116  const char* method_name;
117 
120 
122  void* reserved;
124 
128 
131  grpc_auth_metadata_context* context);
132 
145  void* user_data, const grpc_metadata* creds_md, size_t num_creds_md,
146  grpc_status_code status, const char* error_details);
147 
150 #define GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX 4
151 
157 typedef struct {
176  int (*get_metadata)(
177  void* state, grpc_auth_metadata_context context,
178  grpc_credentials_plugin_metadata_cb cb, void* user_data,
180  size_t* num_creds_md, grpc_status_code* status,
181  const char** error_details);
182 
185  char* (*debug_string)(void* state);
186 
188  void (*destroy)(void* state);
189 
191  void* state;
192 
194  const char* type;
196 
201  grpc_security_level min_security_level, void* reserved);
202 
208 
235 typedef struct {
239 
241  grpc_call_credentials* call_creds_for_tls,
243 
250 
252 typedef struct {
255  const char* private_key;
256 
259  const char* cert_chain;
261 
274  const char* pem_root_certs,
275  const grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
276  size_t num_key_cert_pairs);
277 
281 
290  void* user_data, grpc_ssl_server_certificate_config** config);
291 
296 typedef struct {
303  int (*verify_peer_callback)(const char* target_name, const char* peer_pem,
304  void* userdata);
311  void (*verify_peer_destruct)(void* userdata);
313 
316 typedef struct {
323  int (*verify_peer_callback)(const char* target_name, const char* peer_pem,
324  void* userdata);
331  void (*verify_peer_destruct)(void* userdata);
333 
365  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pair,
366  const verify_peer_options* verify_options, void* reserved);
367 
368 /* Creates an SSL credentials object.
369  The security level of the resulting connection is GRPC_PRIVACY_AND_INTEGRITY.
370  - pem_root_certs is the NULL-terminated string containing the PEM encoding
371  of the server root certificates. If this parameter is NULL, the
372  implementation will first try to dereference the file pointed by the
373  GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment variable, and if that fails,
374  try to get the roots set by grpc_override_ssl_default_roots. Eventually,
375  if all these fail, it will try to get the roots from a well-known place on
376  disk (in the grpc install directory).
377 
378  gRPC has implemented root cache if the underlying OpenSSL library supports
379  it. The gRPC root certificates cache is only applicable on the default
380  root certificates, which is used when this parameter is nullptr. If user
381  provides their own pem_root_certs, when creating an SSL credential object,
382  gRPC would not be able to cache it, and each subchannel will generate a
383  copy of the root store. So it is recommended to avoid providing large room
384  pem with pem_root_certs parameter to avoid excessive memory consumption,
385  particularly on mobile platforms such as iOS.
386  - pem_key_cert_pair is a pointer on the object containing client's private
387  key and certificate chain. This parameter can be NULL if the client does
388  not have such a key/cert pair.
389  - verify_options is an optional verify_peer_options object which holds
390  additional options controlling how peer certificates are verified. For
391  example, you can supply a callback which receives the peer's certificate
392  with which you can do additional verification. Can be NULL, in which
393  case verification will retain default behavior. Any settings in
394  verify_options are copied during this call, so the verify_options
395  object can be released afterwards. */
397  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pair,
398  const grpc_ssl_verify_peer_options* verify_options, void* reserved);
399 
415  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
416  size_t num_key_cert_pairs, int force_client_auth, void* reserved);
417 
423  const char* pem_root_certs, grpc_ssl_pem_key_cert_pair* pem_key_cert_pairs,
424  size_t num_key_cert_pairs,
425  grpc_ssl_client_certificate_request_type client_certificate_request,
426  void* reserved);
427 
430 
437  grpc_ssl_client_certificate_request_type client_certificate_request,
438  grpc_ssl_server_certificate_config* certificate_config);
439 
449  grpc_ssl_client_certificate_request_type client_certificate_request,
450  grpc_ssl_server_certificate_config_callback cb, void* user_data);
451 
455 
461 
474  void* user_data, const grpc_metadata* consumed_md, size_t num_consumed_md,
475  const grpc_metadata* response_md, size_t num_response_md,
476  grpc_status_code status, const char* error_details);
477 
479 typedef struct {
484  void (*process)(void* state, grpc_auth_context* context,
485  const grpc_metadata* md, size_t num_md,
486  grpc_process_auth_metadata_done_cb cb, void* user_data);
487  void (*destroy)(void* state);
488  void* state;
490 
493 
499  void* reserved);
500 
503 typedef struct {
508 
514 
518  grpc_channel_credentials* channel_creds, grpc_call_credentials* call_creds,
519  void* reserved);
520 
532 
539 
546 
556  grpc_alts_credentials_options* options, const char* service_account);
557 
568 
579  const grpc_alts_credentials_options* options);
580 
590  const grpc_alts_credentials_options* options);
591 
599 
610 
618 
626 
635  const char* private_key,
636  const char* cert_chain);
637 
647 
661  const char* root_certificate, grpc_tls_identity_pairs* pem_key_cert_pairs);
662 
691  const char* private_key_path, const char* identity_certificate_path,
692  const char* root_cert_path, const char* spiffe_bundle_map_path,
693  unsigned int refresh_interval_sec);
694 
703 
713  /* The target name of the server when the client initiates the connection. */
714  /* This field will be nullptr if on the server side. */
715  const char* target_name;
716  /* The information contained in the certificate chain sent from the peer. */
717  struct peer_info {
718  /* The Common Name field on the peer leaf certificate. */
719  const char* common_name;
720  /* The list of Subject Alternative Names on the peer leaf certificate. */
721  struct san_names {
722  char** uri_names;
724  char** dns_names;
726  char** email_names;
728  char** ip_names;
730  } san_names;
731  /* The raw peer leaf certificate. */
732  const char* peer_cert;
733  /* The raw peer certificate chain. Note that it is not always guaranteed to
734  * get the peer full chain. For more, please refer to
735  * GRPC_X509_PEM_CERT_CHAIN_PROPERTY_NAME defined in file
736  * grpc_security_constants.h.
737  * TODO(ZhenLian): Consider fixing this in the future. */
738  const char* peer_cert_full_chain;
739  /* The verified root cert subject.
740  * This value will only be filled if the cryptographic peer certificate
741  * verification was successful */
743  } peer_info;
745 
756  grpc_tls_custom_verification_check_request* request, void* callback_arg,
757  grpc_status_code status, const char* error_details);
758 
765 
773  void* user_data;
807  int (*verify)(void* user_data,
810  void* callback_arg, grpc_status_code* sync_status,
811  char** sync_error_details);
827  void (*cancel)(void* user_data,
846  void (*destruct)(void* user_data);
848 
857  grpc_tls_certificate_verifier_external* external_verifier);
858 
869 
877 
886 
900  grpc_tls_on_custom_verification_check_done_cb callback, void* callback_arg,
901  grpc_status_code* sync_status, char** sync_error_details);
902 
913 
920 
931 
941 
949  grpc_tls_credentials_options* options, grpc_tls_version min_tls_version);
950 
958  grpc_tls_credentials_options* options, grpc_tls_version max_tls_version);
959 
967 
975 
983 
993 
1007  grpc_tls_credentials_options* options);
1008 
1016  grpc_tls_credentials_options* options, const char* root_cert_name);
1017 
1026  grpc_tls_credentials_options* options);
1027 
1036  grpc_tls_credentials_options* options, const char* identity_cert_name);
1037 
1047 
1059  grpc_tls_credentials_options* options, const char* crl_directory);
1060 
1068  grpc_tls_credentials_options* options, int verify_server_cert);
1069 
1085  grpc_tls_credentials_options* options, bool send_client_ca_list);
1086 
1093 
1097  size_t capacity);
1098 
1101 
1105 
1113  char** pem_root_certs);
1114 
1122 
1124 
1133 
1140 
1155  grpc_channel_credentials* fallback_credentials);
1156 
1169  grpc_server_credentials* fallback_credentials);
1170 
1185 
1196 
1203 
1214  grpc_tls_certificate_verifier* verifier);
1215 
1228  grpc_tls_credentials_options* options, int check_call_host);
1229 
1248  grpc_tls_credentials_options* options, const char* path);
1249 
1250 #ifdef __cplusplus
1251 }
1252 #endif
1253 
1254 #endif /* GRPC_CREDENTIALS_H */
grpc_arg
A single argument...
Definition: grpc_types.h:101
grpc_tls_custom_verification_check_request::peer_info::peer_cert
const char * peer_cert
Definition: credentials.h:732
grpc_google_compute_engine_credentials_options::alts_hard_bound
bool alts_hard_bound
Indicates if the created credentials should be ALTS with hard bound tokens.
Definition: credentials.h:506
grpc_ssl_server_credentials_create_ex
GRPCAPI grpc_server_credentials * grpc_ssl_server_credentials_create_ex(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, grpc_ssl_client_certificate_request_type client_certificate_request, void *reserved)
Deprecated in favor of grpc_ssl_server_credentials_create_with_options.
grpc_ssl_credentials_create_ex
GRPCAPI grpc_channel_credentials * grpc_ssl_credentials_create_ex(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const grpc_ssl_verify_peer_options *verify_options, void *reserved)
grpc_ssl_server_credentials_create_options_using_config_fetcher
GRPCAPI grpc_ssl_server_credentials_options * grpc_ssl_server_credentials_create_options_using_config_fetcher(grpc_ssl_client_certificate_request_type client_certificate_request, grpc_ssl_server_certificate_config_callback cb, void *user_data)
Creates an options object using a certificate config fetcher.
grpc_tls_credentials_options_set_tls_session_key_log_file_path
GRPCAPI void grpc_tls_credentials_options_set_tls_session_key_log_file_path(grpc_tls_credentials_options *options, const char *path)
— TLS session key logging.
grpc_ssl_session_cache_destroy
GRPCAPI void grpc_ssl_session_cache_destroy(grpc_ssl_session_cache *cache)
Destroy SSL session cache.
grpc_tls_custom_verification_check_request::peer_info::peer_cert_full_chain
const char * peer_cert_full_chain
Definition: credentials.h:738
verify_peer_options::verify_peer_callback_userdata
void * verify_peer_callback_userdata
Arbitrary userdata that will be passed as the last argument to verify_peer_callback.
Definition: credentials.h:307
grpc_sts_credentials_create
GRPCAPI grpc_call_credentials * grpc_sts_credentials_create(const grpc_sts_credentials_options *options, void *reserved)
Creates an STS credentials following the STS Token Exchanged specified in the IETF draft https://tool...
grpc_tls_on_custom_verification_check_done_cb
void(* grpc_tls_on_custom_verification_check_done_cb)(grpc_tls_custom_verification_check_request *request, void *callback_arg, grpc_status_code status, const char *error_details)
EXPERIMENTAL API - Subject to change.
Definition: credentials.h:755
grpc_tls_certificate_verifier_external_create
grpc_tls_certificate_verifier * grpc_tls_certificate_verifier_external_create(grpc_tls_certificate_verifier_external *external_verifier)
EXPERIMENTAL API - Subject to change.
grpc_ssl_verify_peer_options
Object that holds additional peer-verification options on a secure channel.
Definition: credentials.h:316
grpc_sts_credentials_options::subject_token_path
const char * subject_token_path
Definition: credentials.h:94
grpc_ssl_server_credentials_create
GRPCAPI grpc_server_credentials * grpc_ssl_server_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, int force_client_auth, void *reserved)
— server credentials —
grpc_tls_certificate_verifier_external::cancel
void(* cancel)(void *user_data, grpc_tls_custom_verification_check_request *request)
A function pointer that cleans up the caller-specified resources when the verifier is still running b...
Definition: credentials.h:827
grpc_ssl_pem_key_cert_pair::private_key
const char * private_key
private_key is the NULL-terminated string containing the PEM encoding of the client's private key.
Definition: credentials.h:255
grpc_tls_credentials_options
struct grpc_tls_credentials_options grpc_tls_credentials_options
EXPERIMENTAL API - Subject to change.
Definition: credentials.h:598
grpc_alts_credentials_client_options_create
GRPCAPI grpc_alts_credentials_options * grpc_alts_credentials_client_options_create(void)
This method creates a grpc ALTS credentials client options instance.
grpc_ssl_verify_peer_options::verify_peer_callback_userdata
void * verify_peer_callback_userdata
Arbitrary userdata that will be passed as the last argument to verify_peer_callback.
Definition: credentials.h:327
GRPCAPI
#define GRPCAPI
Definition: port_platform.h:733
grpc_sts_credentials_options::resource
const char * resource
Definition: credentials.h:90
grpc_ssl_server_credentials_create_with_options
GRPCAPI grpc_server_credentials * grpc_ssl_server_credentials_create_with_options(grpc_ssl_server_credentials_options *options)
Creates an SSL server_credentials object using the provided options struct.
grpc_tls_custom_verification_check_request::peer_info::san_names::email_names
char ** email_names
Definition: credentials.h:726
grpc_ssl_server_certificate_config
struct grpc_ssl_server_certificate_config grpc_ssl_server_certificate_config
Server certificate config object holds the server's public certificates and associated private keys,...
Definition: credentials.h:248
grpc_sts_credentials_options
Options for creating STS Oauth Token Exchange credentials following the IETF draft https://tools....
Definition: credentials.h:88
grpc_metadata_credentials_plugin::state
void * state
State that will be set as the first parameter of the methods above.
Definition: credentials.h:191
grpc_tls_credentials_options_set_min_tls_version
GRPCAPI void grpc_tls_credentials_options_set_min_tls_version(grpc_tls_credentials_options *options, grpc_tls_version min_tls_version)
EXPERIMENTAL API - Subject to change.
grpc_ssl_certificate_config_reload_status
grpc_ssl_certificate_config_reload_status
Callback results for dynamically loading a SSL certificate config.
Definition: grpc_security_constants.h:73
grpc_sts_credentials_options::audience
const char * audience
Definition: credentials.h:91
grpc_tls_certificate_provider_release
GRPCAPI void grpc_tls_certificate_provider_release(grpc_tls_certificate_provider *provider)
EXPERIMENTAL API - Subject to change.
grpc_tls_credentials_options_copy
GRPCAPI grpc_tls_credentials_options * grpc_tls_credentials_options_copy(grpc_tls_credentials_options *options)
EXPERIMENTAL API - Subject to change.
grpc_auth_metadata_context::service_url
const char * service_url
The fully qualified service url.
Definition: credentials.h:111
grpc_alts_credentials_server_options_create
GRPCAPI grpc_alts_credentials_options * grpc_alts_credentials_server_options_create(void)
This method creates a grpc ALTS credentials server options instance.
grpc_ssl_server_certificate_config_create
GRPCAPI grpc_ssl_server_certificate_config * grpc_ssl_server_certificate_config_create(const char *pem_root_certs, const grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs)
Creates a grpc_ssl_server_certificate_config object.
grpc_channel_credentials
struct grpc_channel_credentials grpc_channel_credentials
Definition: credentials.h:41
grpc_tls_custom_verification_check_request::peer_info::common_name
const char * common_name
Definition: credentials.h:719
grpc_tls_credentials_options_set_check_call_host
GRPCAPI void grpc_tls_credentials_options_set_check_call_host(grpc_tls_credentials_options *options, int check_call_host)
EXPERIMENTAL API - Subject to change.
grpc_alts_credentials_client_options_add_target_service_account
GRPCAPI void grpc_alts_credentials_client_options_add_target_service_account(grpc_alts_credentials_options *options, const char *service_account)
This method adds a target service account to grpc client's ALTS credentials options instance.
grpc_alts_credentials_options_destroy
GRPCAPI void grpc_alts_credentials_options_destroy(grpc_alts_credentials_options *options)
This method destroys a grpc_alts_credentials_options instance by de-allocating all of its occupied me...
grpc_tls_identity_pairs_create
GRPCAPI grpc_tls_identity_pairs * grpc_tls_identity_pairs_create()
EXPERIMENTAL API - Subject to change.
grpc_ssl_server_credentials_create_options_using_config
GRPCAPI grpc_ssl_server_credentials_options * grpc_ssl_server_credentials_create_options_using_config(grpc_ssl_client_certificate_request_type client_certificate_request, grpc_ssl_server_certificate_config *certificate_config)
Creates an options object using a certificate config.
grpc_auth_metadata_context_reset
GRPCAPI void grpc_auth_metadata_context_reset(grpc_auth_metadata_context *context)
Releases internal resources held by context.
grpc_tls_credentials_create
grpc_channel_credentials * grpc_tls_credentials_create(grpc_tls_credentials_options *options)
EXPERIMENTAL API - Subject to change.
grpc_tls_identity_pairs
struct grpc_tls_identity_pairs grpc_tls_identity_pairs
EXPERIMENTAL API - Subject to change.
Definition: credentials.h:617
grpc_tls_custom_verification_check_request::peer_info::san_names::dns_names
char ** dns_names
Definition: credentials.h:724
grpc_metadata_credentials_create_from_plugin
GRPCAPI grpc_call_credentials * grpc_metadata_credentials_create_from_plugin(grpc_metadata_credentials_plugin plugin, grpc_security_level min_security_level, void *reserved)
Creates a credentials object from a plugin with a specified minimum security level.
grpc_ssl_pem_key_cert_pair::cert_chain
const char * cert_chain
cert_chain is the NULL-terminated string containing the PEM encoding of the client's certificate chai...
Definition: credentials.h:259
grpc_tls_custom_verification_check_request::peer_info::san_names
struct grpc_tls_custom_verification_check_request::peer_info::san_names san_names
grpc_auth_metadata_context::reserved
void * reserved
Reserved for future use.
Definition: credentials.h:122
grpc_tls_credentials_options_set_cert_request_type
GRPCAPI void grpc_tls_credentials_options_set_cert_request_type(grpc_tls_credentials_options *options, grpc_ssl_client_certificate_request_type type)
EXPERIMENTAL API - Subject to change.
grpc_tls_custom_verification_check_request::peer_info
Definition: credentials.h:717
grpc_ssl_server_certificate_config_destroy
GRPCAPI void grpc_ssl_server_certificate_config_destroy(grpc_ssl_server_certificate_config *config)
Destroys a grpc_ssl_server_certificate_config object.
grpc_xds_server_credentials_create
GRPCAPI grpc_server_credentials * grpc_xds_server_credentials_create(grpc_server_credentials *fallback_credentials)
EXPERIMENTAL API - Subject to change.
grpc_types.h
grpc_google_refresh_token_credentials_create
GRPCAPI grpc_call_credentials * grpc_google_refresh_token_credentials_create(const char *json_refresh_token, void *reserved)
Creates an Oauth2 Refresh Token credentials object for connecting to Google.
grpc_tls_certificate_verifier_verify
int grpc_tls_certificate_verifier_verify(grpc_tls_certificate_verifier *verifier, grpc_tls_custom_verification_check_request *request, grpc_tls_on_custom_verification_check_done_cb callback, void *callback_arg, grpc_status_code *sync_status, char **sync_error_details)
EXPERIMENTAL API - Subject to change.
grpc_ssl_server_credentials_options_destroy
GRPCAPI void grpc_ssl_server_credentials_options_destroy(grpc_ssl_server_credentials_options *options)
Destroys a grpc_ssl_server_credentials_options object.
grpc_xds_credentials_create
GRPCAPI grpc_channel_credentials * grpc_xds_credentials_create(grpc_channel_credentials *fallback_credentials)
EXPERIMENTAL API - Subject to change.
grpc_metadata
A single metadata element.
Definition: grpc_types.h:209
grpc_tls_custom_verification_check_request::peer_info::san_names::uri_names
char ** uri_names
Definition: credentials.h:722
grpc_auth_metadata_context::method_name
const char * method_name
The method name of the RPC being called (not fully qualified).
Definition: credentials.h:116
grpc_tls_certificate_verifier_external
EXPERIMENTAL API - Subject to change.
Definition: credentials.h:772
GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX
#define GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX
Maximum number of metadata entries returnable by a credentials plugin via a synchronous return.
Definition: credentials.h:150
grpc_tls_custom_verification_check_request::peer_info::san_names::ip_names_size
size_t ip_names_size
Definition: credentials.h:729
grpc_insecure_credentials_create
GRPCAPI grpc_channel_credentials * grpc_insecure_credentials_create()
— insecure credentials —
grpc_tls_custom_verification_check_request::target_name
const char * target_name
Definition: credentials.h:715
grpc_composite_call_credentials_create
GRPCAPI grpc_call_credentials * grpc_composite_call_credentials_create(grpc_call_credentials *creds1, grpc_call_credentials *creds2, void *reserved)
— composite credentials —
grpc_sts_credentials_options::actor_token_path
const char * actor_token_path
Definition: credentials.h:96
grpc_auth_context
struct grpc_auth_context grpc_auth_context
Definition: credentials.h:43
grpc_sts_credentials_options::scope
const char * scope
Definition: credentials.h:92
grpc_tls_credentials_options_set_root_cert_name
GRPCAPI void grpc_tls_credentials_options_set_root_cert_name(grpc_tls_credentials_options *options, const char *root_cert_name)
EXPERIMENTAL API - Subject to change.
grpc_tls_certificate_verifier_external
struct grpc_tls_certificate_verifier_external grpc_tls_certificate_verifier_external
EXPERIMENTAL API - Subject to change.
grpc_status_code
grpc_status_code
Definition: status.h:28
grpc_tls_certificate_verifier_external::destruct
void(* destruct)(void *user_data)
A function pointer that does some additional destruction work when the verifier is destroyed.
Definition: credentials.h:846
grpc_ssl_roots_override_result
grpc_ssl_roots_override_result
Results for the SSL roots override callback.
Definition: grpc_security_constants.h:66
grpc_tls_certificate_verifier_external::user_data
void * user_data
Definition: credentials.h:773
grpc_tls_credentials_options_create
GRPCAPI grpc_tls_credentials_options * grpc_tls_credentials_options_create(void)
EXPERIMENTAL API - Subject to change.
grpc_tls_certificate_verifier_external::verify
int(* verify)(void *user_data, grpc_tls_custom_verification_check_request *request, grpc_tls_on_custom_verification_check_done_cb callback, void *callback_arg, grpc_status_code *sync_status, char **sync_error_details)
A function pointer containing the verification logic that will be performed after the TLS handshake i...
Definition: credentials.h:807
grpc_server_credentials
struct grpc_server_credentials grpc_server_credentials
— grpc_call_credentials object —
Definition: credentials.h:40
time.h
grpc_tls_custom_verification_check_request::peer_info::san_names::uri_names_size
size_t uri_names_size
Definition: credentials.h:723
grpc_ssl_client_certificate_request_type
grpc_ssl_client_certificate_request_type
Definition: grpc_security_constants.h:79
grpc_set_ssl_roots_override_callback
GRPCAPI void grpc_set_ssl_roots_override_callback(grpc_ssl_roots_override_callback cb)
Setup a callback to override the default TLS/SSL roots.
grpc_tls_version
grpc_tls_version
The TLS versions that are supported by the SSL stack.
Definition: grpc_security_constants.h:146
grpc_metadata_credentials_plugin
grpc_metadata_credentials plugin is an API user provided structure used to create grpc_credentials ob...
Definition: credentials.h:157
grpc_ssl_session_cache_create_channel_arg
GRPCAPI grpc_arg grpc_ssl_session_cache_create_channel_arg(grpc_ssl_session_cache *cache)
Create a channel arg with the given cache object.
grpc_tls_credentials_options_set_max_tls_version
GRPCAPI void grpc_tls_credentials_options_set_max_tls_version(grpc_tls_credentials_options *options, grpc_tls_version max_tls_version)
EXPERIMENTAL API - Subject to change.
grpc_alts_credentials_create
GRPCAPI grpc_channel_credentials * grpc_alts_credentials_create(const grpc_alts_credentials_options *options)
This method creates an ALTS channel credential object.
grpc_google_compute_engine_credentials_options
Context that can be used by the google compute engine create credentials api in order to configure th...
Definition: credentials.h:503
grpc_tls_credentials_options_set_certificate_verifier
void grpc_tls_credentials_options_set_certificate_verifier(grpc_tls_credentials_options *options, grpc_tls_certificate_verifier *verifier)
EXPERIMENTAL API - Subject to change.
grpc_sts_credentials_options::token_exchange_service_uri
const char * token_exchange_service_uri
Definition: credentials.h:89
grpc_composite_channel_credentials_create
GRPCAPI grpc_channel_credentials * grpc_composite_channel_credentials_create(grpc_channel_credentials *channel_creds, grpc_call_credentials *call_creds, void *reserved)
Creates a composite channel credentials object.
grpc_alts_server_credentials_create
GRPCAPI grpc_server_credentials * grpc_alts_server_credentials_create(const grpc_alts_credentials_options *options)
This method creates an ALTS server credential object.
grpc_ssl_session_cache
struct grpc_ssl_session_cache grpc_ssl_session_cache
— SSL Session Cache.
Definition: credentials.h:1092
verify_peer_options
Deprecated in favor of grpc_ssl_verify_peer_options.
Definition: credentials.h:296
grpc_credentials_plugin_metadata_cb
void(* grpc_credentials_plugin_metadata_cb)(void *user_data, const grpc_metadata *creds_md, size_t num_creds_md, grpc_status_code status, const char *error_details)
Callback function to be called by the metadata credentials plugin implementation when the metadata is...
Definition: credentials.h:144
grpc_tls_certificate_provider_static_data_create
GRPCAPI grpc_tls_certificate_provider * grpc_tls_certificate_provider_static_data_create(const char *root_certificate, grpc_tls_identity_pairs *pem_key_cert_pairs)
EXPERIMENTAL API - Subject to change.
grpc_tls_custom_verification_check_request::peer_info::san_names::ip_names
char ** ip_names
Definition: credentials.h:728
grpc_tls_custom_verification_check_request::peer_info::san_names
Definition: credentials.h:721
grpc_insecure_server_credentials_create
GRPCAPI grpc_server_credentials * grpc_insecure_server_credentials_create()
EXPERIMENTAL API - Subject to change.
grpc_tls_credentials_options_set_identity_cert_name
GRPCAPI void grpc_tls_credentials_options_set_identity_cert_name(grpc_tls_credentials_options *options, const char *identity_cert_name)
EXPERIMENTAL API - Subject to change.
grpc_tls_certificate_verifier_release
void grpc_tls_certificate_verifier_release(grpc_tls_certificate_verifier *verifier)
EXPERIMENTAL API - Subject to change.
grpc_access_token_credentials_create
GRPCAPI grpc_call_credentials * grpc_access_token_credentials_create(const char *access_token, void *reserved)
Creates an Oauth2 Access Token credentials with an access token that was acquired by an out of band m...
grpc_auth_metadata_context_copy
GRPCAPI void grpc_auth_metadata_context_copy(grpc_auth_metadata_context *from, grpc_auth_metadata_context *to)
Performs a deep copy from from to to.
grpc_security_level
grpc_security_level
Definition: grpc_security_constants.h:131
grpc_ssl_server_certificate_config_callback
grpc_ssl_certificate_config_reload_status(* grpc_ssl_server_certificate_config_callback)(void *user_data, grpc_ssl_server_certificate_config **config)
Callback to retrieve updated SSL server certificates, private keys, and trusted CAs (for client authe...
Definition: credentials.h:289
grpc_service_account_jwt_access_credentials_create
GRPCAPI grpc_call_credentials * grpc_service_account_jwt_access_credentials_create(const char *json_key, gpr_timespec token_lifetime, void *reserved)
Creates a JWT credentials object.
grpc_tls_credentials_options_set_crl_directory
GRPCAPI void grpc_tls_credentials_options_set_crl_directory(grpc_tls_credentials_options *options, const char *crl_directory)
Deprecated in favor of grpc_tls_credentials_options_set_crl_provider.
grpc_metadata_credentials_plugin::type
const char * type
Type of credentials that this plugin is implementing.
Definition: credentials.h:194
grpc_ssl_credentials_create
GRPCAPI grpc_channel_credentials * grpc_ssl_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const verify_peer_options *verify_options, void *reserved)
Deprecated in favor of grpc_ssl_server_credentials_create_ex.
grpc_local_credentials_create
GRPCAPI grpc_channel_credentials * grpc_local_credentials_create(grpc_local_connect_type type)
— Local channel/server credentials —
grpc_auth_metadata_context::channel_auth_context
const grpc_auth_context * channel_auth_context
The auth_context of the channel which gives the server's identity.
Definition: credentials.h:119
grpc_tls_credentials_options_set_certificate_provider
GRPCAPI void grpc_tls_credentials_options_set_certificate_provider(grpc_tls_credentials_options *options, grpc_tls_certificate_provider *provider)
EXPERIMENTAL API - Subject to change.
grpc_sts_credentials_options::requested_token_type
const char * requested_token_type
Definition: credentials.h:93
grpc_google_default_credentials_create
GRPCAPI grpc_channel_credentials * grpc_google_default_credentials_create(grpc_call_credentials *call_creds_for_tls, grpc_google_default_credentials_options *options)
grpc_ssl_session_cache_create_lru
GRPCAPI grpc_ssl_session_cache * grpc_ssl_session_cache_create_lru(size_t capacity)
Create LRU cache for client-side SSL sessions with the given capacity.
grpc_process_auth_metadata_done_cb
void(* grpc_process_auth_metadata_done_cb)(void *user_data, const grpc_metadata *consumed_md, size_t num_consumed_md, const grpc_metadata *response_md, size_t num_response_md, grpc_status_code status, const char *error_details)
— Auth Metadata Processing —
Definition: credentials.h:473
grpc_tls_custom_verification_check_request::peer_info::san_names::dns_names_size
size_t dns_names_size
Definition: credentials.h:725
grpc_ssl_roots_override_callback
grpc_ssl_roots_override_result(* grpc_ssl_roots_override_callback)(char **pem_root_certs)
Callback for getting the SSL roots override from the application.
Definition: credentials.h:1112
grpc_auth_metadata_processor
Pluggable server-side metadata processor object.
Definition: credentials.h:479
grpc_security_constants.h
grpc_tls_certificate_verifier_host_name_create
grpc_tls_certificate_verifier * grpc_tls_certificate_verifier_host_name_create()
EXPERIMENTAL API - Subject to change.
grpc_tls_server_credentials_create
grpc_server_credentials * grpc_tls_server_credentials_create(grpc_tls_credentials_options *options)
EXPERIMENTAL API - Subject to change.
grpc_google_default_credentials_options::call_creds_for_alts
grpc_call_credentials * call_creds_for_alts
Definition: credentials.h:237
grpc_google_compute_engine_credentials_create
GRPCAPI grpc_call_credentials * grpc_google_compute_engine_credentials_create(grpc_google_compute_engine_credentials_options *options)
Creates a compute engine credentials object for connecting to Google.
grpc_tls_credentials_options_watch_identity_key_cert_pairs
GRPCAPI void grpc_tls_credentials_options_watch_identity_key_cert_pairs(grpc_tls_credentials_options *options)
EXPERIMENTAL API - Subject to change.
grpc_tls_credentials_options_set_verify_server_cert
GRPCAPI void grpc_tls_credentials_options_set_verify_server_cert(grpc_tls_credentials_options *options, int verify_server_cert)
EXPERIMENTAL API - Subject to change.
grpc_max_auth_token_lifetime
GRPCAPI gpr_timespec grpc_max_auth_token_lifetime(void)
grpc_tls_custom_verification_check_request
EXPERIMENTAL API - Subject to change.
Definition: credentials.h:712
grpc_call_credentials
struct grpc_call_credentials grpc_call_credentials
Definition: credentials.h:42
grpc_google_default_credentials_options
Creates default credentials to connect to a google gRPC service.
Definition: credentials.h:235
grpc_external_account_credentials_create
GRPCAPI grpc_call_credentials * grpc_external_account_credentials_create(const char *json_string, const char *scopes_string)
Builds External Account credentials.
grpc_alts_credentials_options
struct grpc_alts_credentials_options grpc_alts_credentials_options
— ALTS channel/server credentials —
Definition: credentials.h:531
grpc_tls_identity_pairs_destroy
GRPCAPI void grpc_tls_identity_pairs_destroy(grpc_tls_identity_pairs *pairs)
EXPERIMENTAL API - Subject to change.
grpc_sts_credentials_options::actor_token_type
const char * actor_token_type
Definition: credentials.h:97
grpc_tls_credentials_options_set_send_client_ca_list
GRPCAPI void grpc_tls_credentials_options_set_send_client_ca_list(grpc_tls_credentials_options *options, bool send_client_ca_list)
EXPERIMENTAL API - Subject to change.
grpc_server_credentials_set_auth_metadata_processor
GRPCAPI void grpc_server_credentials_set_auth_metadata_processor(grpc_server_credentials *creds, grpc_auth_metadata_processor processor)
grpc_tls_certificate_provider_file_watcher_create
GRPCAPI grpc_tls_certificate_provider * grpc_tls_certificate_provider_file_watcher_create(const char *private_key_path, const char *identity_certificate_path, const char *root_cert_path, const char *spiffe_bundle_map_path, unsigned int refresh_interval_sec)
EXPERIMENTAL API - Subject to change.
gpr_timespec
Analogous to struct timespec.
Definition: time.h:47
grpc_tls_certificate_verifier
struct grpc_tls_certificate_verifier grpc_tls_certificate_verifier
EXPERIMENTAL API - Subject to change.
Definition: credentials.h:764
grpc_google_default_credentials_options::create_hard_bound_credentials
bool create_hard_bound_credentials
Definition: credentials.h:236
grpc_call_credentials_release
GRPCAPI void grpc_call_credentials_release(grpc_call_credentials *creds)
— channel credentials —
grpc_auth_metadata_context
Context that can be used by metadata credentials plugin in order to create auth related metadata.
Definition: credentials.h:109
slice.h
grpc_tls_custom_verification_check_request
struct grpc_tls_custom_verification_check_request grpc_tls_custom_verification_check_request
EXPERIMENTAL API - Subject to change.
grpc_sts_credentials_options::subject_token_type
const char * subject_token_type
Definition: credentials.h:95
grpc_tls_credentials_options_watch_root_certs
GRPCAPI void grpc_tls_credentials_options_watch_root_certs(grpc_tls_credentials_options *options)
EXPERIMENTAL API - Subject to change.
grpc_tls_custom_verification_check_request::peer_info
struct grpc_tls_custom_verification_check_request::peer_info peer_info
grpc_tls_custom_verification_check_request::peer_info::verified_root_cert_subject
const char * verified_root_cert_subject
Definition: credentials.h:742
grpc_tls_credentials_options_destroy
GRPCAPI void grpc_tls_credentials_options_destroy(grpc_tls_credentials_options *options)
EXPERIMENTAL API - Subject to change.
grpc_tls_certificate_provider
struct grpc_tls_certificate_provider grpc_tls_certificate_provider
— TLS channel/server credentials — It is used for experimental purpose for now and subject to change.
Definition: credentials.h:609
grpc_local_connect_type
grpc_local_connect_type
Type of local connections for which local channel/server credentials will be applied.
Definition: grpc_security_constants.h:143
grpc_google_iam_credentials_create
GRPCAPI grpc_call_credentials * grpc_google_iam_credentials_create(const char *authorization_token, const char *authority_selector, void *reserved)
Creates an IAM credentials object for connecting to Google.
grpc_ssl_pem_key_cert_pair
Object that holds a private key / certificate chain pair in PEM format.
Definition: credentials.h:252
grpc_tls_custom_verification_check_request::peer_info::san_names::email_names_size
size_t email_names_size
Definition: credentials.h:727
status.h
grpc_tls_certificate_verifier_cancel
void grpc_tls_certificate_verifier_cancel(grpc_tls_certificate_verifier *verifier, grpc_tls_custom_verification_check_request *request)
EXPERIMENTAL API - Subject to change.
grpc_ssl_server_credentials_options
struct grpc_ssl_server_credentials_options grpc_ssl_server_credentials_options
Definition: credentials.h:428
grpc_auth_metadata_processor::state
void * state
Definition: credentials.h:488
grpc_tls_certificate_verifier_no_op_create
grpc_tls_certificate_verifier * grpc_tls_certificate_verifier_no_op_create()
EXPERIMENTAL API - Subject to change.
grpc_tls_identity_pairs_add_pair
GRPCAPI void grpc_tls_identity_pairs_add_pair(grpc_tls_identity_pairs *pairs, const char *private_key, const char *cert_chain)
EXPERIMENTAL API - Subject to change.
port_platform.h
grpc_local_server_credentials_create
GRPCAPI grpc_server_credentials * grpc_local_server_credentials_create(grpc_local_connect_type type)
This method creates a local server credential object.