/third_party/libwebsockets/lib/jose/jwe/ |
H A D | jwe.c | 27 #include "private-lib-jose-jwe.h" 137 lws_jwe_json_parse(struct lws_jwe *jwe, const uint8_t *buf, int len, in lws_jwe_json_parse() argument 144 args.jws = &jwe->jws; in lws_jwe_json_parse() 162 lws_jwe_init(struct lws_jwe *jwe, struct lws_context *context) in lws_jwe_init() argument 164 lws_jose_init(&jwe->jose); in lws_jwe_init() 165 lws_jws_init(&jwe->jws, &jwe->jwk, context); in lws_jwe_init() 166 memset(&jwe->jwk, 0, sizeof(jwe->jwk)); in lws_jwe_init() 167 jwe in lws_jwe_init() 172 lws_jwe_destroy(struct lws_jwe *jwe) lws_jwe_destroy() argument 209 lws_jwa_concat_kdf(struct lws_jwe *jwe, int direct, uint8_t *out, const uint8_t *shared_secret, int sslen) lws_jwa_concat_kdf() argument 323 lws_jwe_auth_and_decrypt(struct lws_jwe *jwe, char *temp, int *temp_len) lws_jwe_auth_and_decrypt() argument 384 lws_jwe_encrypt(struct lws_jwe *jwe, char *temp, int *temp_len) lws_jwe_encrypt() argument 478 lws_jwe_render_compact(struct lws_jwe *jwe, char *out, size_t out_len) lws_jwe_render_compact() argument 548 lws_jwe_create_packet(struct lws_jwe *jwe, const char *payload, size_t len, const char *nonce, char *out, size_t out_len, struct lws_context *context) lws_jwe_create_packet() argument 722 lws_jwe_render_flattened(struct lws_jwe *jwe, char *out, size_t out_len) lws_jwe_render_flattened() argument [all...] |
H A D | jwe-rsa-aesgcm.c | 26 #include "private-lib-jose-jwe.h" 32 lws_jwe_encrypt_rsa_aes_gcm(struct lws_jwe *jwe, char *temp, int *temp_len) in lws_jwe_encrypt_rsa_aes_gcm() argument 34 int ekbytes = jwe->jose.enc_alg->keybits_fixed / 8; in lws_jwe_encrypt_rsa_aes_gcm() 38 if (jwe->jws.jwk->kty != LWS_GENCRYPTO_KTY_RSA) { in lws_jwe_encrypt_rsa_aes_gcm() 39 lwsl_err("%s: wrong kty %d\n", __func__, jwe->jws.jwk->kty); in lws_jwe_encrypt_rsa_aes_gcm() 46 if (lws_jws_randomize_element(jwe->jws.context, &jwe->jws.map, LJWE_IV, in lws_jwe_encrypt_rsa_aes_gcm() 51 if (lws_jws_alloc_element(&jwe->jws.map, LJWE_ATAG, in lws_jwe_encrypt_rsa_aes_gcm() 58 if (lws_jws_encode_b64_element(&jwe->jws.map_b64, LJWE_JOSE, in lws_jwe_encrypt_rsa_aes_gcm() 60 jwe in lws_jwe_encrypt_rsa_aes_gcm() 124 lws_jwe_auth_and_decrypt_rsa_aes_gcm(struct lws_jwe *jwe) lws_jwe_auth_and_decrypt_rsa_aes_gcm() argument [all...] |
H A D | jwe-ecdh-es-aeskw.c | 26 #include "private-lib-jose-jwe.h" 187 * - The jwe->jws.jwk is the PEER - the encryption consumer's - public key. 199 lws_jwe_encrypt_ecdh(struct lws_jwe *jwe, char *temp, int *temp_len, in lws_jwe_encrypt_ecdh() argument 205 // kw_hlen = lws_genhash_size(jwe->jose.alg->hash_type), in lws_jwe_encrypt_ecdh() 206 enc_hlen = (int)lws_genhmac_size(jwe->jose.enc_alg->hmac_type), in lws_jwe_encrypt_ecdh() 207 ekbytes = 32; //jwe->jose.alg->keybits_fixed / 8; in lws_jwe_encrypt_ecdh() 209 struct lws_jwk *ephem = &jwe->jose.recipient[jwe->recip].jwk_ephemeral; in lws_jwe_encrypt_ecdh() 211 if (jwe->jws.jwk->kty != LWS_GENCRYPTO_KTY_EC) { in lws_jwe_encrypt_ecdh() 212 lwsl_err("%s: unexpected kty %d\n", __func__, jwe in lws_jwe_encrypt_ecdh() 378 lws_jwe_encrypt_ecdh_cbc_hs(struct lws_jwe *jwe, char *temp, int *temp_len) lws_jwe_encrypt_ecdh_cbc_hs() argument 453 lws_jwe_auth_and_decrypt_ecdh(struct lws_jwe *jwe) lws_jwe_auth_and_decrypt_ecdh() argument 604 lws_jwe_auth_and_decrypt_ecdh_cbc_hs(struct lws_jwe *jwe, char *temp, int *temp_len) lws_jwe_auth_and_decrypt_ecdh_cbc_hs() argument [all...] |
H A D | jwe-rsa-aescbc.c | 26 #include "private-lib-jose-jwe.h" 31 * - jwe->jws.map LJWE_JOSE contains the ASCII JOSE header 32 * - jwe->jws.map LJWE_EKEY contains cek of enc_alg hmac length 33 * - jwe->jws.map LJWE_CTXT contains the plaintext 37 * - jwe->jws.map LJWE_ATAG contains the tag 38 * - jwe->jws.map LJWE_IV contains the new random IV that was used 39 * - jwe->jws.map LJWE_EKEY contains the encrypted CEK 40 * - jwe->jws.map LJWE_CTXT contains the ciphertext 46 lws_jwe_encrypt_rsa_aes_cbc_hs(struct lws_jwe *jwe, in lws_jwe_encrypt_rsa_aes_cbc_hs() argument 49 int n, hlen = (int)lws_genhmac_size(jwe in lws_jwe_encrypt_rsa_aes_cbc_hs() 133 lws_jwe_auth_and_decrypt_rsa_aes_cbc_hs(struct lws_jwe *jwe) lws_jwe_auth_and_decrypt_rsa_aes_cbc_hs() argument [all...] |
H A D | private-lib-jose-jwe.h | 28 /* jwe-rsa-aescbc.c */ 31 lws_jwe_auth_and_decrypt_rsa_aes_cbc_hs(struct lws_jwe *jwe); 35 lws_jwe_encrypt_rsa_aes_cbc_hs(struct lws_jwe *jwe, 39 lws_jwe_auth_and_decrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *enc_cek, 46 lws_jwe_auth_and_decrypt_gcm(struct lws_jwe *jwe, uint8_t *enc_cek, 50 lws_jwe_auth_and_decrypt_rsa_aes_gcm(struct lws_jwe *jwe); 53 lws_jwe_encrypt_gcm(struct lws_jwe *jwe, 57 lws_jwe_encrypt_rsa_aes_gcm(struct lws_jwe *jwe, 63 /* jwe-rsa-aeskw.c */ 66 lws_jwe_encrypt_aeskw_cbc_hs(struct lws_jwe *jwe, [all...] |
/third_party/libwebsockets/lib/jose/jwe/enc/ |
H A D | aescbc.c | 26 #include "private-lib-jose-jwe.h" 29 lws_jwe_encrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *cek, in lws_jwe_encrypt_cbc_hs() argument 32 int n, hlen = (int)lws_genhmac_size(jwe->jose.enc_alg->hmac_type); in lws_jwe_encrypt_cbc_hs() 42 if (jwe->jws.map.len[LJWE_ATAG] != (unsigned int)hlen / 2) { in lws_jwe_encrypt_cbc_hs() 44 hlen / 2, jwe->jws.map.len[LJWE_ATAG]); in lws_jwe_encrypt_cbc_hs() 48 if (jwe->jws.map.len[LJWE_IV] != 16) { in lws_jwe_encrypt_cbc_hs() 50 jwe->jws.map.len[LJWE_IV]); in lws_jwe_encrypt_cbc_hs() 72 lws_get_random(jwe->jws.context, (void *)jwe->jws.map.buf[LJWE_IV], 16); in lws_jwe_encrypt_cbc_hs() 96 n = lws_genaes_crypt(&aesctx, (uint8_t *)jwe in lws_jwe_encrypt_cbc_hs() 162 lws_jwe_auth_and_decrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *enc_cek, uint8_t *aad, int aad_len) lws_jwe_auth_and_decrypt_cbc_hs() argument [all...] |
H A D | aeskw.c | 26 #include "private-lib-jose-jwe.h" 38 lws_jwe_encrypt_aeskw_cbc_hs(struct lws_jwe *jwe, char *temp, int *temp_len) in lws_jwe_encrypt_aeskw_cbc_hs() argument 44 int n, m, hlen = (int)lws_genhmac_size(jwe->jose.enc_alg->hmac_type), in lws_jwe_encrypt_aeskw_cbc_hs() 47 if (jwe->jws.jwk->kty != LWS_GENCRYPTO_KTY_OCT) { in lws_jwe_encrypt_aeskw_cbc_hs() 48 lwsl_err("%s: unexpected kty %d\n", __func__, jwe->jws.jwk->kty); in lws_jwe_encrypt_aeskw_cbc_hs() 55 if (lws_jws_encode_b64_element(&jwe->jws.map_b64, LJWE_JOSE, in lws_jwe_encrypt_aeskw_cbc_hs() 57 jwe->jws.map.buf[LJWE_JOSE], in lws_jwe_encrypt_aeskw_cbc_hs() 58 jwe->jws.map.len[LJWE_JOSE])) in lws_jwe_encrypt_aeskw_cbc_hs() 63 if (lws_jws_alloc_element(&jwe->jws.map, LJWE_ATAG, temp + (ot - *temp_len), in lws_jwe_encrypt_aeskw_cbc_hs() 67 if (lws_jws_alloc_element(&jwe in lws_jwe_encrypt_aeskw_cbc_hs() 118 lws_jwe_auth_and_decrypt_aeskw_cbc_hs(struct lws_jwe *jwe) lws_jwe_auth_and_decrypt_aeskw_cbc_hs() argument [all...] |
H A D | aesgcm.c | 26 #include "private-lib-jose-jwe.h" 53 lws_jwe_encrypt_gcm(struct lws_jwe *jwe, in lws_jwe_encrypt_gcm() argument 64 if (jwe->jws.map.len[LJWE_ATAG] != LWS_AESGCM_TAG) { in lws_jwe_encrypt_gcm() 66 __func__, jwe->jws.map.len[LJWE_ATAG]); in lws_jwe_encrypt_gcm() 70 if (jwe->jws.map.len[LJWE_IV] != LWS_AESGCM_IV) { /* MUST be 96-bit */ in lws_jwe_encrypt_gcm() 72 jwe->jws.map.len[LJWE_IV]); in lws_jwe_encrypt_gcm() 78 el.len = jwe->jose.enc_alg->keybits_fixed / 8; in lws_jwe_encrypt_gcm() 90 (uint8_t *)jwe->jws.map.buf[LJWE_IV], in lws_jwe_encrypt_gcm() 91 (uint8_t *)jwe->jws.map.buf[LJWE_ATAG], &ivs, in lws_jwe_encrypt_gcm() 99 n = lws_genaes_crypt(&aesctx, (uint8_t *)jwe in lws_jwe_encrypt_gcm() 117 lws_jwe_auth_and_decrypt_gcm(struct lws_jwe *jwe, uint8_t *enc_cek, uint8_t *aad, int aad_len) lws_jwe_auth_and_decrypt_gcm() argument [all...] |
/third_party/libwebsockets/minimal-examples/api-tests/api-test-jose/ |
H A D | jwe.c | 2 * lws-api-test-jose - RFC7516 jwe tests 72 struct lws_jwe jwe; in test_jwe_a1() local 76 lws_jwe_init(&jwe, context); in test_jwe_a1() 78 if (lws_jwk_import(&jwe.jwk, NULL, NULL, ex_a1_jwk_json, in test_jwe_a1() 86 &jwe.jws.map, &jwe.jws.map_b64, temp, in test_jwe_a1() 92 n = lws_jwe_auth_and_decrypt(&jwe, lws_concat_temp(temp, temp_len), in test_jwe_a1() 101 if (jwe.jws.map.len[LJWE_CTXT] < strlen(ex_a1_ptext) || in test_jwe_a1() 102 lws_timingsafe_bcmp(jwe.jws.map.buf[LJWE_CTXT], ex_a1_ptext, in test_jwe_a1() 106 lwsl_hexdump_notice(jwe in test_jwe_a1() 288 struct lws_jwe jwe; test_jwe_a2() local 496 struct lws_jwe jwe; test_jwe_ra_ptext_1024() local 622 struct lws_jwe jwe; test_jwe_r256a192_ptext() local 754 struct lws_jwe jwe; test_jwe_r256a256_ptext() local 1048 struct lws_jwe jwe; test_jwe_r256a128_jwe_openssl() local 1139 struct lws_jwe jwe; test_jwe_r256a128_jwe_mbedtls() local 1230 struct lws_jwe jwe; test_jwe_a3() local 1364 struct lws_jwe jwe; test_jwa_b2() local 1520 struct lws_jwe jwe; test_jwa_b3() local 1638 struct lws_jwe jwe; test_jwa_c() local 1790 struct lws_jwe jwe; test_ecdhes_t1() local 1967 struct lws_jwe jwe; test_akw_decrypt() local 2022 struct lws_jwe jwe; test_akw_encrypt() local 2139 struct lws_jwe jwe; test_jwe_json_complete() local [all...] |
/third_party/libwebsockets/minimal-examples/crypto/minimal-crypto-jwe/ |
H A D | main.c | 2 * lws-crypto-jwe 90 struct lws_jwe jwe; in main() local 111 lws_jwe_init(&jwe, context); in main() 126 if (lws_gencrypto_jwe_alg_to_definition(p, &jwe.jose.alg)) { in main() 130 if (lws_gencrypto_jwe_enc_to_definition(sp + 1, &jwe.jose.enc_alg)) { in main() 137 if (lws_jws_alloc_element(&jwe.jws.map, LJWS_JOSE, in main() 145 jwe.jws.map.len[LJWS_JOSE] = (uint32_t)lws_snprintf( in main() 146 (char *)jwe.jws.map.buf[LJWS_JOSE], (unsigned int)temp_len, in main() 166 if (lws_jwk_load(&jwe.jwk, p, NULL, NULL)) { in main() 181 jwe in main() [all...] |
/third_party/libwebsockets/include/libwebsockets/ |
H A D | lws-jwe.h | 61 lws_jwe_init(struct lws_jwe *jwe, struct lws_context *context); 64 lws_jwe_destroy(struct lws_jwe *jwe); 80 lws_jwe_render_compact(struct lws_jwe *jwe, char *out, size_t out_len); 83 lws_jwe_render_flattened(struct lws_jwe *jwe, char *out, size_t out_len); 86 lws_jwe_json_parse(struct lws_jwe *jwe, const uint8_t *buf, int len, 93 * \param jws: jws / jwe context... .map and .map_b64 must be filled already 113 lws_jwe_auth_and_decrypt(struct lws_jwe *jwe, char *temp, int *temp_len); 129 lws_jwe_encrypt(struct lws_jwe *jwe, char *temp, int *temp_len); 134 * \param jwe: the struct lws_jwe we are trying to render 151 lws_jwe_create_packet(struct lws_jwe *jwe, [all...] |
/third_party/libwebsockets/plugins/acme-client/ |
H A D | protocol_lws_acme_client.c | 209 jws_create_packet(struct lws_jwe *jwe, const char *payload, size_t len, in jws_create_packet() argument 217 lws_jws_init(&jws, &jwe->jwk, context); in jws_create_packet() 238 if (!jwe->jose.alg || !jwe->jose.alg->alg) in jws_create_packet() 247 n = lws_jwk_export(&jwe->jwk, 0, p, &m); in jws_create_packet() 289 n = lws_jws_sign_from_b64(&jwe->jose, &jws, p1, lws_ptr_diff_size_t(end1, p1)); in jws_create_packet() 778 struct lws_jwe jwe; in callback_acme_client() local 785 lws_jwe_init(&jwe, lws_get_context(wsi)); in callback_acme_client() 1051 &jwe.jose.alg)) { in callback_acme_client() 1056 jwe in callback_acme_client() [all...] |
/third_party/libwebsockets/include/ |
H A D | libwebsockets.h | 672 #include <libwebsockets/lws-jwe.h>
|