#include <grpc/support/port_platform.h>
#include "src/core/lib/security/credentials/jwt/json_token.h"
#include <stdint.h>
#include <string.h>
#include <string>
#include <utility>
#include <openssl/bio.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include <grpc/grpc_security.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/time.h>
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/security/util/json_util.h"
#include "src/core/lib/slice/b64.h"
Json;
gpr_timespec grpc_max_auth_token_lifetime() { … }
#define GRPC_JWT_RSA_SHA256_ALGORITHM …
#define GRPC_JWT_TYPE …
static grpc_jwt_encode_and_sign_override g_jwt_encode_and_sign_override = …;
int grpc_auth_json_key_is_valid(const grpc_auth_json_key* json_key) { … }
grpc_auth_json_key grpc_auth_json_key_create_from_json(const Json& json) { … }
grpc_auth_json_key grpc_auth_json_key_create_from_string(
const char* json_string) { … }
void grpc_auth_json_key_destruct(grpc_auth_json_key* json_key) { … }
static char* encoded_jwt_header(const char* key_id, const char* algorithm) { … }
static char* encoded_jwt_claim(const grpc_auth_json_key* json_key,
const char* audience,
gpr_timespec token_lifetime, const char* scope) { … }
static char* dot_concat_and_free_strings(char* str1, char* str2) { … }
const EVP_MD* openssl_digest_from_algorithm(const char* algorithm) { … }
char* compute_and_encode_signature(const grpc_auth_json_key* json_key,
const char* signature_algorithm,
const char* to_sign) { … }
char* grpc_jwt_encode_and_sign(const grpc_auth_json_key* json_key,
const char* audience,
gpr_timespec token_lifetime, const char* scope) { … }
void grpc_jwt_encode_and_sign_set_override(
grpc_jwt_encode_and_sign_override func) { … }