34 #ifndef GRPC_INTERNAL_CORE_SECURITY_CREDENTIALS_H
35 #define GRPC_INTERNAL_CORE_SECURITY_CREDENTIALS_H
37 #include "src/core/transport/stream_op.h"
38 #include <grpc/grpc.h>
39 #include <grpc/grpc_security.h>
40 #include <grpc/support/sync.h>
42 #include "src/core/security/security_connector.h"
49 GRPC_CREDENTIALS_OK = 0,
50 GRPC_CREDENTIALS_ERROR
51 } grpc_credentials_status;
53 #define GRPC_CREDENTIALS_TYPE_SSL "Ssl"
54 #define GRPC_CREDENTIALS_TYPE_OAUTH2 "Oauth2"
55 #define GRPC_CREDENTIALS_TYPE_JWT "Jwt"
56 #define GRPC_CREDENTIALS_TYPE_IAM "Iam"
57 #define GRPC_CREDENTIALS_TYPE_COMPOSITE "Composite"
58 #define GRPC_CREDENTIALS_TYPE_FAKE_TRANSPORT_SECURITY "FakeTransportSecurity"
60 #define GRPC_AUTHORIZATION_METADATA_KEY "Authorization"
61 #define GRPC_IAM_AUTHORIZATION_TOKEN_METADATA_KEY \
62 "x-goog-iam-authorization-token"
63 #define GRPC_IAM_AUTHORITY_SELECTOR_METADATA_KEY "x-goog-iam-authority-selector"
65 #define GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY "gcloud"
66 #define GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE \
67 "application_default_credentials.json"
69 #define GRPC_SECURE_TOKEN_REFRESH_THRESHOLD_SECS 60
71 #define GRPC_COMPUTE_ENGINE_METADATA_HOST "metadata"
72 #define GRPC_COMPUTE_ENGINE_METADATA_TOKEN_PATH \
73 "/computeMetadata/v1/instance/service-accounts/default/token"
75 #define GRPC_GOOGLE_OAUTH2_SERVICE_HOST "www.googleapis.com"
76 #define GRPC_GOOGLE_OAUTH2_SERVICE_TOKEN_PATH "/oauth2/v3/token"
78 #define GRPC_SERVICE_ACCOUNT_POST_BODY_PREFIX \
79 "grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&" \
82 #define GRPC_REFRESH_TOKEN_POST_BODY_FORMAT_STRING \
83 "client_id=%s&client_secret=%s&refresh_token=%s&grant_type=refresh_token"
88 char *grpc_get_well_known_google_credentials_file_path(
void);
90 typedef void (*grpc_credentials_metadata_cb)(
void *user_data,
93 grpc_credentials_status status);
101 const char *service_url,
102 grpc_credentials_metadata_cb cb,
104 grpc_security_status (*create_security_connector)(
122 const char *service_url,
123 grpc_credentials_metadata_cb cb,
128 grpc_mdctx *grpc_credentials_get_or_create_metadata_context(
135 grpc_security_status grpc_credentials_create_security_connector(
157 grpc_credentials_status
158 grpc_oauth2_token_fetcher_credentials_parse_server_response(
164 const char *token_md_value,
int is_async);
170 grpc_security_status (*create_security_connector)(
179 grpc_security_status grpc_server_credentials_create_security_connector(
Definition: credentials.h:95
Definition: credentials.h:168
Definition: sync_generic.h:49
Definition: credentials.h:174
Definition: credentials.h:111
Definition: credentials.h:140
Definition: metadata.c:83
Definition: metadata.h:78
Definition: security_connector.h:75
Definition: security_connector.h:121