Apache2
apr_jose.h File Reference

APR-UTIL JSON Object Signing and Encryption Library. More...

#include "apr.h"
#include "apr_pools.h"
#include "apu_errno.h"
#include "apr_strings.h"
#include "apr_buckets.h"
#include "apr_json.h"
Include dependency graph for apr_jose.h:

Go to the source code of this file.

Data Structures

struct  apr_jose_data_t
 
struct  apr_jose_text_t
 
struct  apr_jose_json_t
 
struct  apr_jose_jwk_t
 
struct  apr_jose_jwks_t
 
struct  apr_jose_signature_t
 
struct  apr_jose_jws_t
 
struct  apr_jose_encryption_t
 
struct  apr_jose_recipient_t
 
struct  apr_jose_jwe_t
 
struct  apr_jose_jwt_t
 
struct  apr_jose_t
 
struct  apr_jose_cb_t
 

Namespaces

 Apache
 

Macros

#define APR_JOSE_JWA_HS256   "HS256"
 
#define APR_JOSE_JWA_HS384   "HS384"
 
#define APR_JOSE_JWA_HS512   "HS512"
 
#define APR_JOSE_JWA_RS256   "RS256"
 
#define APR_JOSE_JWA_RS384   "RS384"
 
#define APR_JOSE_JWA_RS512   "RS512"
 
#define APR_JOSE_JWA_ES256   "ES256"
 
#define APR_JOSE_JWA_ES384   "ES384"
 
#define APR_JOSE_JWA_ES512   "ES512"
 
#define APR_JOSE_JWA_PS256   "PS256"
 
#define APR_JOSE_JWA_PS384   "PS384"
 
#define APR_JOSE_JWA_PS512   "PS512"
 
#define APR_JOSE_JWA_NONE   "none"
 
#define APR_JOSE_JWK_KEY_TYPE   "kty"
 
#define APR_JOSE_JWK_PUBLIC_KEY_USE   "use"
 
#define APR_JOSE_JWK_KEY_OPERATIONS   "key_ops"
 
#define APR_JOSE_JWK_KEYS   "keys"
 
#define APR_JOSE_JWKSE_ALGORITHM   "alg"
 
#define APR_JOSE_JWE_ENCRYPTION   "enc"
 
#define APR_JOSE_JWE_COMPRESSION   "zip"
 
#define APR_JOSE_JWSE_JWK_SET_URL   "jku"
 
#define APR_JOSE_JWSE_JWK   "jwk"
 
#define APR_JOSE_JWKSE_KEYID   "kid"
 
#define APR_JOSE_JWKSE_X509_URL   "x5u"
 
#define APR_JOSE_JWKSE_X509_CHAIN   "x5c"
 
#define APR_JOSE_JWKSE_X509_SHA1_THUMBPRINT   "x5t"
 
#define APR_JOSE_JWKSE_X509_SHA256_THUMBPRINT   "x5t#S256"
 
#define APR_JOSE_JWSE_TYPE   "typ"
 
#define APR_JOSE_JWSE_CONTENT_TYPE   "cty"
 
#define APR_JOSE_JWSE_CRITICAL   "crit"
 
#define APR_JOSE_JWS_PAYLOAD   "payload"
 
#define APR_JOSE_JWS_SIGNATURES   "signatures"
 
#define APR_JOSE_JWSE_PROTECTED   "protected"
 
#define APR_JOSE_JWSE_HEADER   "header"
 
#define APR_JOSE_JWS_SIGNATURE   "signature"
 
#define APR_JOSE_JWE_UNPROTECTED   "unprotected"
 
#define APR_JOSE_JWE_CIPHERTEXT   "ciphertext"
 
#define APR_JOSE_JWE_RECIPIENTS   "recipients"
 
#define APR_JOSE_JWE_EKEY   "encrypted_key"
 
#define APR_JOSE_JWE_IV   "iv"
 
#define APR_JOSE_JWE_TAG   "tag"
 
