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
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_jws_make(apr_jose_t *jose, apr_jose_signature_t *signature, apr_array_header_t *signatures, apr_jose_t *payload, apr_pool_t *pool) __attribute__((nonnull(5)))
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) __attribute__((nonnull(5)))
struct apr_jose_jwe_t apr_jose_jwe_t
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) __attribute__((nonnull(4)))
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) __attribute__((nonnull(1
struct apr_jose_jwt_t apr_jose_jwt_t
struct apr_jose_encryption_t apr_jose_encryption_t
apr_jose_t * apr_jose_make(apr_jose_t *jose, apr_jose_type_e type, apr_pool_t *pool) __attribute__((nonnull(3)))
struct apr_jose_cb_t apr_jose_cb_t
apr_jose_t * apr_jose_jwt_make(apr_jose_t *jose, apr_json_value_t *claims, apr_pool_t *pool) __attribute__((nonnull(3)))
struct apr_jose_recipient_t apr_jose_recipient_t
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) __attribute__((nonnull(5)))
struct apr_jose_text_t apr_jose_text_t
apr_jose_type_e
Definition: apr_jose.h:461
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) __attribute__((nonnull(6)))
struct apr_jose_data_t apr_jose_data_t
struct apr_jose_json_t apr_jose_json_t
apu_err_t * apr_jose_error(apr_jose_t *jose) __attribute__((nonnull(1)))
Get the result of the last operation on the jose. If the result is NULL, the operation was successful...
struct apr_jose_jws_t apr_jose_jws_t
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) __attribute__((nonnull(5)))
apr_jose_recipient_t * apr_jose_recipient_make(apr_jose_recipient_t *recipient, apr_json_value_t *unprotected, void *ctx, apr_pool_t *pool) __attribute__((nonnull(4)))
struct apr_jose_signature_t apr_jose_signature_t
apr_jose_t * apr_jose_jwks_make(apr_jose_t *jose, apr_json_value_t *keys, apr_pool_t *pool) __attribute__((nonnull(3)))
apr_jose_t * apr_jose_json_make(apr_jose_t *jose, const char *cty, apr_json_value_t *json, apr_pool_t *pool) __attribute__((nonnull(4)))
apr_status_t 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) __attribute__((nonnull(1
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) __attribute__((nonnull(5)))
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) __attribute__((nonnull(6)))
struct apr_jose_jwks_t apr_jose_jwks_t
apr_jose_t * apr_jose_jwk_make(apr_jose_t *jose, apr_json_value_t *key, apr_pool_t *pool) __attribute__((nonnull(3)))
struct apr_jose_jwk_t apr_jose_jwk_t
@ 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
dav_resource int dav_locktoken dav_response int flags
Definition: mod_dav.h:1458
apr_bucket_brigade * bb
Definition: mod_dav.h:555
apr_bucket_brigade request_rec apr_pool_t * pool
Definition: mod_dav.h:557
int apr_status_t
Definition: apr_errno.h:44
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
#define APR_DECLARE(x)
Definition: macros.h:6
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_jose_jwe_t * jwe
Definition: apr_jose.h:635
apr_jose_json_t * json
Definition: apr_jose.h:639
apr_pool_t * pool
Definition: apr_jose.h:621
union apr_jose_t::@16 jose
apr_jose_text_t * text
Definition: apr_jose.h:638
const char * cty
Definition: apr_jose.h:625
const char * typ
Definition: apr_jose.h:623
apr_jose_jws_t * jws
Definition: apr_jose.h:634
apr_jose_jwt_t * jwt
Definition: apr_jose.h:636
apr_jose_data_t * data
Definition: apr_jose.h:637
apr_jose_jwks_t * jwks
Definition: apr_jose.h:633
apr_jose_jwk_t * jwk
Definition: apr_jose.h:632
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:169