72#define APR_JOSE_JWA_HS256 "HS256"
79#define APR_JOSE_JWA_HS384 "HS384"
86#define APR_JOSE_JWA_HS512 "HS512"
93#define APR_JOSE_JWA_RS256 "RS256"
100#define APR_JOSE_JWA_RS384 "RS384"
107#define APR_JOSE_JWA_RS512 "RS512"
114#define APR_JOSE_JWA_ES256 "ES256"
121#define APR_JOSE_JWA_ES384 "ES384"
128#define APR_JOSE_JWA_ES512 "ES512"
135#define APR_JOSE_JWA_PS256 "PS256"
142#define APR_JOSE_JWA_PS384 "PS384"
149#define APR_JOSE_JWA_PS512 "PS512"
156#define APR_JOSE_JWA_NONE "none"
163#define APR_JOSE_JWK_KEY_TYPE "kty"
170#define APR_JOSE_JWK_PUBLIC_KEY_USE "use"
177#define APR_JOSE_JWK_KEY_OPERATIONS "key_ops"
184#define APR_JOSE_JWK_KEYS "keys"
193#define APR_JOSE_JWKSE_ALGORITHM "alg"
200#define APR_JOSE_JWE_ENCRYPTION "enc"
207#define APR_JOSE_JWE_COMPRESSION "zip"
215#define APR_JOSE_JWSE_JWK_SET_URL "jku"
223#define APR_JOSE_JWSE_JWK "jwk"
231#define APR_JOSE_JWKSE_KEYID "kid"
239#define APR_JOSE_JWKSE_X509_URL "x5u"
247#define APR_JOSE_JWKSE_X509_CHAIN "x5c"
255#define APR_JOSE_JWKSE_X509_SHA1_THUMBPRINT "x5t"
264#define APR_JOSE_JWKSE_X509_SHA256_THUMBPRINT "x5t#S256"
272#define APR_JOSE_JWSE_TYPE "typ"
280#define APR_JOSE_JWSE_CONTENT_TYPE "cty"
288#define APR_JOSE_JWSE_CRITICAL "crit"
295#define APR_JOSE_JWS_PAYLOAD "payload"
302#define APR_JOSE_JWS_SIGNATURES "signatures"
310#define APR_JOSE_JWSE_PROTECTED "protected"
318#define APR_JOSE_JWSE_HEADER "header"
325#define APR_JOSE_JWS_SIGNATURE "signature"
332#define APR_JOSE_JWE_UNPROTECTED "unprotected"
339#define APR_JOSE_JWE_CIPHERTEXT "ciphertext"
346#define APR_JOSE_JWE_RECIPIENTS "recipients"
353#define APR_JOSE_JWE_EKEY "encrypted_key"
360#define APR_JOSE_JWE_IV "iv"
367#define APR_JOSE_JWE_TAG "tag"
374#define APR_JOSE_JWE_AAD "aad"
381#define APR_JOSE_JWT_ISSUER "iss"
388#define APR_JOSE_JWT_SUBJECT "sub"
395#define APR_JOSE_JWT_AUDIENCE "aud"
402#define APR_JOSE_JWT_EXPIRATION_TIME "exp"
409#define APR_JOSE_JWT_NOT_BEFORE "nbf"
416#define APR_JOSE_JWT_ISSUED_AT "iat"
423#define APR_JOSE_JWT_ID "jti"
430#define APR_JOSE_JWSE_TYPE_JWT "JWT"
435#define APR_JOSE_FLAG_NONE 0
440#define APR_JOSE_FLAG_DECODE_ALL 1
451#define APR_JOSE_FLAG_BREAK 2
922 __attribute__((nonnull(1)));
935 __attribute__((nonnull(3)));
948 __attribute__((nonnull(3)));
961 __attribute__((nonnull(3)));
976 __attribute__((nonnull(5)));
989 __attribute__((nonnull(4)));
1003 __attribute__((nonnull(4)));
1021 __attribute__((nonnull(6)));
1039 __attribute__((nonnull(6)));
1055 __attribute__((nonnull(5)));
1071 __attribute__((nonnull(5)));
1087 __attribute__((nonnull(3)));
1101 const unsigned char *in, apr_size_t inlen,
apr_pool_t *pool)
1102 __attribute__((nonnull(5)));
1117 const char *in, apr_size_t inlen,
apr_pool_t *pool)
1118 __attribute__((nonnull(5)));
1132 __attribute__((nonnull(4)));
1149 __attribute__((nonnull(1, 4, 6)));
1169 __attribute__((nonnull(1, 3, 7)));
APR Platform Definitions.
APR-UTIL Buckets/Bucket Brigades.
apr_status_t(* apr_brigade_flush)(apr_bucket_brigade *bb, void *ctx)
Definition apr_buckets.h:287
apr_jose_t * apr_jose_json_make(apr_jose_t *jose, const char *cty, apr_json_value_t *json, apr_pool_t *pool)
apr_jose_t * apr_jose_make(apr_jose_t *jose, apr_jose_type_e type, apr_pool_t *pool)
apr_jose_t * apr_jose_jwe_make(apr_jose_t *jose, apr_jose_recipient_t *recipient, apr_array_header_t *recipients, apr_jose_encryption_t *encryption, apr_jose_t *payload, apr_pool_t *pool)
apr_jose_recipient_t * apr_jose_recipient_make(apr_jose_recipient_t *recipient, apr_json_value_t *unprotected, void *ctx, apr_pool_t *pool)
apr_jose_t * apr_jose_jwt_make(apr_jose_t *jose, apr_json_value_t *claims, apr_pool_t *pool)
apr_jose_t * apr_jose_text_make(apr_jose_t *jose, const char *cty, const char *in, apr_size_t inlen, apr_pool_t *pool)
apr_jose_t * apr_jose_jwe_json_make(apr_jose_t *jose, apr_jose_recipient_t *recipient, apr_array_header_t *recipients, apr_jose_encryption_t *encryption, apr_jose_t *payload, apr_pool_t *pool)
apr_jose_t * apr_jose_jwks_make(apr_jose_t *jose, apr_json_value_t *keys, apr_pool_t *pool)
apr_jose_t * apr_jose_jwk_make(apr_jose_t *jose, apr_json_value_t *key, apr_pool_t *pool)
apr_jose_encryption_t * apr_jose_encryption_make(apr_jose_encryption_t *encryption, apr_json_value_t *unprotected, apr_json_value_t *protected, apr_pool_t *pool)
apr_jose_type_e
Definition apr_jose.h:461
apr_jose_t * apr_jose_data_make(apr_jose_t *jose, const char *typ, const unsigned char *in, apr_size_t inlen, apr_pool_t *pool)
apr_status_t apr_jose_encode(apr_bucket_brigade *brigade, apr_brigade_flush flush, void *ctx, apr_jose_t *jose, apr_jose_cb_t *cb, apr_pool_t *pool)
apr_jose_t * apr_jose_jws_make(apr_jose_t *jose, apr_jose_signature_t *signature, apr_array_header_t *signatures, apr_jose_t *payload, apr_pool_t *pool)
apu_err_t * apr_jose_error(apr_jose_t *jose)
Get the result of the last operation on the jose. If the result is NULL, the operation was successful...
apr_jose_t * apr_jose_jws_json_make(apr_jose_t *jose, apr_jose_signature_t *signature, apr_array_header_t *signatures, apr_jose_t *payload, apr_pool_t *pool)
apr_status_t apr_jose_decode(apr_jose_t **jose, const char *typ, apr_bucket_brigade *brigade, apr_jose_cb_t *cb, int level, int flags, apr_pool_t *pool)
apr_jose_signature_t * apr_jose_signature_make(apr_jose_signature_t *signature, apr_json_value_t *header, apr_json_value_t *protected, void *ctx, apr_pool_t *pool)
@ APR_JOSE_TYPE_JSON
Definition apr_jose.h:483
@ APR_JOSE_TYPE_JWS_JSON
Definition apr_jose.h:471
@ APR_JOSE_TYPE_JWKS
Definition apr_jose.h:467
@ APR_JOSE_TYPE_DATA
Definition apr_jose.h:479
@ APR_JOSE_TYPE_JWE
Definition apr_jose.h:473
@ APR_JOSE_TYPE_JWE_JSON
Definition apr_jose.h:475
@ APR_JOSE_TYPE_JWT
Definition apr_jose.h:477
@ APR_JOSE_TYPE_TEXT
Definition apr_jose.h:481
@ APR_JOSE_TYPE_JWK
Definition apr_jose.h:465
@ APR_JOSE_TYPE_NONE
Definition apr_jose.h:463
@ APR_JOSE_TYPE_JWS
Definition apr_jose.h:469
int apr_status_t
Definition apr_errno.h:44
struct apr_pool_t apr_pool_t
Definition apr_pools.h:60
Definition apr_buckets.h:263
Definition apr_jose.h:646
void * ctx
Definition apr_jose.h:912
apr_status_t(* encrypt)(apr_bucket_brigade *bb, apr_jose_t *jose, apr_jose_recipient_t *recipient, apr_jose_encryption_t *encryption, void *ctx, apr_pool_t *pool)
Definition apr_jose.h:735
apr_status_t(* sign)(apr_bucket_brigade *bb, apr_jose_t *jose, apr_jose_signature_t *signature, void *ctx, apr_pool_t *pool)
Definition apr_jose.h:863
apr_status_t(* verify)(apr_bucket_brigade *bb, apr_jose_t *jose, apr_jose_signature_t *signature, void *ctx, int *vflags, apr_pool_t *pool)
Definition apr_jose.h:908
apr_status_t(* decrypt)(apr_bucket_brigade *bb, apr_jose_t *jose, apr_jose_recipient_t *recipient, apr_jose_encryption_t *encryption, apr_json_value_t *header, apr_jose_text_t *ph64, apr_jose_text_t *aad64, void *ctx, int *dflags, apr_pool_t *pool)
Definition apr_jose.h:832
Definition apr_jose.h:489
const unsigned char * data
Definition apr_jose.h:491
apr_size_t len
Definition apr_jose.h:493
Definition apr_jose.h:561
apr_jose_data_t iv
Definition apr_jose.h:569
apr_jose_data_t cipher
Definition apr_jose.h:575
apr_json_value_t * unprotected
Definition apr_jose.h:563
apr_jose_data_t aad
Definition apr_jose.h:571
apr_jose_text_t aad64
Definition apr_jose.h:573
apr_jose_text_t protected64
Definition apr_jose.h:567
apr_jose_data_t tag
Definition apr_jose.h:577
Definition apr_jose.h:509
apr_json_value_t * json
Definition apr_jose.h:511
Definition apr_jose.h:597
apr_jose_t * payload
Definition apr_jose.h:605
apr_jose_encryption_t * encryption
Definition apr_jose.h:603
apr_jose_recipient_t * recipient
Definition apr_jose.h:599
apr_array_header_t * recipients
Definition apr_jose.h:601
Definition apr_jose.h:517
apr_json_value_t * key
Definition apr_jose.h:519
Definition apr_jose.h:525
apr_json_value_t * keys
Definition apr_jose.h:527
Definition apr_jose.h:549
apr_array_header_t * signatures
Definition apr_jose.h:553
apr_jose_t * payload
Definition apr_jose.h:555
apr_jose_signature_t * signature
Definition apr_jose.h:551
Definition apr_jose.h:611
apr_json_value_t * claims
Definition apr_jose.h:613
Definition apr_jose.h:583
apr_json_value_t * header
Definition apr_jose.h:585
apr_jose_data_t ekey
Definition apr_jose.h:587
apr_status_t status
Definition apr_jose.h:591
void * ctx
Definition apr_jose.h:589
Definition apr_jose.h:533
void * ctx
Definition apr_jose.h:541
apr_json_value_t * header
Definition apr_jose.h:535
apr_json_value_t * protected_header
Definition apr_jose.h:537
apr_status_t status
Definition apr_jose.h:543
apr_jose_data_t sig
Definition apr_jose.h:539
Definition apr_jose.h:619
apr_pool_t * pool
Definition apr_jose.h:621
const char * cty
Definition apr_jose.h:625
const char * typ
Definition apr_jose.h:623
union apr_jose_t::@4 jose
apr_jose_type_e type
Definition apr_jose.h:629
apu_err_t result
Definition apr_jose.h:627
Definition apr_jose.h:499
const char * text
Definition apr_jose.h:501
apr_size_t len
Definition apr_jose.h:503
Definition apr_json.h:123
Definition apu_errno.h:418