Rhonabwy
Create, modify, parse or export Json Web Keys as defined in the RFC 7517
|
Go to the documentation of this file.
33 #include "rhonabwy-cfg.h"
36 #include <gnutls/gnutls.h>
46 #define RHN_ERROR_MEMORY 2
47 #define RHN_ERROR_PARAM 3
48 #define RHN_ERROR_UNSUPPORTED 4
49 #define RHN_ERROR_INVALID 5
51 #define R_X509_TYPE_PUBKEY 1
52 #define R_X509_TYPE_PRIVKEY 2
53 #define R_X509_TYPE_CERTIFICATE 3
55 #define R_FORMAT_PEM 0
56 #define R_FORMAT_DER 1
58 #define R_KEY_TYPE_NONE 0x00000000
59 #define R_KEY_TYPE_PUBLIC 0x00000001
60 #define R_KEY_TYPE_PRIVATE 0x00000010
61 #define R_KEY_TYPE_SYMMETRIC 0x00000100
62 #define R_KEY_TYPE_RSA 0x00001000
63 #define R_KEY_TYPE_ECDSA 0x00010000
64 #define R_KEY_TYPE_HMAC 0x00100000
65 #define R_KEY_TYPE_EDDSA 0x01000000
67 #define R_FLAG_IGNORE_SERVER_CERTIFICATE 0x00000001
68 #define R_FLAG_FOLLOW_REDIRECT 0x00000010
69 #define R_FLAG_IGNORE_REMOTE 0x00000100
71 #define R_JWT_TYPE_NONE 0
72 #define R_JWT_TYPE_SIGN 1
73 #define R_JWT_TYPE_ENCRYPT 2
74 #define R_JWT_TYPE_NESTED_SIGN_THEN_ENCRYPT 3
75 #define R_JWT_TYPE_NESTED_ENCRYPT_THEN_SIGN 4
77 #define R_JWT_CLAIM_NOP 0
78 #define R_JWT_CLAIM_ISS 1
79 #define R_JWT_CLAIM_SUB 2
80 #define R_JWT_CLAIM_AUD 3
81 #define R_JWT_CLAIM_EXP 4
82 #define R_JWT_CLAIM_NBF 5
83 #define R_JWT_CLAIM_IAT 6
84 #define R_JWT_CLAIM_JTI 7
85 #define R_JWT_CLAIM_STR 8
86 #define R_JWT_CLAIM_INT 9
87 #define R_JWT_CLAIM_JSN 10
89 #define R_JWT_CLAIM_NOW -1
90 #define R_JWT_CLAIM_PRESENT -2
1021 int r_jws_add_keys_pem_der(
jws_t * jws,
int format,
const unsigned char * privkey,
size_t privkey_len,
const unsigned char * pubkey,
size_t pubkey_len);
1083 int r_jws_parsen(
jws_t * jws,
const char * jws_str,
size_t jws_str_len,
int x5u_flags);
1288 int r_jwe_add_keys_pem_der(
jwe_t * jwe,
int format,
const unsigned char * privkey,
size_t privkey_len,
const unsigned char * pubkey,
size_t pubkey_len);
1440 int r_jwe_parsen(
jwe_t * jwe,
const char * jwe_str,
size_t jwe_str_len,
int x5u_flags);
1695 int r_jwt_add_sign_keys_pem_der(
jwt_t * jwt,
int format,
const unsigned char * privkey,
size_t privkey_len,
const unsigned char * pubkey,
size_t pubkey_len);
1779 int r_jwt_add_enc_keys_pem_der(
jwt_t * jwt,
int format,
const unsigned char * privkey,
size_t privkey_len,
const unsigned char * pubkey,
size_t pubkey_len);
1946 int r_jwt_parsen(
jwt_t * jwt,
const char * token,
size_t token_len,
int x5u_flags);
2079 #ifndef DOXYGEN_SHOULD_SKIP_THIS
2104 #endif // __RHONABWY_H_
int r_jwt_verify_signature(jwt_t *jwt, jwk_t *pubkey, int x5u_flags)
Definition: jwt.c:1156
@ R_JWA_ALG_ES256
Definition: rhonabwy.h:114
unsigned char * payload
Definition: rhonabwy.h:177
jwe_t * r_jwe_copy(jwe_t *jwe)
Definition: jwe.c:529
int r_jwt_verify_signature_nested(jwt_t *jwt, jwk_t *verify_key, int verify_key_x5u_flags)
Definition: jwt.c:1476
@ R_JWA_ALG_NONE
Definition: rhonabwy.h:107
@ R_JWA_ENC_A128GCM
Definition: rhonabwy.h:145
void r_jwks_free(jwks_t *jwks)
Definition: jwks.c:40
int r_jwe_parse(jwe_t *jwe, const char *jwe_str, int x5u_flags)
Definition: jwe.c:1851
jwa_alg r_jwt_get_sign_alg(jwt_t *jwt)
Definition: jwt.c:812
int r_jws_set_header_json_t_value(jws_t *jws, const char *key, json_t *j_value)
Definition: jws.c:810
int r_jwks_import_from_json_t(jwks_t *jwks, json_t *j_input)
Definition: jwks.c:270
void r_jwt_free(jwt_t *jwt)
Definition: jwt.c:84
void r_jws_free(jws_t *jws)
Definition: jws.c:639
int r_jwks_append_jwk(jwks_t *jwks, jwk_t *jwk)
Definition: jwks.c:104
int r_jwe_set_enc(jwe_t *jwe, jwa_enc enc)
Definition: jwe.c:825
json_t * r_jwks_export_to_json_t(jwks_t *jwks)
Definition: jwks.c:168
@ R_JWA_ENC_UNKNOWN
Definition: rhonabwy.h:141
int r_jwt_add_sign_keys_json_str(jwt_t *jwt, const char *privkey, const char *pubkey)
Definition: jwt.c:347
jwks_t * jwks_pubkey
Definition: rhonabwy.h:172
int r_jwk_import_from_symmetric_key(jwk_t *jwk, const unsigned char *key, size_t key_len)
Definition: jwk.c:1409
unsigned char * header_b64url
Definition: rhonabwy.h:151
@ R_JWA_ENC_A192CBC
Definition: rhonabwy.h:143
char * r_jwk_export_to_json_str(jwk_t *jwk, int pretty)
Definition: jwk.c:1450
int r_jwk_key_type(jwk_t *jwk, unsigned int *bits, int x5u_flags)
Definition: jwk.c:392
const char * r_jwk_get_property_str(jwk_t *jwk, const char *key)
Definition: jwk.c:2211
@ R_JWA_ALG_A128KW
Definition: rhonabwy.h:124
@ R_JWA_ALG_DIR
Definition: rhonabwy.h:127
jwt_t * r_jwt_copy(jwt_t *jwt)
Definition: jwt.c:98
int r_jws_verify_signature(jws_t *jws, jwk_t *jwk_pubkey, int x5u_flags)
Definition: jws.c:1211
Definition: rhonabwy.h:181
gnutls_pubkey_t * r_jwks_export_to_gnutls_pubkey(jwks_t *jwks, size_t *len, int x5u_flags)
Definition: jwks.c:198
jwa_alg alg
Definition: rhonabwy.h:169
char * r_jwt_serialize_encrypted(jwt_t *jwt, jwk_t *pubkey, int x5u_flags)
Definition: jwt.c:901
char * r_jwe_serialize(jwe_t *jwe, jwk_t *jwk_pubkey, int x5u_flags)
Definition: jwe.c:1867
const char * r_jwk_get_property_array(jwk_t *jwk, const char *key, size_t index)
Definition: jwk.c:2223
jwa_alg r_jwt_get_enc_alg(jwt_t *jwt)
Definition: jwt.c:832
int r_jwt_add_sign_keys_json_t(jwt_t *jwt, json_t *privkey, json_t *pubkey)
Definition: jwt.c:386
int type
Definition: rhonabwy.h:182
Definition: rhonabwy.h:150
jwks_t * r_jwt_get_enc_jwks_privkey(jwt_t *jwt)
Definition: jwt.c:784
jwa_enc r_str_to_jwa_enc(const char *enc)
Definition: misc.c:285
int r_jws_add_keys_json_str(jws_t *jws, const char *privkey, const char *pubkey)
Definition: jws.c:912
jwks_t * jwks_privkey_enc
Definition: rhonabwy.h:192
jwk_t * r_jwks_get_by_kid(jwks_t *jwks, const char *kid)
Definition: jwks.c:83
int r_jwe_set_header_int_value(jwe_t *jwe, const char *key, int i_value)
Definition: jwe.c:883
int r_jwe_set_iv(jwe_t *jwe, const unsigned char *iv, size_t iv_len)
Definition: jwe.c:663
gnutls_privkey_t * r_jwks_export_to_gnutls_privkey(jwks_t *jwks, size_t *len, int x5u_flags)
Definition: jwks.c:176
int r_jwe_add_keys_gnutls(jwe_t *jwe, gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
Definition: jwe.c:1116
int r_jwks_equal(jwks_t *jwks1, jwks_t *jwks2)
Definition: jwks.c:156
int r_jwt_get_header_int_value(jwt_t *jwt, const char *key)
Definition: jwt.c:154
jwa_enc r_jwt_get_enc(jwt_t *jwt)
Definition: jwt.c:852
int r_jws_parse(jws_t *jws, const char *jws_str, int x5u_flags)
Definition: jws.c:1207
unsigned char * signature_b64url
Definition: rhonabwy.h:153
jwa_enc enc
Definition: rhonabwy.h:170
int r_jwt_set_enc(jwt_t *jwt, jwa_enc enc)
Definition: jwt.c:840
int r_jwk_export_to_pem_der(jwk_t *jwk, int format, unsigned char *output, size_t *output_len, int x5u_flags)
Definition: jwk.c:2127
int r_jwks_import_from_str(jwks_t *jwks, const char *input)
Definition: jwks.c:247
jwks_t * r_jwt_get_enc_jwks_pubkey(jwt_t *jwt)
Definition: jwt.c:792
int r_jwk_import_from_x5u(jwk_t *jwk, int type, int x5u_flags, const char *x5u)
Definition: jwk.c:1373
@ R_JWA_ALG_PS512
Definition: rhonabwy.h:120
int r_jwe_set_payload(jwe_t *jwe, const unsigned char *payload, size_t payload_len)
Definition: jwe.c:561
int r_jwe_generate_iv(jwe_t *jwe)
Definition: jwe.c:700
int r_jwt_set_header_str_value(jwt_t *jwt, const char *key, const char *str_value)
Definition: jwt.c:123
char * r_library_info_json_str()
Definition: misc.c:369
jwa_enc r_jwe_get_enc(jwe_t *jwe)
Definition: jwe.c:861
int r_jwk_equal(jwk_t *jwk1, jwk_t *jwk2)
Definition: jwk.c:1446
int r_jwt_add_enc_keys_pem_der(jwt_t *jwt, int format, const unsigned char *privkey, size_t privkey_len, const unsigned char *pubkey, size_t pubkey_len)
Definition: jwt.c:681
json_t jwks_t
Definition: rhonabwy.h:103
int r_jws_add_keys_pem_der(jws_t *jws, int format, const unsigned char *privkey, size_t privkey_len, const unsigned char *pubkey, size_t pubkey_len)
Definition: jws.c:990
@ R_JWA_ALG_RS512
Definition: rhonabwy.h:113
@ R_JWA_ALG_HS512
Definition: rhonabwy.h:110
int r_jwt_set_enc_alg(jwt_t *jwt, jwa_alg alg)
Definition: jwt.c:820
int r_jws_add_jwks(jws_t *jws, jwks_t *jwks_privkey, jwks_t *jwks_pubkey)
Definition: jws.c:879
int r_jwk_import_from_pem_der(jwk_t *jwk, int type, int format, const unsigned char *input, size_t input_len)
Definition: jwk.c:664
int r_jwt_decrypt_nested(jwt_t *jwt, jwk_t *decrypt_key, int decrypt_key_x5u_flags)
Definition: jwt.c:1379
unsigned char * encrypted_key_b64url
Definition: rhonabwy.h:164
jwk_t * r_jwk_copy(jwk_t *jwk)
Definition: jwk.c:1438
jwks_t * jwks_privkey
Definition: rhonabwy.h:171
unsigned char * ciphertext_b64url
Definition: rhonabwy.h:166
int r_jwt_add_sign_key_symmetric(jwt_t *jwt, const unsigned char *key, size_t key_len)
Definition: jwt.c:503
json_t * r_jws_get_full_header_json_t(jws_t *jws)
Definition: jws.c:846
char * r_jwt_get_full_header_str(jwt_t *jwt)
Definition: jwt.c:175
@ R_JWA_ALG_PS256
Definition: rhonabwy.h:118
int r_jwe_generate_cypher_key(jwe_t *jwe)
Definition: jwe.c:635
int r_jwk_extract_pubkey(jwk_t *jwk_privkey, jwk_t *jwk_pubkey, int x5u_flags)
Definition: jwk.c:592
const char * r_jwa_enc_to_str(jwa_enc enc)
Definition: misc.c:303
const char * r_jwt_get_claim_str_value(jwt_t *jwt, const char *key)
Definition: jwt.c:207
int r_jwt_set_sign_alg(jwt_t *jwt, jwa_alg alg)
Definition: jwt.c:800
int r_jwks_is_valid(jwks_t *jwks)
Definition: jwks.c:46
json_t * j_claims
Definition: rhonabwy.h:184
size_t iv_len
Definition: rhonabwy.h:176
int r_jwt_set_header_int_value(jwt_t *jwt, const char *key, int i_value)
Definition: jwt.c:131
@ R_JWA_ALG_PBES2_H384
Definition: rhonabwy.h:136
int r_jwe_decrypt_key(jwe_t *jwe, jwk_t *jwk_privkey, int x5u_flags)
Definition: jwe.c:1618
int r_jwks_remove_at(jwks_t *jwks, size_t index)
Definition: jwks.c:130
size_t payload_len
Definition: rhonabwy.h:178
int r_jwe_add_key_symmetric(jwe_t *jwe, const unsigned char *key, size_t key_len)
Definition: jwe.c:1155
int r_jwe_encrypt_key(jwe_t *jwe, jwk_t *jwk_pubkey, int x5u_flags)
Definition: jwe.c:1494
jwks_t * r_jwe_get_jwks_pubkey(jwe_t *jwe)
Definition: jwe.c:1188
int r_jwt_parsen(jwt_t *jwt, const char *token, size_t token_len, int x5u_flags)
Definition: jwt.c:1018
int r_jws_add_keys_gnutls(jws_t *jws, gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
Definition: jws.c:1029
int r_jwt_set_claim_int_value(jwt_t *jwt, const char *key, int i_value)
Definition: jwt.c:191
int r_jwe_set_header_json_t_value(jwe_t *jwe, const char *key, json_t *j_value)
Definition: jwe.c:897
@ R_JWA_ALG_UNKNOWN
Definition: rhonabwy.h:106
jwa_enc enc
Definition: rhonabwy.h:189
const char * _r_json_get_str_value(json_t *j_json, const char *key)
Definition: misc.c:86
int r_jwk_set_property_array(jwk_t *jwk, const char *key, size_t index, const char *value)
Definition: jwk.c:2249
@ R_JWA_ALG_A192KW
Definition: rhonabwy.h:125
int r_jwt_add_sign_keys_gnutls(jwt_t *jwt, gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
Definition: jwt.c:464
@ R_JWA_ENC_A192GCM
Definition: rhonabwy.h:146
@ R_JWA_ENC_A256CBC
Definition: rhonabwy.h:144
json_t * r_jwt_get_full_claims_json_t(jwt_t *jwt)
Definition: jwt.c:228
jwa_alg sign_alg
Definition: rhonabwy.h:187
jwa_enc
Definition: rhonabwy.h:140
int r_jwt_decrypt(jwt_t *jwt, jwk_t *privkey, int x5u_flags)
Definition: jwt.c:1181
int r_jwe_init(jwe_t **jwe)
Definition: jwe.c:464
int _r_json_set_str_value(json_t *j_json, const char *key, const char *str_value)
Definition: misc.c:28
int r_jwt_add_enc_key_symmetric(jwt_t *jwt, const unsigned char *key, size_t key_len)
Definition: jwt.c:759
int r_jwt_decrypt_verify_signature_nested(jwt_t *jwt, jwk_t *verify_key, int verify_key_x5u_flags, jwk_t *decrypt_key, int decrypt_key_x5u_flags)
Definition: jwt.c:1235
size_t key_len
Definition: rhonabwy.h:174
const unsigned char * r_jwe_get_iv(jwe_t *jwe, size_t *iv_len)
Definition: jwe.c:690
int r_jwe_encrypt_payload(jwe_t *jwe)
Definition: jwe.c:1196
@ R_JWA_ALG_EDDSA
Definition: rhonabwy.h:117
json_t * _r_json_get_full_json_t(json_t *j_json)
Definition: misc.c:109
jws_t * r_jws_copy(jws_t *jws)
Definition: jws.c:652
int r_jwe_parsen(jwe_t *jwe, const char *jwe_str, size_t jwe_str_len, int x5u_flags)
Definition: jwe.c:1739
jwks_t * r_jwe_get_jwks_privkey(jwe_t *jwe)
Definition: jwe.c:1180
jwks_t * jwks_privkey_sign
Definition: rhonabwy.h:190
json_t * r_jwt_get_full_header_json_t(jwt_t *jwt)
Definition: jwt.c:168
int r_jwks_export_to_pem_der(jwks_t *jwks, int format, unsigned char *output, size_t *output_len, int x5u_flags)
Definition: jwks.c:220
@ R_JWA_ALG_PS384
Definition: rhonabwy.h:119
int r_jwk_import_from_gnutls_privkey(jwk_t *jwk, gnutls_privkey_t key)
Definition: jwk.c:764
json_t * j_header
Definition: rhonabwy.h:183
@ R_JWA_ALG_PBES2_H256
Definition: rhonabwy.h:135
int r_jws_parsen(jws_t *jws, const char *jws_str, size_t jws_str_len, int x5u_flags)
Definition: jws.c:1109
@ R_JWA_ALG_PBES2_H512
Definition: rhonabwy.h:137
int r_jwt_set_full_claims_json_t(jwt_t *jwt, json_t *j_claim)
Definition: jwt.c:243
@ R_JWA_ALG_ECDH_ES_A128KW
Definition: rhonabwy.h:129
@ R_JWA_ALG_RSA1_5
Definition: rhonabwy.h:121
json_t * r_jwt_get_header_json_t_value(jwt_t *jwt, const char *key)
Definition: jwt.c:161
int r_jws_get_header_int_value(jws_t *jws, const char *key)
Definition: jws.c:832
@ R_JWA_ALG_ECDH_ES_A192KW
Definition: rhonabwy.h:130
jwa_alg r_str_to_jwa_alg(const char *alg)
Definition: misc.c:116
jwks_t * r_jws_get_jwks_pubkey(jws_t *jws)
Definition: jws.c:1101
char * r_jwt_get_full_claims_str(jwt_t *jwt)
Definition: jwt.c:235
int r_jwks_empty(jwks_t *jwks)
Definition: jwks.c:143
json_t * r_library_info_json_t()
Definition: misc.c:329
int _r_json_set_int_value(json_t *j_json, const char *key, int i_value)
Definition: misc.c:49
int r_jwt_add_enc_keys_json_t(jwt_t *jwt, json_t *privkey, json_t *pubkey)
Definition: jwt.c:642
int r_jwt_get_claim_int_value(jwt_t *jwt, const char *key)
Definition: jwt.c:214
int r_jwe_decrypt(jwe_t *jwe, jwk_t *jwk_privkey, int x5u_flags)
Definition: jwe.c:1855
int r_jwe_decrypt_payload(jwe_t *jwe)
Definition: jwe.c:1344
json_t jwk_t
Definition: rhonabwy.h:102
int r_jwt_set_claim_str_value(jwt_t *jwt, const char *key, const char *str_value)
Definition: jwt.c:183
const char * r_jwa_alg_to_str(jwa_alg alg)
Definition: misc.c:184
json_t * r_jwk_export_to_json_t(jwk_t *jwk)
Definition: jwk.c:1458
int r_jws_add_keys(jws_t *jws, jwk_t *jwk_privkey, jwk_t *jwk_pubkey)
Definition: jws.c:853
@ R_JWA_ALG_ECDH_ES_A256KW
Definition: rhonabwy.h:131
int r_jwk_generate_key_pair(jwk_t *jwk_privkey, jwk_t *jwk_pubkey, int type, unsigned int bits, const char *kid)
Definition: jwk.c:289
int r_jwt_add_enc_keys_gnutls(jwt_t *jwt, gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
Definition: jwt.c:720
int r_jwt_get_type(jwt_t *jwt)
Definition: jwt.c:1148
int r_jwks_set_at(jwks_t *jwks, size_t index, jwk_t *jwk)
Definition: jwks.c:117
int _r_json_get_int_value(json_t *j_json, const char *key)
Definition: misc.c:93
int r_jwe_add_keys(jwe_t *jwe, jwk_t *jwk_privkey, jwk_t *jwk_pubkey)
Definition: jwe.c:940
int r_jwe_add_keys_json_str(jwe_t *jwe, const char *privkey, const char *pubkey)
Definition: jwe.c:999
int r_jws_add_keys_json_t(jws_t *jws, json_t *privkey, json_t *pubkey)
Definition: jws.c:951
@ R_JWA_ALG_HS256
Definition: rhonabwy.h:108
int r_jwt_set_claim_json_t_value(jwt_t *jwt, const char *key, json_t *j_value)
Definition: jwt.c:199
jws_t * jws
Definition: rhonabwy.h:185
@ R_JWA_ALG_A256GCMKW
Definition: rhonabwy.h:134
int r_jwk_import_from_gnutls_x509_crt(jwk_t *jwk, gnutls_x509_crt_t crt)
Definition: jwk.c:1337
int r_jwk_set_property_str(jwk_t *jwk, const char *key, const char *value)
Definition: jwk.c:2236
int r_jws_set_alg(jws_t *jws, jwa_alg alg)
Definition: jws.c:714
size_t r_jwks_size(jwks_t *jwks)
Definition: jwks.c:67
void r_jwe_free(jwe_t *jwe)
Definition: jwe.c:512
int r_jwk_delete_property_str(jwk_t *jwk, const char *key)
Definition: jwk.c:2291
jwks_t * jwks_pubkey_sign
Definition: rhonabwy.h:191
int r_jwt_append_claims_json_t(jwt_t *jwt, json_t *j_claim)
Definition: jwt.c:270
int r_jwt_add_enc_keys_json_str(jwt_t *jwt, const char *privkey, const char *pubkey)
Definition: jwt.c:603
jwks_t * r_jwks_copy(jwks_t *jwks)
Definition: jwks.c:96
char * r_jws_serialize(jws_t *jws, jwk_t *jwk_privkey, int x5u_flags)
Definition: jws.c:1284
int r_jwe_set_header_str_value(jwe_t *jwe, const char *key, const char *str_value)
Definition: jwe.c:869
int r_jwks_init(jwks_t **jwks)
Definition: jwks.c:29
@ R_JWA_ALG_ES512
Definition: rhonabwy.h:116
int r_jwt_add_sign_keys(jwt_t *jwt, jwk_t *privkey, jwk_t *pubkey)
Definition: jwt.c:288
int r_jws_set_header_str_value(jws_t *jws, const char *key, const char *str_value)
Definition: jws.c:782
int r_jwt_add_sign_jwks(jwt_t *jwt, jwks_t *jwks_privkey, jwks_t *jwks_pubkey)
Definition: jwt.c:314
const char * r_jwt_get_header_str_value(jwt_t *jwt, const char *key)
Definition: jwt.c:147
jwks_t * jwks_pubkey_enc
Definition: rhonabwy.h:193
const unsigned char * r_jwe_get_payload(jwe_t *jwe, size_t *payload_len)
Definition: jwe.c:588
json_t * j_header
Definition: rhonabwy.h:154
@ R_JWA_ALG_A128GCMKW
Definition: rhonabwy.h:132
int r_jwks_import_from_uri(jwks_t *jwks, const char *uri, int flags)
Definition: jwks.c:299
char * r_jwks_export_to_json_str(jwks_t *jwks, int pretty)
Definition: jwks.c:160
jwa_alg enc_alg
Definition: rhonabwy.h:188
char * r_jwt_serialize_signed(jwt_t *jwt, jwk_t *privkey, int x5u_flags)
Definition: jwt.c:860
jwa_alg
Definition: rhonabwy.h:105
@ R_JWA_ENC_A128CBC
Definition: rhonabwy.h:142
const char * r_jwe_get_header_str_value(jwe_t *jwe, const char *key)
Definition: jwe.c:912
@ R_JWA_ALG_A256KW
Definition: rhonabwy.h:126
int r_jwk_init(jwk_t **jwk)
Definition: jwk.c:31
int r_jwt_add_enc_keys(jwt_t *jwt, jwk_t *privkey, jwk_t *pubkey)
Definition: jwt.c:544
json_t * j_header
Definition: rhonabwy.h:168
jwks_t * r_jwt_get_sign_jwks_pubkey(jwt_t *jwt)
Definition: jwt.c:536
int _r_json_set_json_t_value(json_t *j_json, const char *key, json_t *j_value)
Definition: misc.c:65
@ R_JWA_ALG_ECDH_ES
Definition: rhonabwy.h:128
unsigned char * key
Definition: rhonabwy.h:173
jwks_t * jwks_pubkey
Definition: rhonabwy.h:157
int r_jws_set_payload(jws_t *jws, const unsigned char *payload, size_t payload_len)
Definition: jws.c:679
int r_jwk_import_from_json_str(jwk_t *jwk, const char *input)
Definition: jwk.c:631
int r_jwt_validate_claims(jwt_t *jwt,...)
Definition: jwt.c:1508
jwks_t * jwks_privkey
Definition: rhonabwy.h:156
int r_jwk_delete_property_array_at(jwk_t *jwk, const char *key, size_t index)
Definition: jwk.c:2304
int r_jwt_parse(jwt_t *jwt, const char *token, int x5u_flags)
Definition: jwt.c:1144
void r_jwk_free(jwk_t *jwk)
Definition: jwk.c:42
int r_jwt_add_enc_jwks(jwt_t *jwt, jwks_t *jwks_privkey, jwks_t *jwks_pubkey)
Definition: jwt.c:570
unsigned char * payload_b64url
Definition: rhonabwy.h:152
jwks_t * r_jws_get_jwks_privkey(jws_t *jws)
Definition: jws.c:1093
int r_jwt_set_header_json_t_value(jwt_t *jwt, const char *key, json_t *j_value)
Definition: jwt.c:139
unsigned char * auth_tag_b64url
Definition: rhonabwy.h:167
int r_jws_set_header_int_value(jws_t *jws, const char *key, int i_value)
Definition: jws.c:796
@ R_JWA_ALG_RS256
Definition: rhonabwy.h:111
int r_jwk_append_property_array(jwk_t *jwk, const char *key, const char *value)
Definition: jwk.c:2273
jwks_t * r_jwt_get_sign_jwks_privkey(jwt_t *jwt)
Definition: jwt.c:528
json_t * r_jws_get_header_json_t_value(jws_t *jws, const char *key)
Definition: jws.c:839
jwa_alg r_jws_get_alg(jws_t *jws)
Definition: jws.c:774
unsigned char * iv
Definition: rhonabwy.h:175
int r_jwk_import_from_gnutls_pubkey(jwk_t *jwk, gnutls_pubkey_t pub)
Definition: jwk.c:1132
jwe_t * jwe
Definition: rhonabwy.h:186
@ R_JWA_ALG_RS384
Definition: rhonabwy.h:112
@ R_JWA_ALG_RSA_OAEP
Definition: rhonabwy.h:122
int r_jwt_add_sign_keys_pem_der(jwt_t *jwt, int format, const unsigned char *privkey, size_t privkey_len, const unsigned char *pubkey, size_t pubkey_len)
Definition: jwt.c:425
@ R_JWA_ALG_RSA_OAEP_256
Definition: rhonabwy.h:123
@ R_JWA_ALG_A192GCMKW
Definition: rhonabwy.h:133
int r_jwe_add_jwks(jwe_t *jwe, jwks_t *jwks_privkey, jwks_t *jwks_pubkey)
Definition: jwe.c:966
json_t * r_jwe_get_header_json_t_value(jwe_t *jwe, const char *key)
Definition: jwe.c:926
Definition: rhonabwy.h:162
int r_jws_add_key_symmetric(jws_t *jws, const unsigned char *key, size_t key_len)
Definition: jws.c:1068
@ R_JWA_ALG_HS384
Definition: rhonabwy.h:109
gnutls_x509_crt_t r_jwk_export_to_gnutls_crt(jwk_t *jwk, int x5u_flags)
Definition: jwk.c:2048
int r_jwt_set_full_claims_json_str(jwt_t *jwt, const char *str_claims)
Definition: jwt.c:253
const char * r_jws_get_header_str_value(jws_t *jws, const char *key)
Definition: jws.c:825
size_t payload_len
Definition: rhonabwy.h:159
unsigned char * payload
Definition: rhonabwy.h:158
int r_jwe_set_alg(jwe_t *jwe, jwa_alg alg)
Definition: jwe.c:745
@ R_JWA_ALG_ES384
Definition: rhonabwy.h:115
@ R_JWA_ENC_A256GCM
Definition: rhonabwy.h:147
int r_jwe_add_keys_pem_der(jwe_t *jwe, int format, const unsigned char *privkey, size_t privkey_len, const unsigned char *pubkey, size_t pubkey_len)
Definition: jwe.c:1077
int r_jwk_export_to_symmetric_key(jwk_t *jwk, unsigned char *key, size_t *key_len)
Definition: jwk.c:2183
int r_jwt_init(jwt_t **jwt)
Definition: jwt.c:28
gnutls_privkey_t r_jwk_export_to_gnutls_privkey(jwk_t *jwk, int x5u_flags)
Definition: jwk.c:1466
jwa_alg alg
Definition: rhonabwy.h:155
void r_free(void *data)
Definition: misc.c:379
const unsigned char * r_jws_get_payload(jws_t *jws, size_t *payload_len)
Definition: jws.c:704
gnutls_pubkey_t r_jwk_export_to_gnutls_pubkey(jwk_t *jwk, int x5u_flags)
Definition: jwk.c:1778
jwk_t * r_jwks_get_at(jwks_t *jwks, size_t index)
Definition: jwks.c:75
const unsigned char * r_jwe_get_cypher_key(jwe_t *jwe, size_t *key_len)
Definition: jwe.c:625
unsigned char * iv_b64url
Definition: rhonabwy.h:165
char * r_jwt_serialize_nested(jwt_t *jwt, unsigned int type, jwk_t *sign_key, int sign_key_x5u_flags, jwk_t *encrypt_key, int encrypt_key_x5u_flags)
Definition: jwt.c:943
json_t * r_jwe_get_full_header_json_t(jwe_t *jwe)
Definition: jwe.c:933
int r_jwe_set_cypher_key(jwe_t *jwe, const unsigned char *key, size_t key_len)
Definition: jwe.c:598
int r_jwe_add_keys_json_t(jwe_t *jwe, json_t *privkey, json_t *pubkey)
Definition: jwe.c:1038
jwa_alg r_jwe_get_alg(jwe_t *jwe)
Definition: jwe.c:817
unsigned char * header_b64url
Definition: rhonabwy.h:163
json_t * _r_json_get_json_t_value(json_t *j_json, const char *key)
Definition: misc.c:100
int r_jwk_is_valid(jwk_t *jwk)
Definition: jwk.c:48
int r_jws_init(jws_t **jws)
Definition: jws.c:598
int r_jwe_get_header_int_value(jwe_t *jwe, const char *key)
Definition: jwe.c:919
json_t * r_jwt_get_claim_json_t_value(jwt_t *jwt, const char *key)
Definition: jwt.c:221
int r_jwk_import_from_json_t(jwk_t *jwk, json_t *j_input)
Definition: jwk.c:648