Yuneta-adapted fork of the libjwt C library for JSON Web Tokens, JSON Web Keys (JWK), and JWK Sets (JWKS).
The upstream libjwt changed its API and removed functions required by Yuneta, so this is a maintained fork tailored to Yuneta’s needs.
Source: kernel/c/libjwt/src/jwt.h
Core¶
jwt_get_alg()¶
jwt_alg_t jwt_get_alg(const jwt_t *jwt);jwt_alg_str()¶
const char *jwt_alg_str(jwt_alg_t alg);jwt_str_alg()¶
jwt_alg_t jwt_str_alg(const char *alg);jwt_set_alloc()¶
int jwt_set_alloc(jwt_malloc_t pmalloc, jwt_free_t pfree);jwt_get_alloc()¶
void jwt_get_alloc(jwt_malloc_t *pmalloc, jwt_free_t *pfree);jwt_get_crypto_ops()¶
const char *jwt_get_crypto_ops(void);jwt_get_crypto_ops_t()¶
jwt_crypto_provider_t jwt_get_crypto_ops_t(void);jwt_set_crypto_ops()¶
int jwt_set_crypto_ops(const char *opname);jwt_set_crypto_ops_t()¶
int jwt_set_crypto_ops_t(jwt_crypto_provider_t opname);jwt_crypto_ops_supports_jwk()¶
int jwt_crypto_ops_supports_jwk(void);jwt_init()¶
void jwt_init(void);Builder¶
jwt_builder_new()¶
jwt_builder_t *jwt_builder_new(void);jwt_builder_free()¶
void jwt_builder_free(jwt_builder_t *builder);jwt_builder_error()¶
int jwt_builder_error(const jwt_builder_t *builder);jwt_builder_error_msg()¶
const char *jwt_builder_error_msg(const jwt_builder_t *builder);jwt_builder_error_clear()¶
void jwt_builder_error_clear(jwt_builder_t *builder);jwt_builder_setkey()¶
int jwt_builder_setkey(jwt_builder_t *builder, const jwt_alg_t alg, const jwk_item_t *key);jwt_builder_enable_iat()¶
int jwt_builder_enable_iat(jwt_builder_t *builder, int enable);jwt_builder_setcb()¶
int jwt_builder_setcb(jwt_builder_t *builder, jwt_callback_t cb, void *ctx);jwt_builder_getctx()¶
void *jwt_builder_getctx(jwt_builder_t *builder);jwt_builder_generate()¶
char *jwt_builder_generate(jwt_builder_t *builder);jwt_builder_header_set()¶
jwt_value_error_t jwt_builder_header_set(jwt_builder_t *builder, jwt_value_t *value);jwt_builder_header_get()¶
jwt_value_error_t jwt_builder_header_get(jwt_builder_t *builder, jwt_value_t *value);jwt_builder_header_del()¶
jwt_value_error_t jwt_builder_header_del(jwt_builder_t *builder, const char *header);jwt_builder_claim_set()¶
jwt_value_error_t jwt_builder_claim_set(jwt_builder_t *builder, jwt_value_t *value);jwt_builder_claim_get()¶
jwt_value_error_t jwt_builder_claim_get(jwt_builder_t *builder, jwt_value_t *value);jwt_builder_claim_del()¶
jwt_value_error_t jwt_builder_claim_del(jwt_builder_t *builder, const char *claim);jwt_builder_time_offset()¶
int jwt_builder_time_offset(jwt_builder_t *builder, jwt_claims_t claim, time_t secs);Checker¶
jwt_checker_new()¶
jwt_checker_t *jwt_checker_new(void);jwt_checker_free()¶
void jwt_checker_free(jwt_checker_t *checker);jwt_checker_error()¶
int jwt_checker_error(const jwt_checker_t *checker);jwt_checker_error_msg()¶
const char *jwt_checker_error_msg(const jwt_checker_t *checker);jwt_checker_error_clear()¶
void jwt_checker_error_clear(jwt_checker_t *checker);jwt_checker_setkey()¶
int jwt_checker_setkey(jwt_checker_t *checker, const jwt_alg_t alg, const jwk_item_t *key);jwt_checker_setcb()¶
int jwt_checker_setcb(jwt_checker_t *checker, jwt_callback_t cb, void *ctx);jwt_checker_getctx()¶
void *jwt_checker_getctx(jwt_checker_t *checker);jwt_checker_verify()¶
int jwt_checker_verify(jwt_checker_t *checker, const char *token);jwt_checker_claim_get()¶
const char *jwt_checker_claim_get(jwt_checker_t *checker, jwt_claims_t type);jwt_checker_claim_set()¶
int jwt_checker_claim_set(jwt_checker_t *checker, jwt_claims_t type, const char *value);jwt_checker_claim_del()¶
int jwt_checker_claim_del(jwt_checker_t *checker, jwt_claims_t type);jwt_checker_time_leeway()¶
int jwt_checker_time_leeway(jwt_checker_t *checker, jwt_claims_t claim, time_t secs);JWT Header & Claims (legacy)¶
jwt_header_set()¶
jwt_value_error_t jwt_header_set(jwt_t *jwt, jwt_value_t *value);jwt_header_get()¶
jwt_value_error_t jwt_header_get(jwt_t *jwt, jwt_value_t *value);jwt_header_del()¶
jwt_value_error_t jwt_header_del(jwt_t *jwt, const char *header);jwt_claim_set()¶
jwt_value_error_t jwt_claim_set(jwt_t *jwt, jwt_value_t *value);jwt_claim_get()¶
jwt_value_error_t jwt_claim_get(jwt_t *jwt, jwt_value_t *value);jwt_claim_del()¶
jwt_value_error_t jwt_claim_del(jwt_t *jwt, const char *claim);JWK / JWKS¶
jwks_load()¶
jwk_set_t *jwks_load(jwk_set_t *jwk_set, const char *jwk_json_str);jwks_load_strn()¶
jwk_set_t *jwks_load_strn(jwk_set_t *jwk_set, const char *jwk_json_str, const size_t len);jwks_load_fromfile()¶
jwk_set_t *jwks_load_fromfile(jwk_set_t *jwk_set, const char *file_name);jwks_load_fromfp()¶
jwk_set_t *jwks_load_fromfp(jwk_set_t *jwk_set, FILE *input);jwks_load_fromurl()¶
jwk_set_t *jwks_load_fromurl(jwk_set_t *jwk_set, const char *url, int verify);jwks_create()¶
jwk_set_t *jwks_create(const char *jwk_json_str);jwks_create_strn()¶
jwk_set_t *jwks_create_strn(const char *jwk_json_str, const size_t len);jwks_create_fromfile()¶
jwk_set_t *jwks_create_fromfile(const char *file_name);jwks_create_fromfp()¶
jwk_set_t *jwks_create_fromfp(FILE *input);jwks_create_fromurl()¶
jwk_set_t *jwks_create_fromurl(const char *url, int verify);jwks_error()¶
int jwks_error(const jwk_set_t *jwk_set);jwks_error_any()¶
int jwks_error_any(const jwk_set_t *jwk_set);jwks_error_msg()¶
const char *jwks_error_msg(const jwk_set_t *jwk_set);jwks_error_clear()¶
void jwks_error_clear(jwk_set_t *jwk_set);jwks_free()¶
void jwks_free(jwk_set_t *jwk_set);jwks_item_get()¶
const jwk_item_t *jwks_item_get(const jwk_set_t *jwk_set, size_t index);jwks_find_bykid()¶
jwk_item_t *jwks_find_bykid(jwk_set_t *jwk_set, const char *kid);jwks_item_is_private()¶
int jwks_item_is_private(const jwk_item_t *item);jwks_item_error()¶
int jwks_item_error(const jwk_item_t *item);jwks_item_error_msg()¶
const char *jwks_item_error_msg(const jwk_item_t *item);jwks_item_curve()¶
const char *jwks_item_curve(const jwk_item_t *item);jwks_item_kid()¶
const char *jwks_item_kid(const jwk_item_t *item);jwks_item_alg()¶
jwt_alg_t jwks_item_alg(const jwk_item_t *item);jwks_item_kty()¶
jwk_key_type_t jwks_item_kty(const jwk_item_t *item);jwks_item_use()¶
jwk_pub_key_use_t jwks_item_use(const jwk_item_t *item);jwks_item_key_ops()¶
jwk_key_op_t jwks_item_key_ops(const jwk_item_t *item);jwks_item_pem()¶
const char *jwks_item_pem(const jwk_item_t *item);jwks_item_key_oct()¶
int jwks_item_key_oct(const jwk_item_t *item, const unsigned char **buf, size_t *len);jwks_item_key_bits()¶
int jwks_item_key_bits(const jwk_item_t *item);jwks_item_free()¶
int jwks_item_free(jwk_set_t *jwk_set, size_t index);jwks_item_free_all()¶
int jwks_item_free_all(jwk_set_t *jwk_set);jwks_item_free_bad()¶
int jwks_item_free_bad(jwk_set_t *jwk_set);jwks_item_count()¶
size_t jwks_item_count(const jwk_set_t *jwk_set);