CJOSE 0.6.1
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
32typedef struct {
38
42typedef struct _cjose_jwe_int cjose_jwe_t;
43
44typedef const cjose_jwk_t *(*cjose_key_locator)(cjose_jwe_t *jwe, cjose_header_t *hdr, void *);
45
65cjose_jwe_encrypt(const cjose_jwk_t *jwk, cjose_header_t *header, const uint8_t *plaintext, size_t plaintext_len, cjose_err *err);
66
87 size_t recipient_count,
88 cjose_header_t *protected_header,
89 cjose_header_t *shared_unprotected_header,
90 const uint8_t *plaintext,
91 size_t plaintext_len,
92 cjose_err *err);
93
106
119
132cjose_jwe_t *cjose_jwe_import(const char *compact, size_t compact_len, cjose_err *err);
133
146cjose_jwe_t *cjose_jwe_import_json(const char *json, size_t json_len, cjose_err *err);
147
161uint8_t *cjose_jwe_decrypt(cjose_jwe_t *jwe, const cjose_jwk_t *jwk, size_t *content_len, cjose_err *err);
162
181uint8_t *cjose_jwe_decrypt_multi(cjose_jwe_t *jwe, cjose_key_locator key_locator, void *data, size_t *content_len, cjose_err *err);
182
194
201
202#ifdef __cplusplus
203}
204#endif
205
206#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:96
struct _cjose_jwe_int cjose_jwe_t
Definition: jwe.h:42
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_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:49
Definition: error.h:66
Definition: jwe.h:32
cjose_header_t * unprotected_header
Definition: jwe.h:36
const cjose_jwk_t * jwk
Definition: jwe.h:34