#define APR_JOSE_JWE_AAD   "aad"
 
#define APR_JOSE_JWT_ISSUER   "iss"
 
#define APR_JOSE_JWT_SUBJECT   "sub"
 
#define APR_JOSE_JWT_AUDIENCE   "aud"
 
#define APR_JOSE_JWT_EXPIRATION_TIME   "exp"
 
#define APR_JOSE_JWT_NOT_BEFORE   "nbf"
 
#define APR_JOSE_JWT_ISSUED_AT   "iat"
 
#define APR_JOSE_JWT_ID   "jti"
 
#define APR_JOSE_JWSE_TYPE_JWT   "JWT"
 
#define APR_JOSE_FLAG_NONE   0
 
#define APR_JOSE_FLAG_DECODE_ALL   1
 
#define APR_JOSE_FLAG_BREAK   2
 

Typedefs

typedef struct apr_jose_t apr_jose_t
 
typedef enum apr_jose_type_e apr_jose_type_e
 
typedef struct apr_jose_data_t apr_jose_data_t
 
typedef struct apr_jose_text_t apr_jose_text_t
 
typedef struct apr_jose_json_t apr_jose_json_t
 
typedef struct apr_jose_jwk_t apr_jose_jwk_t
 
typedef struct apr_jose_jwks_t apr_jose_jwks_t
 
typedef struct apr_jose_signature_t apr_jose_signature_t
 
typedef struct apr_jose_jws_t apr_jose_jws_t
 
typedef struct apr_jose_encryption_t apr_jose_encryption_t
 
typedef struct apr_jose_recipient_t apr_jose_recipient_t
 
typedef struct apr_jose_jwe_t apr_jose_jwe_t
 
typedef struct apr_jose_jwt_t apr_jose_jwt_t
 
typedef struct apr_jose_cb_t apr_jose_cb_t
 

Enumerations

enum  apr_jose_type_e {
  APR_JOSE_TYPE_NONE = 0 , APR_JOSE_TYPE_JWK = 1 , APR_JOSE_TYPE_JWKS , APR_JOSE_TYPE_JWS ,
  APR_JOSE_TYPE_JWS_JSON , APR_JOSE_TYPE_JWE , APR_JOSE_TYPE_JWE_JSON , APR_JOSE_TYPE_JWT ,
  APR_JOSE_TYPE_DATA , APR_JOSE_TYPE_TEXT , APR_JOSE_TYPE_JSON
}
 

Functions

apu_err_tapr_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. More...
 
apr_jose_tapr_jose_make (apr_jose_t *jose, apr_jose_type_e type, apr_pool_t *pool) __attribute__((nonnull(3)))
 
apr_jose_tapr_jose_jwk_make (apr_jose_t *jose, apr_json_value_t *key, apr_pool_t *pool) __attribute__((nonnull(3)))
 
apr_jose_tapr_jose_jwks_make (apr_jose_t *jose, apr_json_value_t *keys, apr_pool_t *pool) __attribute__((nonnull(3)))
 
apr_jose_signature_tapr_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_tapr_jose_recipient_make (apr_jose_recipient_t *recipient, apr_json_value_t *unprotected, void *ctx, apr_pool_t *pool) __attribute__((nonnull(4)))
 
apr_jose_encryption_tapr_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_jose_tapr_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)))
 
apr_jose_tapr_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)))
 
apr_jose_tapr_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_tapr_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)))
 
apr_jose_tapr_jose_jwt_make (apr_jose_t *jose, apr_json_value_t *claims, apr_pool_t *pool) __attribute__((nonnull(3)))
 
apr_jose_tapr_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_tapr_jose_text_make (apr_jose_t *jose, const char *cty, const char *in, apr_size_t inlen, apr_pool_t *pool) __attribute__((nonnull(5)))
 
apr_jose_tapr_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_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
 
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
 

Detailed Description

APR-UTIL JSON Object Signing and Encryption Library.