Go to the documentation of this file.
56 #define GRPC_JWT_RSA_SHA256_ALGORITHM "RS256"
57 #define GRPC_JWT_TYPE "JWT"
67 return (json_key !=
nullptr) &&
74 const char* prop_value;
80 if (json.
type() == Json::Type::JSON_NULL) {
87 if (prop_value ==
nullptr ||
103 if (prop_value ==
nullptr) {
107 success =
BIO_puts(bio, prop_value);
108 if ((success < 0) || (
static_cast<size_t>(success) != strlen(prop_value))) {
114 if (
result.private_key ==
nullptr) {
127 const char* json_string) {
135 if (json_key ==
nullptr)
return;
158 Json json = Json::Object{
168 const char* audience,
173 gpr_log(
GPR_INFO,
"Cropping token lifetime to maximum allowed value.");
177 Json::Object
object = {
181 {
"exp", expiration.
tv_sec},
183 if (scope !=
nullptr) {
184 object[
"scope"] = scope;
196 size_t str1_len = strlen(str1);
197 size_t str2_len = strlen(str2);
198 size_t result_len = str1_len + 1 + str2_len;
200 static_cast<char*
>(
gpr_malloc(result_len + 1 ));
202 memcpy(current, str1, str1_len);
205 memcpy(current, str2, str2_len);
226 const char* to_sign) {
231 unsigned char* sig =
nullptr;
233 if (
md ==
nullptr)
return nullptr;
235 if (md_ctx ==
nullptr) {
252 sig =
static_cast<unsigned char*
>(
gpr_malloc(sig_len));
267 const char* audience,
278 if (sig ==
nullptr) {
static char * encoded_jwt_claim(const grpc_auth_json_key *json_key, const char *audience, gpr_timespec token_lifetime, const char *scope)
#define EVP_DigestSignInit
gpr_timespec grpc_max_auth_token_lifetime()
#define GRPC_AUTH_JSON_TYPE_SERVICE_ACCOUNT
return memset(p, 0, total)
const EVP_MD * openssl_digest_from_algorithm(const char *algorithm)
char * grpc_jwt_encode_and_sign(const grpc_auth_json_key *json_key, const char *audience, gpr_timespec token_lifetime, const char *scope)
GPRAPI void gpr_free(void *ptr)
GPRAPI void * gpr_malloc(size_t size)
const char * grpc_json_get_string_property(const grpc_core::Json &json, const char *prop_name, grpc_error_handle *error)
#define GRPC_LOG_IF_ERROR(what, error)
void grpc_auth_json_key_destruct(grpc_auth_json_key *json_key)
const OPENSSL_EXPORT EVP_MD * EVP_sha256(void)
grpc_auth_json_key grpc_auth_json_key_create_from_string(const char *json_string)
static grpc_jwt_encode_and_sign_override g_jwt_encode_and_sign_override
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
#define EVP_DigestSignFinal
int grpc_auth_json_key_is_valid(const grpc_auth_json_key *json_key)
GPRAPI int gpr_time_cmp(gpr_timespec a, gpr_timespec b)
JSON (JavaScript Object Notation).
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
const CBS size_t uint32_t key_id
bool Parse(FlagOpFn op, absl::string_view text, void *dst, std::string *error)
bool grpc_copy_json_string_property(const grpc_core::Json &json, const char *prop_name, char **copied_value)
_W64 unsigned int uintptr_t
GPRAPI gpr_timespec gpr_now(gpr_clock_type clock)
char * grpc_base64_encode(const void *vdata, size_t data_size, int url_safe, int multiline)
grpc_auth_json_key grpc_auth_json_key_create_from_json(const Json &json)
char *(* grpc_jwt_encode_and_sign_override)(const grpc_auth_json_key *json_key, const char *audience, gpr_timespec token_lifetime, const char *scope)
#define EVP_PKEY_set1_RSA
#define EVP_MD_CTX_destroy
#define GRPC_JWT_RSA_SHA256_ALGORITHM
GPRAPI gpr_timespec gpr_time_add(gpr_timespec a, gpr_timespec b)
static char * dot_concat_and_free_strings(char *str1, char *str2)
RSA * PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **rsa, pem_password_cb *cb, void *u)
#define EVP_DigestSignUpdate
static char * encoded_jwt_header(const char *key_id, const char *algorithm)
char * compute_and_encode_signature(const grpc_auth_json_key *json_key, const char *signature_algorithm, const char *to_sign)
#define EVP_MD_CTX_create
void grpc_jwt_encode_and_sign_set_override(grpc_jwt_encode_and_sign_override func)
std::string Dump(int indent=0) const
uint16_t signature_algorithm
#define GRPC_AUTH_JSON_TYPE_INVALID
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:25