Rhonabwy
Javascript Object Signing and Encryption (JOSE) library - JWK, JWKS, JWS, JWE and JWT
|
#include <string.h>
#include <ctype.h>
#include <gnutls/gnutls.h>
#include <gnutls/crypto.h>
#include <gnutls/abstract.h>
#include <gnutls/x509.h>
#include <orcania.h>
#include <yder.h>
#include <rhonabwy.h>
Macros | |
#define | R_TAG_MAX_SIZE 16 |
#define | _R_BLOCK_SIZE 256 |
#define | _R_PBES_DEFAULT_ITERATION 4096 |
#define | _R_PBES_DEFAULT_SALT_LENGTH 8 |
#define | _R_CURVE_MAX_SIZE 66 |
Functions | |
int | r_jwe_init (jwe_t **jwe) |
void | r_jwe_free (jwe_t *jwe) |
jwe_t * | r_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_set_aad (jwe_t *jwe, const unsigned char *aad, size_t aad_len) |
const unsigned char * | r_jwe_get_aad (jwe_t *jwe, size_t *aad_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) |
const char * | r_jwe_get_kid (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, rhn_int_t 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) |
rhn_int_t | 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) |
char * | r_jwe_get_full_header_str (jwe_t *jwe) |
json_t * | r_jwe_get_full_unprotected_header_json_t (jwe_t *jwe) |
char * | r_jwe_get_full_unprotected_header_str (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_t * | r_jwe_get_jwks_privkey (jwe_t *jwe) |
jwks_t * | r_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_parse (jwe_t *jwe, const char *jwe_str, 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_advanced_parse (jwe_t *jwe, const char *jwe_str, uint32_t parse_flags, int x5u_flags) |
int | r_jwe_advanced_parsen (jwe_t *jwe, const char *jwe_str, size_t jwe_str_len, uint32_t parse_flags, int x5u_flags) |
int | r_jwe_compact_parsen (jwe_t *jwe, const char *jwe_str, size_t jwe_str_len, int x5u_flags) |
int | r_jwe_compact_parse (jwe_t *jwe, const char *jwe_str, int x5u_flags) |
int | r_jwe_advanced_compact_parse (jwe_t *jwe, const char *jwe_str, uint32_t parse_flags, int x5u_flags) |
int | r_jwe_advanced_compact_parsen (jwe_t *jwe, const char *jwe_str, size_t jwe_str_len, uint32_t parse_flags, int x5u_flags) |
int | r_jwe_parse_json_str (jwe_t *jwe, const char *jwe_json_str, int x5u_flags) |
int | r_jwe_parsen_json_str (jwe_t *jwe, const char *jwe_json_str, size_t jwe_json_str_len, int x5u_flags) |
int | r_jwe_parse_json_t (jwe_t *jwe, json_t *jwe_json, int x5u_flags) |
int | r_jwe_advanced_parse_json_str (jwe_t *jwe, const char *jwe_json_str, uint32_t parse_flags, int x5u_flags) |
int | r_jwe_advanced_parsen_json_str (jwe_t *jwe, const char *jwe_json_str, size_t jwe_json_str_len, uint32_t parse_flags, int x5u_flags) |
int | r_jwe_advanced_parse_json_t (jwe_t *jwe, json_t *jwe_json, uint32_t parse_flags, int x5u_flags) |
jwe_t * | r_jwe_quick_parse (const char *jwe_str, uint32_t parse_flags, int x5u_flags) |
jwe_t * | r_jwe_quick_parsen (const char *jwe_str, size_t jwe_str_len, uint32_t parse_flags, 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) |
char * | r_jwe_serialize_json_str (jwe_t *jwe, jwks_t *jwks_pubkey, int x5u_flags, int mode) |
json_t * | r_jwe_serialize_json_t (jwe_t *jwe, jwks_t *jwks_pubkey, int x5u_flags, int mode) |
int | r_jwe_set_full_header_json_t (jwe_t *jwe, json_t *j_header) |
int | r_jwe_set_full_header_json_str (jwe_t *jwe, const char *str_header) |
int | r_jwe_set_full_unprotected_header_json_t (jwe_t *jwe, json_t *j_unprotected_header) |
int | r_jwe_set_full_unprotected_header_json_str (jwe_t *jwe, const char *str_unprotected_header) |
int | r_jwe_set_properties (jwe_t *jwe,...) |
#define _R_BLOCK_SIZE 256 |
#define _R_CURVE_MAX_SIZE 66 |
#define _R_PBES_DEFAULT_ITERATION 4096 |
#define _R_PBES_DEFAULT_SALT_LENGTH 8 |
#define R_TAG_MAX_SIZE 16 |
Rhonabwy JSON Web Encryption (JWE) library
jwe.c: functions definitions
Copyright 2020-2022 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/.