21 #define DEPRECATED(func) __declspec(deprecated) func
23 #define alloca _alloca
24 #define strcasecmp _stricmp
25 #define strdup _strdup
28 #ifdef JWT_BUILD_SHARED_LIBRARY
29 #define JWT_EXPORT __declspec(dllexport)
31 #define JWT_EXPORT __declspec(dllimport)
39 #define DEPRECATED(func) func __attribute__ ((deprecated))
69 #define JWT_ALG_INVAL JWT_ALG_TERM
72 #define JWT_VALIDATION_SUCCESS 0x0000
73 #define JWT_VALIDATION_ERROR 0x0001
74 #define JWT_VALIDATION_ALG_MISMATCH 0x0002
75 #define JWT_VALIDATION_EXPIRED 0x0004
76 #define JWT_VALIDATION_TOO_NEW 0x0008
77 #define JWT_VALIDATION_ISS_MISMATCH 0x0010
78 #define JWT_VALIDATION_SUB_MISMATCH 0x0020
79 #define JWT_VALIDATION_AUD_MISMATCH 0x0040
80 #define JWT_VALIDATION_GRANT_MISSING 0x0080
81 #define JWT_VALIDATION_GRANT_MISMATCH 0x0100
84 typedef void *(*jwt_malloc_t)(size_t);
85 typedef void *(*jwt_realloc_t)(
void *, size_t);
141 const unsigned char *key,
int key_len);
int jwt_add_grant_int(jwt_t *jwt, const char *grant, long val)
Add a new integer grant to this JWT object.
void jwt_valid_free(jwt_valid_t *jwt_valid)
Free a JWT validation object and any other resources it is using.
jwt_alg_t jwt_str_alg(const char *alg)
Convert alg string to type.
void jwt_free_str(char *str)
Free a string returned from the library.
const char * jwt_get_grant(jwt_t *jwt, const char *grant)
Return the value of a string grant.
void jwt_get_alloc(jwt_malloc_t *pmalloc, jwt_realloc_t *prealloc, jwt_free_t *pfree)
Get functions used for allocating and freeing memory.
void *(* jwt_malloc_t)(size_t)
JWT Memory allocation overrides.
int jwt_valid_add_grants_json(jwt_valid_t *jwt_valid, const char *json)
Add required grants from a JSON encoded object string.
enum jwt_alg jwt_alg_t
JWT algorithm types.
int jwt_del_grant(jwt_t *jwt, const char *grant)
int jwt_valid_del_grants(jwt_valid_t *jwt, const char *grant)
Delete a grant from this JWT object.
int jwt_del_grants(jwt_t *jwt, const char *grant)
Delete a grant from this JWT object.
int jwt_valid_set_headers(jwt_valid_t *jwt_valid, int hdr)
Set validation for replicated claims in headers.
void *(* jwt_realloc_t)(void *, size_t)
int jwt_valid_new(jwt_valid_t **jwt_valid, jwt_alg_t alg)
Allocate a new, JWT validation object.
int jwt_encode_fp(jwt_t *jwt, FILE *fp)
Fully encode a JWT object and write it to FILE.
unsigned int jwt_validate(jwt_t *jwt, jwt_valid_t *jwt_valid)
Validate a JWT object with a validation object.
jwt_alg
JWT algorithm types.
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.
void(* jwt_free_t)(void *)
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.
char * jwt_encode_str(jwt_t *jwt)
Fully encode a JWT object and return as a string.
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.
int jwt_add_grant_bool(jwt_t *jwt, const char *grant, int val)
Add a new boolean grant to this JWT object.
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(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.
char * jwt_dump_str(jwt_t *jwt, int pretty)
Return plain text representation as a string.
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.
struct jwt_valid jwt_valid_t
Opaque JWT validation object.
long jwt_get_grant_int(jwt_t *jwt, const char *grant)
Return the value of an integer grant.
int jwt_dump_fp(jwt_t *jwt, FILE *fp, int pretty)
Output plain text representation to a FILE pointer.
int jwt_get_grant_bool(jwt_t *jwt, const char *grant)
Return the value of an boolean grant.
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.
int jwt_new(jwt_t **jwt)
Allocate a new, empty, JWT object.
const char * jwt_valid_get_grant(jwt_valid_t *jwt_valid, const char *grant)
Return the value of a string required grant.
jwt_t * jwt_dup(jwt_t *jwt)
Duplicate an existing JWT object.
long jwt_valid_get_grant_int(jwt_valid_t *jwt_valid, const char *grant)
Return the value of an integer required grant.
struct jwt jwt_t
Opaque JWT object.
int jwt_add_grants_json(jwt_t *jwt, const char *json)
Add grants from a JSON encoded object string.
int jwt_valid_get_grant_bool(jwt_valid_t *jwt_valid, const char *grant)
Return the value of an boolean required grant.
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_add_grant(jwt_t *jwt, const char *grant, const char *val)
Add a new string grant to this 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.
void jwt_free(jwt_t *jwt)
Free a JWT 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.
char * jwt_get_grants_json(jwt_t *jwt, const char *grant)
Return the value of a grant as JSON encoded object string.