23#ifndef L8W8JWT_DECODE_H
24#define L8W8JWT_DECODE_H
34#include "timehelper.h"
38#ifndef L8W8JWT_MAX_KEY_SIZE
39#define L8W8JWT_MAX_KEY_SIZE 8192
JWT algorithms as defined in https://tools.ietf.org/html/rfc7518#section-3.1.
JWT claims as described in https://auth0.com/docs/tokens/concepts/jwt-claims.
L8W8JWT_API void l8w8jwt_decoding_params_init(struct l8w8jwt_decoding_params *params)
L8W8JWT_API int l8w8jwt_decode(struct l8w8jwt_decoding_params *params, enum l8w8jwt_validation_result *out_validation_result, struct l8w8jwt_claim **out_claims, size_t *out_claims_length)
L8W8JWT_API int l8w8jwt_decode_raw_no_validation(struct l8w8jwt_decoding_params *params, char **out_header, size_t *out_header_length, char **out_payload, size_t *out_payload_length, uint8_t **out_signature, size_t *out_signature_length)
l8w8jwt_validation_result
Definition decode.h:45
@ L8W8JWT_NBF_FAILURE
Definition decode.h:79
@ L8W8JWT_AUD_FAILURE
Definition decode.h:64
@ L8W8JWT_SIGNATURE_VERIFICATION_FAILURE
Definition decode.h:89
@ L8W8JWT_SUB_FAILURE
Definition decode.h:59
@ L8W8JWT_TYP_FAILURE
Definition decode.h:94
@ L8W8JWT_VALID
Definition decode.h:49
@ L8W8JWT_JTI_FAILURE
Definition decode.h:69
@ L8W8JWT_IAT_FAILURE
Definition decode.h:84
@ L8W8JWT_ISS_FAILURE
Definition decode.h:54
@ L8W8JWT_EXP_FAILURE
Definition decode.h:74
L8W8JWT_API int l8w8jwt_decode_raw(struct l8w8jwt_decoding_params *params, enum l8w8jwt_validation_result *out_validation_result, char **out_header, size_t *out_header_length, char **out_payload, size_t *out_payload_length, uint8_t **out_signature, size_t *out_signature_length)
L8W8JWT_API int l8w8jwt_validate_decoding_params(struct l8w8jwt_decoding_params *params)
Macros for possible integer codes returned by the various l8w8jwt functions.
size_t validate_sub_length
Definition decode.h:143
int validate_nbf
Definition decode.h:181
size_t validate_typ_length
Definition decode.h:228
char * validate_jti
Definition decode.h:164
char * jwt
Definition decode.h:105
size_t validate_iss_length
Definition decode.h:130
size_t jwt_length
Definition decode.h:110
int validate_exp
Definition decode.h:175
int alg
Definition decode.h:117
uint8_t nbf_tolerance_seconds
Definition decode.h:200
uint8_t exp_tolerance_seconds
Definition decode.h:194
size_t validate_jti_length
Definition decode.h:169
int validate_iat
Definition decode.h:187
size_t validate_aud_length
Definition decode.h:156
uint8_t iat_tolerance_seconds
Definition decode.h:206
char * validate_iss
Definition decode.h:125
size_t verification_key_length
Definition decode.h:217
unsigned char * verification_key
Definition decode.h:212
char * validate_aud
Definition decode.h:151
char * validate_sub
Definition decode.h:138
char * validate_typ
Definition decode.h:223
l8w8jwt version checking.