Rhonabwy
Create, modify, parse or export Json Web Keys as defined in the RFC 7517
Macros | Functions
jwe.c File Reference
#include <stdint.h>
#include <string.h>
#include <gnutls/gnutls.h>
#include <gnutls/crypto.h>
#include <gnutls/abstract.h>
#include <gnutls/x509.h>
#include <zlib.h>
#include <orcania.h>
#include <yder.h>
#include <rhonabwy.h>

Macros

#define R_TAG_MAX_SIZE   16
 
#define _R_BLOCK_SIZE   256
 

Functions

int r_jwe_aesgcm_key_wrap (jwe_t *jwe, jwk_t *jwk, int x5u_flags)
 
int r_jwe_aesgcm_key_unwrap (jwe_t *jwe, jwk_t *jwk, int x5u_flags)
 
int r_jwe_init (jwe_t **jwe)
 
void r_jwe_free (jwe_t *jwe)
 
jwe_tr_jwe_copy (jwe_t *jwe)
 
int r_jwe_set_payload (jwe_t *jwe, const unsigned char *payload, size_t payload_len)
 
const unsigned char * r_jwe_get_payload (jwe_t *jwe, size_t *payload_len)
 
int r_jwe_set_cypher_key (jwe_t *jwe, const unsigned char *key, size_t key_len)
 
const unsigned char * r_jwe_get_cypher_key (jwe_t *jwe, size_t *key_len)
 
int r_jwe_generate_cypher_key (jwe_t *jwe)
 
int r_jwe_set_iv (jwe_t *jwe, const unsigned char *iv, size_t iv_len)
 
const unsigned char * r_jwe_get_iv (jwe_t *jwe, size_t *iv_len)
 
int r_jwe_generate_iv (jwe_t *jwe)
 
int r_jwe_set_alg (jwe_t *jwe, jwa_alg alg)
 
jwa_alg r_jwe_get_alg (jwe_t *jwe)
 
int r_jwe_set_enc (jwe_t *jwe, jwa_enc enc)
 
jwa_enc r_jwe_get_enc (jwe_t *jwe)
 
int r_jwe_set_header_str_value (jwe_t *jwe, const char *key, const char *str_value)
 
int r_jwe_set_header_int_value (jwe_t *jwe, const char *key, int i_value)
 
int r_jwe_set_header_json_t_value (jwe_t *jwe, const char *key, json_t *j_value)
 
const char * r_jwe_get_header_str_value (jwe_t *jwe, const char *key)
 
int r_jwe_get_header_int_value (jwe_t *jwe, const char *key)
 
json_t * r_jwe_get_header_json_t_value (jwe_t *jwe, const char *key)
 
json_t * r_jwe_get_full_header_json_t (jwe_t *jwe)
 
int r_jwe_add_keys (jwe_t *jwe, jwk_t *jwk_privkey, jwk_t *jwk_pubkey)
 
int r_jwe_add_jwks (jwe_t *jwe, jwks_t *jwks_privkey, jwks_t *jwks_pubkey)
 
int r_jwe_add_keys_json_str (jwe_t *jwe, const char *privkey, const char *pubkey)
 
int r_jwe_add_keys_json_t (jwe_t *jwe, json_t *privkey, json_t *pubkey)
 
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)
 
int r_jwe_add_keys_gnutls (jwe_t *jwe, gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
 
int r_jwe_add_key_symmetric (jwe_t *jwe, const unsigned char *key, size_t key_len)
 
jwks_tr_jwe_get_jwks_privkey (jwe_t *jwe)
 
jwks_tr_jwe_get_jwks_pubkey (jwe_t *jwe)
 
int r_jwe_encrypt_payload (jwe_t *jwe)
 
int r_jwe_decrypt_payload (jwe_t *jwe)
 
int r_jwe_encrypt_key (jwe_t *jwe, jwk_t *jwk_s, int x5u_flags)
 
int r_jwe_decrypt_key (jwe_t *jwe, jwk_t *jwk_s, int x5u_flags)
 
int r_jwe_parsen (jwe_t *jwe, const char *jwe_str, size_t jwe_str_len, int x5u_flags)
 
int r_jwe_parse (jwe_t *jwe, const char *jwe_str, int x5u_flags)
 
int r_jwe_decrypt (jwe_t *jwe, jwk_t *jwk_privkey, int x5u_flags)
 
char * r_jwe_serialize (jwe_t *jwe, jwk_t *jwk_pubkey, int x5u_flags)
 

Macro Definition Documentation

◆ R_TAG_MAX_SIZE

#define R_TAG_MAX_SIZE   16

Rhonabwy JSON Web Encryption (JWE) library

jwe.c: functions definitions

Copyright 2020 Nicolas Mora mail@.nosp@m.babe.nosp@m.loues.nosp@m.t.or.nosp@m.g

This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; version 2.1 of the License.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU GENERAL PUBLIC LICENSE for more details.

You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses/.

◆ _R_BLOCK_SIZE

#define _R_BLOCK_SIZE   256

Function Documentation

◆ r_jwe_aesgcm_key_wrap()

int r_jwe_aesgcm_key_wrap ( jwe_t jwe,
jwk_t jwk,
int  x5u_flags 
)

◆ r_jwe_aesgcm_key_unwrap()

int r_jwe_aesgcm_key_unwrap ( jwe_t jwe,
jwk_t jwk,
int  x5u_flags 
)