libjwt-1.17.0
|
JWT C Library. More...
#include <stdio.h>
#include <time.h>
Go to the source code of this file.
Data Structures | |
struct | jwt_key_t |
Structure used by key provider to return a key. More... | |
Macros | |
#define | DEPRECATED(func) |
#define | JWT_EXPORT |
#define | JWT_ALG_INVAL |
#define | JWT_VALIDATION_SUCCESS |
JWT Validation exception types. | |
#define | JWT_VALIDATION_ERROR |
#define | JWT_VALIDATION_ALG_MISMATCH |
#define | JWT_VALIDATION_EXPIRED |
#define | JWT_VALIDATION_TOO_NEW |
#define | JWT_VALIDATION_ISS_MISMATCH |
#define | JWT_VALIDATION_SUB_MISMATCH |
#define | JWT_VALIDATION_AUD_MISMATCH |
#define | JWT_VALIDATION_GRANT_MISSING |
#define | JWT_VALIDATION_GRANT_MISMATCH |
Typedefs | |
typedef struct jwt | jwt_t |
Opaque JWT object. | |
typedef struct jwt_valid | jwt_valid_t |
Opaque JWT validation object. | |
typedef enum jwt_alg | jwt_alg_t |
JWT algorithm types. | |
typedef void *(* | jwt_malloc_t) (size_t) |
JWT Memory allocation overrides. | |
typedef void *(* | jwt_realloc_t) (void *, size_t) |
typedef void(* | jwt_free_t) (void *) |
typedef int(* | jwt_key_p_t) (const jwt_t *, jwt_key_t *) |
Key provider - inspects the JWT to obtain the key used to verify the signature. | |
Enumerations | |
enum | jwt_alg { JWT_ALG_NONE , JWT_ALG_HS256 , JWT_ALG_HS384 , JWT_ALG_HS512 , JWT_ALG_RS256 , JWT_ALG_RS384 , JWT_ALG_RS512 , JWT_ALG_ES256 , JWT_ALG_ES384 , JWT_ALG_ES512 , JWT_ALG_PS256 , JWT_ALG_PS384 , JWT_ALG_PS512 , JWT_ALG_TERM } |
JWT algorithm types. More... | |
Functions | |
int | jwt_new (jwt_t **jwt) |
Allocate a new, empty, JWT object. | |
int | jwt_decode (jwt_t **jwt, const char *token, const unsigned char *key, int key_len) |
Verify an existing JWT and allocate a new JWT object from it. | |
int | jwt_decode_2 (jwt_t **jwt, const char *token, jwt_key_p_t key_provider) |
Like jwt_decode(), but the key will be obtained via the key provider. | |
void | jwt_free (jwt_t *jwt) |
Free a JWT object and any other resources it is using. | |
jwt_t * | jwt_dup (jwt_t *jwt) |
Duplicate an existing JWT object. | |
const char * | jwt_get_grant (jwt_t *jwt, const char *grant) |
Return the value of a string grant. | |
long | jwt_get_grant_int (jwt_t *jwt, const char *grant) |
Return the value of an integer grant. | |
int | jwt_get_grant_bool (jwt_t *jwt, const char *grant) |
Return the value of an boolean grant. | |
char * | jwt_get_grants_json (jwt_t *jwt, const char *grant) |
Return the value of a grant as JSON encoded object string. | |
int | jwt_add_grant (jwt_t *jwt, const char *grant, const char *val) |
Add a new string grant to this JWT object. | |
int | jwt_add_grant_int (jwt_t *jwt, const char *grant, long val) |
Add a new integer grant to this JWT object. | |
int | jwt_add_grant_bool (jwt_t *jwt, const char *grant, int val) |
Add a new boolean grant to this JWT object. | |
int | jwt_add_grants_json (jwt_t *jwt, const char *json) |
Add grants from a JSON encoded object string. | |
int | jwt_del_grants (jwt_t *jwt, const char *grant) |
Delete a grant from this JWT object. | |
const char * | jwt_get_header (jwt_t *jwt, const char *header) |
Return the value of a string header. | |
long | jwt_get_header_int (jwt_t *jwt, const char *header) |
Return the value of an integer header. | |
int | jwt_get_header_bool (jwt_t *jwt, const char *header) |
Return the value of an boolean header. | |
char * | jwt_get_headers_json (jwt_t *jwt, const char *header) |
Return the value of a header as JSON encoded object string. | |
int | jwt_add_header (jwt_t *jwt, const char *header, const char *val) |
Add a new string header to this JWT object. | |
int | jwt_add_header_int (jwt_t *jwt, const char *header, long val) |
Add a new integer header to this JWT object. | |
int | jwt_add_header_bool (jwt_t *jwt, const char *header, int val) |
Add a new boolean header to this JWT object. | |
int | jwt_add_headers_json (jwt_t *jwt, const char *json) |
Add headers from a JSON encoded object string. | |
int | jwt_del_headers (jwt_t *jwt, const char *header) |
Delete a header from this JWT object. | |
int | jwt_dump_fp (jwt_t *jwt, FILE *fp, int pretty) |
Output plain text representation to a FILE pointer. | |
char * | jwt_dump_str (jwt_t *jwt, int pretty) |
Return plain text representation as a string. | |
int | jwt_encode_fp (jwt_t *jwt, FILE *fp) |
Fully encode a JWT object and write it to FILE. | |
char * | jwt_encode_str (jwt_t *jwt) |
Fully encode a JWT object and return as a string. | |
void | jwt_free_str (char *str) |
Free a string returned from the library. | |
int | jwt_set_alg (jwt_t *jwt, jwt_alg_t alg, const unsigned char *key, int len) |
Set an algorithm from jwt_alg_t for this JWT object. | |
jwt_alg_t | jwt_get_alg (const jwt_t *jwt) |
Get the jwt_alg_t set for this JWT object. | |
const char * | jwt_alg_str (jwt_alg_t alg) |
Convert alg type to it's string representation. | |
jwt_alg_t | jwt_str_alg (const char *alg) |
Convert alg string to type. | |
int | jwt_set_alloc (jwt_malloc_t pmalloc, jwt_realloc_t prealloc, jwt_free_t pfree) |
Set functions to be used for allocating and freeing memory. | |
void | jwt_get_alloc (jwt_malloc_t *pmalloc, jwt_realloc_t *prealloc, jwt_free_t *pfree) |
Get functions used for allocating and freeing memory. | |
unsigned int | jwt_validate (jwt_t *jwt, jwt_valid_t *jwt_valid) |
Validate a JWT object with a validation object. | |
int | jwt_valid_new (jwt_valid_t **jwt_valid, jwt_alg_t alg) |
Allocate a new, JWT validation object. | |
void | jwt_valid_free (jwt_valid_t *jwt_valid) |
Free a JWT validation object and any other resources it is using. | |
unsigned int | jwt_valid_get_status (jwt_valid_t *jwt_valid) |
Return the status string for the validation object. | |
time_t | jwt_valid_get_nbf_leeway (jwt_valid_t *jwt_valid) |
Return the nbf_leeway value set. | |
time_t | jwt_valid_get_exp_leeway (jwt_valid_t *jwt_valid) |
Return the exp_leeway value set. | |
int | jwt_valid_add_grant (jwt_valid_t *jwt_valid, const char *grant, const char *val) |
Add a new string grant requirement to this JWT validation object. | |
const char * | jwt_valid_get_grant (jwt_valid_t *jwt_valid, const char *grant) |
Return the value of a string required grant. | |
int | jwt_valid_add_grant_int (jwt_valid_t *jwt_valid, const char *grant, long val) |
Add a new integer grant requirement to this JWT validation object. | |
long | jwt_valid_get_grant_int (jwt_valid_t *jwt_valid, const char *grant) |
Return the value of an integer required grant. | |
int | jwt_valid_add_grant_bool (jwt_valid_t *jwt_valid, const char *grant, int val) |
Add a new boolean required grant to this JWT validation object. | |
int | jwt_valid_get_grant_bool (jwt_valid_t *jwt_valid, const char *grant) |
Return the value of an boolean required grant. | |
int | jwt_valid_add_grants_json (jwt_valid_t *jwt_valid, const char *json) |
Add required grants from a JSON encoded object string. | |
char * | jwt_valid_get_grants_json (jwt_valid_t *jwt_valid, const char *grant) |
Return the value of a grant as JSON encoded object string. | |
int | jwt_valid_del_grants (jwt_valid_t *jwt_valid, const char *grant) |
Delete a grant from this JWT object. | |
int | jwt_valid_set_now (jwt_valid_t *jwt_valid, const time_t now) |
Set the time for which expires and not-before claims should be evaluated. | |
int | jwt_valid_set_nbf_leeway (jwt_valid_t *jwt_valid, const time_t nbf_leeway) |
Set the nbf_leeway value as defined in: https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5. | |
int | jwt_valid_set_exp_leeway (jwt_valid_t *jwt_valid, const time_t exp_leeway) |
Set the exp_leeway value as defined in: https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4. | |
int | jwt_valid_set_headers (jwt_valid_t *jwt_valid, int hdr) |
Set validation for replicated claims in headers. | |
char * | jwt_exception_str (unsigned int exceptions) |
Parses exceptions and returns a comma delimited and human-readable string. | |
JWT C Library.
Definition in file jwt.h.
#define JWT_VALIDATION_SUCCESS |
typedef void *(* jwt_malloc_t) (size_t) |
typedef struct jwt_valid jwt_valid_t |