CJOSE 0.6.2.3
Loading...
Searching...
No Matches
jwe.h
Go to the documentation of this file.
1/*
2 * Copyrights
3 *
4 * Portions created or assigned to Cisco Systems, Inc. are
5 * Copyright (c) 2014-2016 Cisco Systems, Inc. All Rights Reserved.
6 */
7
15#ifndef CJOSE_JWE_H
16#define CJOSE_JWE_H
17
18#include <stdbool.h>
19#include <stdint.h>
20#include <stddef.h>
21#include "header.h"
22#include "error.h"
23#include "jwk.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
39
43typedef struct _cjose_jwe_int cjose_jwe_t;
44
45typedef const cjose_jwk_t *(*cjose_key_locator)(cjose_jwe_t *jwe, cjose_header_t *hdr, void *);
46
66cjose_jwe_encrypt(const cjose_jwk_t *jwk, cjose_header_t *header, const uint8_t *plaintext, size_t plaintext_len, cjose_err *err);
67
90 cjose_header_t *header,
91 const uint8_t *iv,
92 size_t iv_len,
93 const uint8_t *plaintext,
94 size_t plaintext_len,
95 cjose_err *err);
96
117 size_t recipient_count,
118 cjose_header_t *protected_header,
119 cjose_header_t *shared_unprotected_header,
120 const uint8_t *plaintext,
121 size_t plaintext_len,
122 cjose_err *err);
123
147 size_t recipient_count,
148 cjose_header_t *protected_header,
149 cjose_header_t *shared_unprotected_header,
150 const uint8_t *iv,
151 size_t iv_len,
152 const uint8_t *plaintext,
153 size_t plaintext_len,
154 cjose_err *err);
155
168
181
194cjose_jwe_t *cjose_jwe_import(const char *compact, size_t compact_len, cjose_err *err);
195
208cjose_jwe_t *cjose_jwe_import_json(const char *json, size_t json_len, cjose_err *err);
209
223uint8_t *cjose_jwe_decrypt(cjose_jwe_t *jwe, const cjose_jwk_t *jwk, size_t *content_len, cjose_err *err);
224
243uint8_t *cjose_jwe_decrypt_multi(cjose_jwe_t *jwe, cjose_key_locator key_locator, void *data, size_t *content_len, cjose_err *err);
244
256
263
264#ifdef __cplusplus
265}
266#endif
267
268#endif // CJOSE_JWE_H
Datatypes and functions for error reporting.
Functions and data structures for interacting with JSON Web Signature (JWS) objects.
struct json_t cjose_header_t
Definition header.h:98
struct _cjose_jwe_int cjose_jwe_t
Definition jwe.h:43
uint8_t * cjose_jwe_decrypt_multi(cjose_jwe_t *jwe, cjose_key_locator key_locator, void *data, size_t *content_len, cjose_err *err)
uint8_t * cjose_jwe_decrypt(cjose_jwe_t *jwe, const cjose_jwk_t *jwk, size_t *content_len, cjose_err *err)
char * cjose_jwe_export(cjose_jwe_t *jwe, cjose_err *err)
cjose_jwe_t * cjose_jwe_import(const char *compact, size_t compact_len, cjose_err *err)
cjose_jwe_t * cjose_jwe_encrypt(const cjose_jwk_t *jwk, cjose_header_t *header, const uint8_t *plaintext, size_t plaintext_len, cjose_err *err)
cjose_header_t * cjose_jwe_get_protected(cjose_jwe_t *jwe)
cjose_jwe_t * cjose_jwe_encrypt_multi_iv(const cjose_jwe_recipient_t *recipients, size_t recipient_count, cjose_header_t *protected_header, cjose_header_t *shared_unprotected_header, const uint8_t *iv, size_t iv_len, const uint8_t *plaintext, size_t plaintext_len, cjose_err *err)
cjose_jwe_t * cjose_jwe_encrypt_iv(const cjose_jwk_t *jwk, cjose_header_t *header, const uint8_t *iv, size_t iv_len, const uint8_t *plaintext, size_t plaintext_len, cjose_err *err)
cjose_jwe_t * cjose_jwe_import_json(const char *json, size_t json_len, cjose_err *err)
char * cjose_jwe_export_json(cjose_jwe_t *jwe, cjose_err *err)
void cjose_jwe_release(cjose_jwe_t *jwe)
cjose_jwe_t * cjose_jwe_encrypt_multi(const cjose_jwe_recipient_t *recipients, size_t recipient_count, cjose_header_t *protected_header, cjose_header_t *shared_unprotected_header, const uint8_t *plaintext, size_t plaintext_len, cjose_err *err)
Functions and data structures for interacting with JSON Web Key (JWK) objects.
struct _cjose_jwk_int cjose_jwk_t
Definition jwk.h:50
Definition error.h:67
Definition jwe.h:33
cjose_header_t * unprotected_header
Definition jwe.h:37
const cjose_jwk_t * jwk
Definition jwe.h:35