diff --git a/crypto/evp/evp_lib.c b/crypto/evp/evp_lib.c index 27b5fb4567ff82..ee4fe764600c27 100644 --- a/crypto/evp/evp_lib.c +++ b/crypto/evp/evp_lib.c @@ -330,10 +330,10 @@ int EVP_CIPHER_get_type(const EVP_CIPHER *cipher) return NID_des_cfb64; - case NID_enull_hmac_sha256: - return NID_enull_hmac_sha256; - case NID_enull_hmac_sha384: - return NID_enull_hmac_sha384; + case NID_null_hmac_sha256: + return NID_null_hmac_sha256; + case NID_null_hmac_sha384: + return NID_null_hmac_sha384; default: #ifdef FIPS_MODULE diff --git a/crypto/objects/obj_dat.h b/crypto/objects/obj_dat.h index 64dcabd183feb2..c14d2f0ec449d9 100644 --- a/crypto/objects/obj_dat.h +++ b/crypto/objects/obj_dat.h @@ -2506,8 +2506,8 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = { {"altSignatureAlgorithm", "X509v3 Alternative Signature Algorithm", NID_alt_signature_algorithm, 3, &so[8466]}, {"altSignatureValue", "X509v3 Alternative Signature Value", NID_alt_signature_value, 3, &so[8469]}, {"associatedInformation", "X509v3 Associated Information", NID_associated_information, 3, &so[8472]}, - {"eNULL-HMAC-SHA256", "enull-hmac-sha256", NID_enull_hmac_sha256}, - {"eNULL-HMAC-SHA384", "enull-hmac-sha384", NID_enull_hmac_sha384}, + {"NULL-HMAC-SHA256", "null-hmac-sha256", NID_null_hmac_sha256}, + {"NULL-HMAC-SHA384", "null-hmac-sha384", NID_null_hmac_sha384}, }; #define NUM_SN 1313 @@ -2705,6 +2705,8 @@ static const unsigned int sn_objs[NUM_SN] = { 388, /* "Mail" */ 393, /* "NULL" */ 404, /* "NULL" */ + 1320, /* "NULL-HMAC-SHA256" */ + 1321, /* "NULL-HMAC-SHA384" */ 57, /* "Netscape" */ 366, /* "Nonce" */ 17, /* "O" */ @@ -2985,8 +2987,6 @@ static const unsigned int sn_objs[NUM_SN] = { 1157, /* "dstu34311" */ 1159, /* "dstu4145be" */ 1158, /* "dstu4145le" */ - 1320, /* "eNULL-HMAC-SHA256" */ - 1321, /* "eNULL-HMAC-SHA384" */ 791, /* "ecdsa-with-Recommended" */ 416, /* "ecdsa-with-SHA1" */ 793, /* "ecdsa-with-SHA224" */ @@ -4370,8 +4370,6 @@ static const unsigned int ln_objs[NUM_LN] = { 48, /* "emailAddress" */ 632, /* "encrypted track 2" */ 885, /* "enhancedSearchGuide" */ - 1320, /* "enull-hmac-sha256" */ - 1321, /* "enull-hmac-sha384" */ 1267, /* "ess-attributes" */ 1265, /* "etsi" */ 56, /* "extendedCertificateAttributes" */ @@ -4782,6 +4780,8 @@ static const unsigned int ln_objs[NUM_LN] = { 1217, /* "modp_8192" */ 481, /* "nSRecord" */ 173, /* "name" */ + 1320, /* "null-hmac-sha256" */ + 1321, /* "null-hmac-sha384" */ 681, /* "onBasis" */ 379, /* "org" */ 1089, /* "organizationIdentifier" */ diff --git a/crypto/objects/obj_mac.num b/crypto/objects/obj_mac.num index c6232c11c441d8..98af3a22f25e8a 100644 --- a/crypto/objects/obj_mac.num +++ b/crypto/objects/obj_mac.num @@ -1317,5 +1317,5 @@ subject_alt_public_key_info 1316 alt_signature_algorithm 1317 alt_signature_value 1318 associated_information 1319 -enull_hmac_sha256 1320 -enull_hmac_sha384 1321 +null_hmac_sha256 1320 +null_hmac_sha384 1321 diff --git a/crypto/objects/objects.txt b/crypto/objects/objects.txt index 4e3bccf9d895e4..986d4801b4a91b 100644 --- a/crypto/objects/objects.txt +++ b/crypto/objects/objects.txt @@ -1685,8 +1685,8 @@ sm-scheme 104 10 : SM4-XTS : sm4-xts : AES-256-CBC-HMAC-SHA256 : aes-256-cbc-hmac-sha256 : ChaCha20-Poly1305 : chacha20-poly1305 : ChaCha20 : chacha20 - : eNULL-HMAC-SHA256 : enull-hmac-sha256 - : eNULL-HMAC-SHA384 : enull-hmac-sha384 + : NULL-HMAC-SHA256 : null-hmac-sha256 + : NULL-HMAC-SHA384 : null-hmac-sha384 ISO-US 10046 2 1 : dhpublicnumber : X9.42 DH diff --git a/include/openssl/obj_mac.h b/include/openssl/obj_mac.h index 12099f718fd853..f90eb0ec7dbd40 100644 --- a/include/openssl/obj_mac.h +++ b/include/openssl/obj_mac.h @@ -5290,13 +5290,13 @@ #define LN_chacha20 "chacha20" #define NID_chacha20 1019 -#define SN_enull_hmac_sha256 "eNULL-HMAC-SHA256" -#define LN_enull_hmac_sha256 "enull-hmac-sha256" -#define NID_enull_hmac_sha256 1320 +#define SN_null_hmac_sha256 "NULL-HMAC-SHA256" +#define LN_null_hmac_sha256 "null-hmac-sha256" +#define NID_null_hmac_sha256 1320 -#define SN_enull_hmac_sha384 "eNULL-HMAC-SHA384" -#define LN_enull_hmac_sha384 "enull-hmac-sha384" -#define NID_enull_hmac_sha384 1321 +#define SN_null_hmac_sha384 "NULL-HMAC-SHA384" +#define LN_null_hmac_sha384 "null-hmac-sha384" +#define NID_null_hmac_sha384 1321 #define SN_dhpublicnumber "dhpublicnumber" #define LN_dhpublicnumber "X9.42 DH" diff --git a/providers/defltprov.c b/providers/defltprov.c index 33e01f836f4954..543e89cba16e1d 100644 --- a/providers/defltprov.c +++ b/providers/defltprov.c @@ -314,8 +314,8 @@ static const OSSL_ALGORITHM_CAPABLE deflt_ciphers[] = { # endif /* OPENSSL_NO_POLY1305 */ #endif /* OPENSSL_NO_CHACHA */ #ifndef OPENSSL_NO_TLS1_3_INTEGRITY_ONLY_CIPHERS - ALG(PROV_NAMES_ENULL_HMAC_SHA256, ossl_enull_hmac_sha256_functions), - ALG(PROV_NAMES_ENULL_HMAC_SHA384, ossl_enull_hmac_sha384_functions), + ALG(PROV_NAMES_NULL_HMAC_SHA256, ossl_null_hmac_sha256_functions), + ALG(PROV_NAMES_NULL_HMAC_SHA384, ossl_null_hmac_sha384_functions), #endif { { NULL, NULL, NULL }, NULL } }; diff --git a/providers/implementations/ciphers/build.info b/providers/implementations/ciphers/build.info index 81a51087ef7239..c7e5c886a92ec5 100644 --- a/providers/implementations/ciphers/build.info +++ b/providers/implementations/ciphers/build.info @@ -26,7 +26,7 @@ $CHACHA_GOAL=../../libdefault.a $CHACHAPOLY_GOAL=../../libdefault.a $SIV_GOAL=../../libdefault.a $SIV_GCM_GOAL=../../libdefault.a -$ENULL_HMAC_GOAL=../../libdefault.a +$NULL_HMAC_GOAL=../../libdefault.a IF[{- !$disabled{asm} -}] $GHASHDEF_x86=GHASH_ASM @@ -195,6 +195,6 @@ IF[{- !$disabled{chacha} -}] ENDIF IF[{- !$disabled{tls1_3-integrity-only_ciphers} -}] - SOURCE[$ENULL_HMAC_GOAL]=\ - cipher_enull_hmac.c cipher_enull_hmac_hw.c + SOURCE[$NULL_HMAC_GOAL]=\ + cipher_null_hmac.c cipher_null_hmac_hw.c ENDIF diff --git a/providers/implementations/ciphers/cipher_enull_hmac.h b/providers/implementations/ciphers/cipher_enull_hmac.h deleted file mode 100644 index 2f0cd6503df384..00000000000000 --- a/providers/implementations/ciphers/cipher_enull_hmac.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2023-2024 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include "prov/ciphercommon.h" -#include "prov/provider_ctx.h" -#include "prov/implementations.h" -#include "prov/provider_util.h" - -#define ENULL_HMAC_SHA256_KEYLEN 32 -#define ENULL_HMAC_SHA256_BLKLEN 1 -#define ENULL_HMAC_SHA256_TAGLEN 32 -#define ENULL_HMAC_SHA256_IVLEN 32 -#define ENULL_HMAC_SHA256_MODE 0 -#define ENULL_HMAC_SHA256_FLAGS (PROV_CIPHER_FLAG_AEAD \ - | PROV_CIPHER_FLAG_CUSTOM_IV) - -#define ENULL_HMAC_SHA384_KEYLEN 48 -#define ENULL_HMAC_SHA384_BLKLEN 1 -#define ENULL_HMAC_SHA384_TAGLEN 48 -#define ENULL_HMAC_SHA384_IVLEN 48 -#define ENULL_HMAC_SHA384_MODE 0 -#define ENULL_HMAC_SHA384_FLAGS (PROV_CIPHER_FLAG_AEAD \ - | PROV_CIPHER_FLAG_CUSTOM_IV) - -#define ENULL_HMAC_MAX_KEYLEN 48 /* ENULL_HMAC_SHA384_KEYLEN */ -#define ENULL_HMAC_MAX_TAGLEN 48 /* ENULL_HMAC_SHA384_TAGLEN */ -#define ENULL_HMAC_MAX_IVLEN 48 /* ENULL_HMAC_SHA384_IVLEN */ - -typedef struct { - PROV_CIPHER_CTX base; /* must be first */ - HMAC_CTX *hmac; - PROV_DIGEST md; - unsigned char key[ENULL_HMAC_MAX_KEYLEN]; /* len is in base.keylen */ - unsigned char tag[ENULL_HMAC_MAX_TAGLEN]; - unsigned int tag_len; -} PROV_ENULL_HMAC_CTX; - -typedef struct prov_cipher_hw_enull_hmac_st { - PROV_CIPHER_HW base; /* must be first */ - int (*initiv)(PROV_CIPHER_CTX *ctx, const unsigned char *iv, size_t ivlen); -} PROV_CIPHER_HW_ENULL_HMAC; - -const PROV_CIPHER_HW *ossl_prov_cipher_hw_enull_hmac(size_t keybits); - -OSSL_FUNC_cipher_encrypt_init_fn ossl_hmac_sha256_einit; -OSSL_FUNC_cipher_decrypt_init_fn ossl_hmac_sha256_dinit; -void ossl_hmac_sha256_initctx(PROV_ENULL_HMAC_CTX *ctx); diff --git a/providers/implementations/ciphers/cipher_enull_hmac.c b/providers/implementations/ciphers/cipher_null_hmac.c similarity index 62% rename from providers/implementations/ciphers/cipher_enull_hmac.c rename to providers/implementations/ciphers/cipher_null_hmac.c index 7a9423a2ac7add..0a35e075d8a9bc 100644 --- a/providers/implementations/ciphers/cipher_enull_hmac.c +++ b/providers/implementations/ciphers/cipher_null_hmac.c @@ -7,7 +7,7 @@ * https://www.openssl.org/source/license.html */ -/* Dispatch functions for enull_hmac cipher */ +/* Dispatch functions for null_hmac cipher */ /* * HMAC low level APIs are deprecated for public use, but still ok for internal @@ -18,26 +18,26 @@ #include #include #include -#include "cipher_enull_hmac.h" +#include "cipher_null_hmac.h" #include "prov/implementations.h" #include "prov/providercommon.h" -static OSSL_FUNC_cipher_freectx_fn enull_hmac_freectx; -static OSSL_FUNC_cipher_dupctx_fn enull_hmac_dupctx; -static OSSL_FUNC_cipher_encrypt_init_fn enull_hmac_einit; -static OSSL_FUNC_cipher_decrypt_init_fn enull_hmac_dinit; -static OSSL_FUNC_cipher_get_ctx_params_fn enull_hmac_get_ctx_params; -static OSSL_FUNC_cipher_set_ctx_params_fn enull_hmac_set_ctx_params; -static OSSL_FUNC_cipher_cipher_fn enull_hmac_cipher; -static OSSL_FUNC_cipher_final_fn enull_hmac_final; -static OSSL_FUNC_cipher_gettable_ctx_params_fn enull_hmac_gettable_ctx_params; -static OSSL_FUNC_cipher_settable_ctx_params_fn enull_hmac_settable_ctx_params; -#define enull_hmac_update enull_hmac_cipher -#define enull_hmac_gettable_params ossl_cipher_generic_gettable_params - -static void enull_hmac_freectx(void *vctx) +static OSSL_FUNC_cipher_freectx_fn null_hmac_freectx; +static OSSL_FUNC_cipher_dupctx_fn null_hmac_dupctx; +static OSSL_FUNC_cipher_encrypt_init_fn null_hmac_einit; +static OSSL_FUNC_cipher_decrypt_init_fn null_hmac_dinit; +static OSSL_FUNC_cipher_get_ctx_params_fn null_hmac_get_ctx_params; +static OSSL_FUNC_cipher_set_ctx_params_fn null_hmac_set_ctx_params; +static OSSL_FUNC_cipher_cipher_fn null_hmac_cipher; +static OSSL_FUNC_cipher_final_fn null_hmac_final; +static OSSL_FUNC_cipher_gettable_ctx_params_fn null_hmac_gettable_ctx_params; +static OSSL_FUNC_cipher_settable_ctx_params_fn null_hmac_settable_ctx_params; +#define null_hmac_update null_hmac_cipher +#define null_hmac_gettable_params ossl_cipher_generic_gettable_params + +static void null_hmac_freectx(void *vctx) { - PROV_ENULL_HMAC_CTX *ctx = (PROV_ENULL_HMAC_CTX *)vctx; + PROV_NULL_HMAC_CTX *ctx = (PROV_NULL_HMAC_CTX *)vctx; if (ctx != NULL) { ossl_cipher_generic_reset_ctx((PROV_CIPHER_CTX *)vctx); @@ -47,9 +47,9 @@ static void enull_hmac_freectx(void *vctx) } } -static void *enull_hmac_dupctx(void *vctx) +static void *null_hmac_dupctx(void *vctx) { - PROV_ENULL_HMAC_CTX *ctx = (PROV_ENULL_HMAC_CTX *)vctx, *dupctx; + PROV_NULL_HMAC_CTX *ctx = (PROV_NULL_HMAC_CTX *)vctx, *dupctx; if (ctx == NULL) return NULL; @@ -72,14 +72,14 @@ static void *enull_hmac_dupctx(void *vctx) return dupctx; err: - enull_hmac_freectx(dupctx); + null_hmac_freectx(dupctx); return NULL; } -static int enull_hmac_get_ctx_params(void *vctx, OSSL_PARAM params[]) +static int null_hmac_get_ctx_params(void *vctx, OSSL_PARAM params[]) { OSSL_PARAM *p; - PROV_ENULL_HMAC_CTX *ctx = (PROV_ENULL_HMAC_CTX *)vctx; + PROV_NULL_HMAC_CTX *ctx = (PROV_NULL_HMAC_CTX *)vctx; p = OSSL_PARAM_locate(params, OSSL_CIPHER_PARAM_IVLEN); if (p != NULL && !OSSL_PARAM_set_size_t(p, ctx->base.ivlen)) { @@ -112,24 +112,24 @@ static int enull_hmac_get_ctx_params(void *vctx, OSSL_PARAM params[]) return 1; } -static const OSSL_PARAM enull_hmac_known_gettable_ctx_params[] = { +static const OSSL_PARAM null_hmac_known_gettable_ctx_params[] = { OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_KEYLEN, NULL), OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_IVLEN, NULL), OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_AEAD_TAGLEN, NULL), OSSL_PARAM_octet_string(OSSL_CIPHER_PARAM_AEAD_TAG, NULL, 0), OSSL_PARAM_END }; -const OSSL_PARAM *enull_hmac_gettable_ctx_params(ossl_unused void *cctx, - ossl_unused void *provctx) +const OSSL_PARAM *null_hmac_gettable_ctx_params(ossl_unused void *cctx, + ossl_unused void *provctx) { - return enull_hmac_known_gettable_ctx_params; + return null_hmac_known_gettable_ctx_params; } -static int enull_hmac_set_ctx_params(void *vctx, const OSSL_PARAM params[]) +static int null_hmac_set_ctx_params(void *vctx, const OSSL_PARAM params[]) { const OSSL_PARAM *p; size_t len; - PROV_ENULL_HMAC_CTX *ctx = (PROV_ENULL_HMAC_CTX *)vctx; + PROV_NULL_HMAC_CTX *ctx = (PROV_NULL_HMAC_CTX *)vctx; if (params == NULL) return 1; @@ -179,22 +179,22 @@ static int enull_hmac_set_ctx_params(void *vctx, const OSSL_PARAM params[]) return 1; } -static const OSSL_PARAM enull_hmac_known_settable_ctx_params[] = { +static const OSSL_PARAM null_hmac_known_settable_ctx_params[] = { OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_KEYLEN, NULL), OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_IVLEN, NULL), OSSL_PARAM_octet_string(OSSL_CIPHER_PARAM_AEAD_TAG, NULL, 0), OSSL_PARAM_END }; -const OSSL_PARAM *enull_hmac_settable_ctx_params(ossl_unused void *cctx, - ossl_unused void *provctx) +const OSSL_PARAM *null_hmac_settable_ctx_params(ossl_unused void *cctx, + ossl_unused void *provctx) { - return enull_hmac_known_settable_ctx_params; + return null_hmac_known_settable_ctx_params; } -static int enull_hmac_einit(void *vctx, - const unsigned char *key, size_t keylen, - const unsigned char *iv, size_t ivlen, - const OSSL_PARAM params[]) +static int null_hmac_einit(void *vctx, + const unsigned char *key, size_t keylen, + const unsigned char *iv, size_t ivlen, + const OSSL_PARAM params[]) { int ret; @@ -202,19 +202,19 @@ static int enull_hmac_einit(void *vctx, ret = ossl_cipher_generic_einit(vctx, key, keylen, iv, ivlen, NULL); if (ret && iv != NULL) { PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; - PROV_CIPHER_HW_ENULL_HMAC *hw = (PROV_CIPHER_HW_ENULL_HMAC *)ctx->hw; + PROV_CIPHER_HW_NULL_HMAC *hw = (PROV_CIPHER_HW_NULL_HMAC *)ctx->hw; ret = hw->initiv(ctx, iv, ivlen); } - if (ret && !enull_hmac_set_ctx_params(vctx, params)) + if (ret && !null_hmac_set_ctx_params(vctx, params)) ret = 0; return ret; } -static int enull_hmac_dinit(void *vctx, - const unsigned char *key, size_t keylen, - const unsigned char *iv, size_t ivlen, - const OSSL_PARAM params[]) +static int null_hmac_dinit(void *vctx, + const unsigned char *key, size_t keylen, + const unsigned char *iv, size_t ivlen, + const OSSL_PARAM params[]) { int ret; @@ -222,21 +222,21 @@ static int enull_hmac_dinit(void *vctx, ret = ossl_cipher_generic_dinit(vctx, key, keylen, iv, ivlen, NULL); if (ret && iv != NULL) { PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; - PROV_CIPHER_HW_ENULL_HMAC *hw = (PROV_CIPHER_HW_ENULL_HMAC *)ctx->hw; + PROV_CIPHER_HW_NULL_HMAC *hw = (PROV_CIPHER_HW_NULL_HMAC *)ctx->hw; hw->initiv(ctx, iv, ivlen); } - if (ret && !enull_hmac_set_ctx_params(vctx, params)) + if (ret && !null_hmac_set_ctx_params(vctx, params)) ret = 0; return ret; } -static int enull_hmac_cipher(void *vctx, unsigned char *out, - size_t *outl, size_t outsize, - const unsigned char *in, size_t inl) +static int null_hmac_cipher(void *vctx, unsigned char *out, + size_t *outl, size_t outsize, + const unsigned char *in, size_t inl) { PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; - PROV_CIPHER_HW_ENULL_HMAC *hw = (PROV_CIPHER_HW_ENULL_HMAC *)ctx->hw; + PROV_CIPHER_HW_NULL_HMAC *hw = (PROV_CIPHER_HW_NULL_HMAC *)ctx->hw; if (!ossl_prov_is_running()) return 0; @@ -257,11 +257,11 @@ static int enull_hmac_cipher(void *vctx, unsigned char *out, return 1; } -static int enull_hmac_final(void *vctx, unsigned char *out, size_t *outl, - size_t outsize) +static int null_hmac_final(void *vctx, unsigned char *out, size_t *outl, + size_t outsize) { PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; - PROV_CIPHER_HW_ENULL_HMAC *hw = (PROV_CIPHER_HW_ENULL_HMAC *)ctx->hw; + PROV_CIPHER_HW_NULL_HMAC *hw = (PROV_CIPHER_HW_NULL_HMAC *)ctx->hw; if (!ossl_prov_is_running()) return 0; @@ -276,17 +276,17 @@ static int enull_hmac_final(void *vctx, unsigned char *out, size_t *outl, #define OSSL_DISPATCHALG(num, name) {OSSL_FUNC_CIPHER_##num, \ (void (*)(void))name} #define IMPLEMENT_cipher(cmd, CMD, flags, kbits, blkbits, ivbits) \ -static OSSL_FUNC_cipher_get_params_fn enull_hmac_##cmd##_get_params; \ -static int enull_hmac_##cmd##_get_params(OSSL_PARAM params[]) \ +static OSSL_FUNC_cipher_get_params_fn null_hmac_##cmd##_get_params; \ +static int null_hmac_##cmd##_get_params(OSSL_PARAM params[]) \ { \ return ossl_cipher_generic_get_params(params, 0, flags, \ kbits, blkbits, ivbits); \ } \ \ -static OSSL_FUNC_cipher_newctx_fn enull_hmac_##cmd##_newctx; \ -static void *enull_hmac_##cmd##_newctx(void *provctx) \ +static OSSL_FUNC_cipher_newctx_fn null_hmac_##cmd##_newctx; \ +static void *null_hmac_##cmd##_newctx(void *provctx) \ { \ - PROV_ENULL_HMAC_CTX *ctx; \ + PROV_NULL_HMAC_CTX *ctx; \ \ if (!ossl_prov_is_running()) \ return NULL; \ @@ -300,37 +300,37 @@ static void *enull_hmac_##cmd##_newctx(void *provctx) \ } \ if (ossl_prov_digest_fetch(&ctx->md, PROV_LIBCTX_OF(provctx), \ #CMD, NULL) == NULL) { \ - enull_hmac_freectx(ctx); \ + null_hmac_freectx(ctx); \ return NULL; \ } \ - ctx->tag_len = ENULL_HMAC_##CMD##_TAGLEN; \ + ctx->tag_len = NULL_HMAC_##CMD##_TAGLEN; \ ossl_cipher_generic_initkey(ctx, kbits, blkbits, ivbits, 0, flags, \ - ossl_prov_cipher_hw_enull_hmac(kbits), \ + ossl_prov_cipher_hw_null_hmac(kbits), \ provctx); \ return ctx; \ } \ \ -const OSSL_DISPATCH ossl_enull_hmac_##cmd##_functions[] = { \ - OSSL_DISPATCHALG(NEWCTX, enull_hmac_##cmd##_newctx), \ - OSSL_DISPATCHALG(FREECTX, enull_hmac_freectx), \ - OSSL_DISPATCHALG(DUPCTX, enull_hmac_dupctx), \ - OSSL_DISPATCHALG(ENCRYPT_INIT, enull_hmac_einit), \ - OSSL_DISPATCHALG(DECRYPT_INIT, enull_hmac_dinit), \ - OSSL_DISPATCHALG(UPDATE, enull_hmac_update), \ - OSSL_DISPATCHALG(FINAL, enull_hmac_final), \ - OSSL_DISPATCHALG(CIPHER, enull_hmac_cipher), \ - OSSL_DISPATCHALG(GET_PARAMS, enull_hmac_##cmd##_get_params), \ - OSSL_DISPATCHALG(GETTABLE_PARAMS, enull_hmac_gettable_params), \ - OSSL_DISPATCHALG(GET_CTX_PARAMS, enull_hmac_get_ctx_params), \ - OSSL_DISPATCHALG(GETTABLE_CTX_PARAMS, enull_hmac_gettable_ctx_params), \ - OSSL_DISPATCHALG(SET_CTX_PARAMS, enull_hmac_set_ctx_params), \ - OSSL_DISPATCHALG(SETTABLE_CTX_PARAMS, enull_hmac_settable_ctx_params), \ +const OSSL_DISPATCH ossl_null_hmac_##cmd##_functions[] = { \ + OSSL_DISPATCHALG(NEWCTX, null_hmac_##cmd##_newctx), \ + OSSL_DISPATCHALG(FREECTX, null_hmac_freectx), \ + OSSL_DISPATCHALG(DUPCTX, null_hmac_dupctx), \ + OSSL_DISPATCHALG(ENCRYPT_INIT, null_hmac_einit), \ + OSSL_DISPATCHALG(DECRYPT_INIT, null_hmac_dinit), \ + OSSL_DISPATCHALG(UPDATE, null_hmac_update), \ + OSSL_DISPATCHALG(FINAL, null_hmac_final), \ + OSSL_DISPATCHALG(CIPHER, null_hmac_cipher), \ + OSSL_DISPATCHALG(GET_PARAMS, null_hmac_##cmd##_get_params), \ + OSSL_DISPATCHALG(GETTABLE_PARAMS, null_hmac_gettable_params), \ + OSSL_DISPATCHALG(GET_CTX_PARAMS, null_hmac_get_ctx_params), \ + OSSL_DISPATCHALG(GETTABLE_CTX_PARAMS, null_hmac_gettable_ctx_params), \ + OSSL_DISPATCHALG(SET_CTX_PARAMS, null_hmac_set_ctx_params), \ + OSSL_DISPATCHALG(SETTABLE_CTX_PARAMS, null_hmac_settable_ctx_params), \ OSSL_DISPATCH_END \ } -IMPLEMENT_cipher(sha256, SHA256, ENULL_HMAC_SHA256_FLAGS, - ENULL_HMAC_SHA256_KEYLEN * 8, ENULL_HMAC_SHA256_BLKLEN * 8, - ENULL_HMAC_SHA256_IVLEN * 8); -IMPLEMENT_cipher(sha384, SHA384, ENULL_HMAC_SHA384_FLAGS, - ENULL_HMAC_SHA384_KEYLEN * 8, ENULL_HMAC_SHA384_BLKLEN * 8, - ENULL_HMAC_SHA384_IVLEN * 8); +IMPLEMENT_cipher(sha256, SHA256, NULL_HMAC_SHA256_FLAGS, + NULL_HMAC_SHA256_KEYLEN * 8, NULL_HMAC_SHA256_BLKLEN * 8, + NULL_HMAC_SHA256_IVLEN * 8); +IMPLEMENT_cipher(sha384, SHA384, NULL_HMAC_SHA384_FLAGS, + NULL_HMAC_SHA384_KEYLEN * 8, NULL_HMAC_SHA384_BLKLEN * 8, + NULL_HMAC_SHA384_IVLEN * 8); diff --git a/providers/implementations/ciphers/cipher_null_hmac.h b/providers/implementations/ciphers/cipher_null_hmac.h new file mode 100644 index 00000000000000..3222886331c485 --- /dev/null +++ b/providers/implementations/ciphers/cipher_null_hmac.h @@ -0,0 +1,53 @@ +/* + * Copyright 2023-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include "prov/ciphercommon.h" +#include "prov/provider_ctx.h" +#include "prov/implementations.h" +#include "prov/provider_util.h" + +#define NULL_HMAC_SHA256_KEYLEN 32 +#define NULL_HMAC_SHA256_BLKLEN 1 +#define NULL_HMAC_SHA256_TAGLEN 32 +#define NULL_HMAC_SHA256_IVLEN 32 +#define NULL_HMAC_SHA256_MODE 0 +#define NULL_HMAC_SHA256_FLAGS (PROV_CIPHER_FLAG_AEAD \ + | PROV_CIPHER_FLAG_CUSTOM_IV) + +#define NULL_HMAC_SHA384_KEYLEN 48 +#define NULL_HMAC_SHA384_BLKLEN 1 +#define NULL_HMAC_SHA384_TAGLEN 48 +#define NULL_HMAC_SHA384_IVLEN 48 +#define NULL_HMAC_SHA384_MODE 0 +#define NULL_HMAC_SHA384_FLAGS (PROV_CIPHER_FLAG_AEAD \ + | PROV_CIPHER_FLAG_CUSTOM_IV) + +#define NULL_HMAC_MAX_KEYLEN 48 /* NULL_HMAC_SHA384_KEYLEN */ +#define NULL_HMAC_MAX_TAGLEN 48 /* NULL_HMAC_SHA384_TAGLEN */ +#define NULL_HMAC_MAX_IVLEN 48 /* NULL_HMAC_SHA384_IVLEN */ + +typedef struct { + PROV_CIPHER_CTX base; /* must be first */ + HMAC_CTX *hmac; + PROV_DIGEST md; + unsigned char key[NULL_HMAC_MAX_KEYLEN]; /* len is in base.keylen */ + unsigned char tag[NULL_HMAC_MAX_TAGLEN]; + unsigned int tag_len; +} PROV_NULL_HMAC_CTX; + +typedef struct prov_cipher_hw_null_hmac_st { + PROV_CIPHER_HW base; /* must be first */ + int (*initiv)(PROV_CIPHER_CTX *ctx, const unsigned char *iv, size_t ivlen); +} PROV_CIPHER_HW_NULL_HMAC; + +const PROV_CIPHER_HW *ossl_prov_cipher_hw_null_hmac(size_t keybits); + +OSSL_FUNC_cipher_encrypt_init_fn ossl_hmac_sha256_einit; +OSSL_FUNC_cipher_decrypt_init_fn ossl_hmac_sha256_dinit; +void ossl_hmac_sha256_initctx(PROV_NULL_HMAC_CTX *ctx); diff --git a/providers/implementations/ciphers/cipher_enull_hmac_hw.c b/providers/implementations/ciphers/cipher_null_hmac_hw.c similarity index 61% rename from providers/implementations/ciphers/cipher_enull_hmac_hw.c rename to providers/implementations/ciphers/cipher_null_hmac_hw.c index 06d29508d302e8..40dfabced0a6a0 100644 --- a/providers/implementations/ciphers/cipher_enull_hmac_hw.c +++ b/providers/implementations/ciphers/cipher_null_hmac_hw.c @@ -7,7 +7,7 @@ * https://www.openssl.org/source/license.html */ -/* enull_hmac cipher implementation */ +/* null_hmac cipher implementation */ /* * HMAC low level APIs are deprecated for public use, but still ok for internal @@ -16,12 +16,12 @@ #include "internal/deprecated.h" #include #include -#include "cipher_enull_hmac.h" +#include "cipher_null_hmac.h" -static int enull_hmac_initkey(PROV_CIPHER_CTX *bctx, const uint8_t *key, - size_t keylen) +static int null_hmac_initkey(PROV_CIPHER_CTX *bctx, const uint8_t *key, + size_t keylen) { - PROV_ENULL_HMAC_CTX *ctx = (PROV_ENULL_HMAC_CTX *)bctx; + PROV_NULL_HMAC_CTX *ctx = (PROV_NULL_HMAC_CTX *)bctx; if (key == NULL || keylen > sizeof(ctx->key)) { ERR_raise(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR); @@ -32,12 +32,12 @@ static int enull_hmac_initkey(PROV_CIPHER_CTX *bctx, const uint8_t *key, return 1; } -static int enull_hmac_initiv(PROV_CIPHER_CTX *bctx, - const unsigned char *iv, size_t ivlen) +static int null_hmac_initiv(PROV_CIPHER_CTX *bctx, + const unsigned char *iv, size_t ivlen) { - PROV_ENULL_HMAC_CTX *ctx = (PROV_ENULL_HMAC_CTX *)bctx; + PROV_NULL_HMAC_CTX *ctx = (PROV_NULL_HMAC_CTX *)bctx; - if (iv == NULL || ivlen > ENULL_HMAC_MAX_IVLEN) { + if (iv == NULL || ivlen > NULL_HMAC_MAX_IVLEN) { ERR_raise(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR); return 0; } @@ -49,12 +49,12 @@ static int enull_hmac_initiv(PROV_CIPHER_CTX *bctx, return HMAC_Update(ctx->hmac, iv, ivlen); } -static int enull_hmac_cipher(PROV_CIPHER_CTX *bctx, unsigned char *out, - const unsigned char *in, size_t inl) +static int null_hmac_cipher(PROV_CIPHER_CTX *bctx, unsigned char *out, + const unsigned char *in, size_t inl) { - PROV_ENULL_HMAC_CTX *ctx = (PROV_ENULL_HMAC_CTX *)bctx; - unsigned char ltag[ENULL_HMAC_MAX_TAGLEN]; - unsigned int ltag_len; + PROV_NULL_HMAC_CTX *ctx = (PROV_NULL_HMAC_CTX *)bctx; + unsigned char ltag[NULL_HMAC_MAX_TAGLEN]; + unsigned int ltag_len = 0; if (in != NULL) { if (!HMAC_Update(ctx->hmac, in, inl)) @@ -79,12 +79,12 @@ static int enull_hmac_cipher(PROV_CIPHER_CTX *bctx, unsigned char *out, return 1; } -static const PROV_CIPHER_HW_ENULL_HMAC enull_hmac_hw = { - { enull_hmac_initkey, enull_hmac_cipher }, - enull_hmac_initiv +static const PROV_CIPHER_HW_NULL_HMAC null_hmac_hw = { + { null_hmac_initkey, null_hmac_cipher }, + null_hmac_initiv }; -const PROV_CIPHER_HW *ossl_prov_cipher_hw_enull_hmac(size_t keybits) +const PROV_CIPHER_HW *ossl_prov_cipher_hw_null_hmac(size_t keybits) { - return (PROV_CIPHER_HW *)&enull_hmac_hw; + return (PROV_CIPHER_HW *)&null_hmac_hw; } diff --git a/providers/implementations/include/prov/implementations.h b/providers/implementations/include/prov/implementations.h index 789243c8f10884..3222b0b61f7a5f 100644 --- a/providers/implementations/include/prov/implementations.h +++ b/providers/implementations/include/prov/implementations.h @@ -242,8 +242,8 @@ extern const OSSL_DISPATCH ossl_chacha20_ossl_poly1305_functions[]; # endif /* OPENSSL_NO_POLY1305 */ #endif /* OPENSSL_NO_CHACHA */ #ifndef OPENSSL_NO_TLS1_3_INTEGRITY_ONLY_CIPHER -extern const OSSL_DISPATCH ossl_enull_hmac_sha256_functions[]; -extern const OSSL_DISPATCH ossl_enull_hmac_sha384_functions[]; +extern const OSSL_DISPATCH ossl_null_hmac_sha256_functions[]; +extern const OSSL_DISPATCH ossl_null_hmac_sha384_functions[]; #endif #ifndef OPENSSL_NO_SIV diff --git a/providers/implementations/include/prov/names.h b/providers/implementations/include/prov/names.h index 48da80cb543146..ed4eaa21f09933 100644 --- a/providers/implementations/include/prov/names.h +++ b/providers/implementations/include/prov/names.h @@ -170,8 +170,8 @@ #define PROV_NAMES_SM4_XTS "SM4-XTS:1.2.156.10197.1.104.10" #define PROV_NAMES_ChaCha20 "ChaCha20" #define PROV_NAMES_ChaCha20_Poly1305 "ChaCha20-Poly1305" -#define PROV_NAMES_ENULL_HMAC_SHA256 "eNULL-HMAC-SHA256" -#define PROV_NAMES_ENULL_HMAC_SHA384 "eNULL-HMAC-SHA384" +#define PROV_NAMES_NULL_HMAC_SHA256 "NULL-HMAC-SHA256" +#define PROV_NAMES_NULL_HMAC_SHA384 "NULL-HMAC-SHA384" #define PROV_NAMES_CAST5_ECB "CAST5-ECB" #define PROV_NAMES_CAST5_CBC "CAST5-CBC:CAST-CBC:CAST:1.2.840.113533.7.66.10" #define PROV_NAMES_CAST5_OFB "CAST5-OFB" diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c index 4ae0224038ea8b..20b79796991ecc 100644 --- a/ssl/ssl_ciph.c +++ b/ssl/ssl_ciph.c @@ -56,9 +56,9 @@ static const ssl_cipher_table ssl_cipher_table_cipher[SSL_ENC_NUM_IDX] = { {SSL_MAGMA, NID_magma_ctr_acpkm}, /* SSL_ENC_MAGMA_IDX */ {SSL_KUZNYECHIK, NID_kuznyechik_ctr_acpkm}, /* SSL_ENC_KUZNYECHIK_IDX */ /* SSL_ENC_eNULLHMACSHA256_IDX 24 */ - {SSL_eNULLHMACSHA256, NID_enull_hmac_sha256}, + {SSL_eNULLHMACSHA256, NID_null_hmac_sha256}, /* SSL_ENC_eNULLHMACSHA384_IDX 25 */ - {SSL_eNULLHMACSHA384, NID_enull_hmac_sha384}, + {SSL_eNULLHMACSHA384, NID_null_hmac_sha384}, }; #define SSL_COMP_NULL_IDX 0 diff --git a/ssl/ssl_local.h b/ssl/ssl_local.h index 8e174f3cfc6b49..b4e0bda012b0d4 100644 --- a/ssl/ssl_local.h +++ b/ssl/ssl_local.h @@ -364,8 +364,8 @@ # define SSL_ENC_ARIA256GCM_IDX 21 # define SSL_ENC_MAGMA_IDX 22 # define SSL_ENC_KUZNYECHIK_IDX 23 -# define SSL_ENC_eNULL_HMAC_SHA256_IDX 24 -# define SSL_ENC_eNULL_HMAC_SHA384_IDX 25 +# define SSL_ENC_NULL_HMAC_SHA256_IDX 24 +# define SSL_ENC_NULL_HMAC_SHA384_IDX 25 # define SSL_ENC_NUM_IDX 26 /*- diff --git a/ssl/tls13_enc.c b/ssl/tls13_enc.c index 0e5e4de70a3510..2d76a1c777db28 100644 --- a/ssl/tls13_enc.c +++ b/ssl/tls13_enc.c @@ -389,16 +389,16 @@ static int derive_secret_key_and_iv(SSL_CONNECTION *s, const EVP_MD *md, if (mode == EVP_CIPH_GCM_MODE) { *taglen = EVP_GCM_TLS_TAG_LEN; - } else if (EVP_CIPHER_is_a(ciph, SN_enull_hmac_sha256)) { + } else if (EVP_CIPHER_is_a(ciph, SN_null_hmac_sha256)) { /* - * SN_enull_hmac_sha256 must be consistent - * with PROV_NAMES_ENULL_HMAC_SHA256 + * SN_null_hmac_sha256 must be consistent + * with PROV_NAMES_NULL_HMAC_SHA256 */ *taglen = EVP_HMACSHA256_TLS_TAG_LEN; - } else if (EVP_CIPHER_is_a(ciph, SN_enull_hmac_sha384)) { + } else if (EVP_CIPHER_is_a(ciph, SN_null_hmac_sha384)) { /* - * SN_enull_hmac_sha384 must be consistent - * with PROV_NAMES_ENULL_HMAC_SHA384 + * SN_null_hmac_sha384 must be consistent + * with PROV_NAMES_NULL_HMAC_SHA384 */ *taglen = EVP_HMACSHA384_TLS_TAG_LEN; } else { diff --git a/test/recipes/30-test_evp.t b/test/recipes/30-test_evp.t index 2406e60ed33043..94364e2bfe5e31 100644 --- a/test/recipes/30-test_evp.t +++ b/test/recipes/30-test_evp.t @@ -132,7 +132,7 @@ push @defltfiles, qw(evppkey_dsa_rfc6979.txt) unless $no_dsa; push @defltfiles, qw(evppkey_sm2.txt) unless $no_sm2; push @defltfiles, qw(evpciph_aes_gcm_siv.txt) unless $no_siv; push @defltfiles, qw(evpciph_aes_siv.txt) unless $no_siv; -push @defltfiles, qw(evpciph_enull_hmac.txt) unless $no_tls1_3_integrity_only_ciphers; +push @defltfiles, qw(evpciph_null_hmac.txt) unless $no_tls1_3_integrity_only_ciphers; push @defltfiles, qw(evpkdf_argon2.txt) unless $no_argon2; plan tests => diff --git a/test/recipes/30-test_evp_data/evpciph_enull_hmac.txt b/test/recipes/30-test_evp_data/evpciph_null_hmac.txt similarity index 95% rename from test/recipes/30-test_evp_data/evpciph_enull_hmac.txt rename to test/recipes/30-test_evp_data/evpciph_null_hmac.txt index 46e3a4142e5d0e..1349089e212f7c 100644 --- a/test/recipes/30-test_evp_data/evpciph_enull_hmac.txt +++ b/test/recipes/30-test_evp_data/evpciph_null_hmac.txt @@ -15,7 +15,7 @@ Title = Test vectors for TLS1_3 integrity-only ciphers # self-generated -Cipher = eNULL-HMAC-SHA256 +Cipher = NULL-HMAC-SHA256 Key = d39e38d50e5f292e909dab90baffa94f9dee079cf42684ebfa9acea691a0ec67 IV = d0e3ca88e3061efc82a01bdee2bedbd5d576a4ed2ae2551d5961d851386f5f11 AAD = a7c121c002008692ce378502ae443242 @@ -23,7 +23,7 @@ Tag = ba12646c0660c251d2078c2f0a4a7fc97de2c2693b71a6e5ee952c1370167fa2 Plaintext = c33caf56ac18930afb753b039e86fb52271adfa48310ead4b2d003e50469d006636669e94642affe091524538273b02f1d94b84dc3 Ciphertext = c33caf56ac18930afb753b039e86fb52271adfa48310ead4b2d003e50469d006636669e94642affe091524538273b02f1d94b84dc3 -Cipher = eNULL-HMAC-SHA256 +Cipher = NULL-HMAC-SHA256 Key = 4bd2ff014e96f282eb9c46cbf91fb2f8ec49c1075e3eb5bfd2cde9f77f28059a IV = 9ad73ea6bdc490b13f63ad5469c29d22bd57e1ccf33a195aed3f4caa5561f87f AAD = b2386b80232c9cee10c16f2cd7eba83f @@ -31,7 +31,7 @@ Tag = 7fe6919c588f082814c304ecc06f3dc74ee6a925f1c94bdc52bef03dbbe1589c Plaintext = 342ec0a55180d378a2be7486384502c5 Ciphertext = 342ec0a55180d378a2be7486384502c5 -Cipher = eNULL-HMAC-SHA256 +Cipher = NULL-HMAC-SHA256 Key = ff6b4c6e933b722b56b027269fca1e247494b5efaa882eb5e0080ec2a0627bf7 IV = aa4a62f9168e19ea6183734e1bf5e1cb30dc9ee5c8409b97a5b47b AAD = e6c7451bbebe9e951817580541c31686 @@ -40,7 +40,7 @@ Plaintext = 2a11905e67a36eb1ffe63917794d8c01 Ciphertext = 2a11905e67a36eb1ffe63917794d8c01 Result = INVALID_IV_LENGTH -Cipher = eNULL-HMAC-SHA256 +Cipher = NULL-HMAC-SHA256 Key = 8161ebe250e72836fc7b921800f7031dabb82b10c1070ad61c4b470efdd2d638 IV = 9b3585f400107d1d00a4c73d1ccf5c6298cc31f31d7eb6bf16125aad981c38f4 AAD = 303646bafecf6437cf0608bee640ea3a @@ -50,7 +50,7 @@ Ciphertext = 15d16f28104e53a2b4c52405b696beab19ac1794cbe3f723781948ee5306cce6905 Operation = DECRYPT Result = CIPHERFINAL_ERROR -Cipher = eNULL-HMAC-SHA256 +Cipher = NULL-HMAC-SHA256 Key = 4bd2ff014e96f282eb9c46cbf91fb2f8ec49c1075e3eb5bfd2cde9f77f28059a IV = 9ad73ea6bdc490b13f63ad5469c29d22bd57e1ccf33a195aed3f4caa5561f87a AAD = b2386b80232c9cee10c16f2cd7eba83f @@ -60,7 +60,7 @@ Ciphertext = 342ec0a55180d378a2be7486384502c5 Operation = DECRYPT Result = CIPHERFINAL_ERROR -Cipher = eNULL-HMAC-SHA384 +Cipher = NULL-HMAC-SHA384 Key = 89b1805bd63d4fc480e326600aa503d9a013850decd16ee9ad62c78ccf3933aa81e76745c8880d0c0b650e04f5618cdf IV = 8edaf8503b55553042ce8df39c0f36fb6ebc1b747066c40001f6eaa772386d11773358cb179af672df221de9ce961ca7 AAD = 0132a0a2eb8739df5377f7ba5ba943b1 @@ -68,7 +68,7 @@ Tag = 1b3d387ec9f32790f9e1556371743b10c18a4cb53ebe3a1fff005bcf10262ee4fa923f80c6 Plaintext = 3ef534d83d90c06202b4a6ed890b522ab1cfd88c55f09302d513110861042e28731b360e3d32eb8573a738128006cefb9a71db9f20 Ciphertext = 3ef534d83d90c06202b4a6ed890b522ab1cfd88c55f09302d513110861042e28731b360e3d32eb8573a738128006cefb9a71db9f20 -Cipher = eNULL-HMAC-SHA384 +Cipher = NULL-HMAC-SHA384 Key = 7c8add456590f28bada7019409b6035cb7738b8c1520278102b53f5eae5c6aec91945e566445e6c73a7f9495c5d4e478 IV = 012acc710cd8a57da8f0eccb8cb79c8136f6e65ba19eb1681a6abe5667840a260a716ce0d0f2264573938af7ba457673 AAD = 5220730c154a9413ba591f600e271ba1 @@ -76,7 +76,7 @@ Tag = 666c95d04fcf546df116098cfc86e1bd5fc054d7c1556401606a37ac5107007e9166bb32ea Plaintext = 2f2e7819b01d74a0923cd0d4608eb442f1ee11385d12ed92fc186bdc2ef41add320e851af9ee62fa716f5745662e25c279f5 Ciphertext = 2f2e7819b01d74a0923cd0d4608eb442f1ee11385d12ed92fc186bdc2ef41add320e851af9ee62fa716f5745662e25c279f5 -Cipher = eNULL-HMAC-SHA384 +Cipher = NULL-HMAC-SHA384 Key = 8d47db7047c3275322a48b6c524fc6042752a5f7fe08b30f2521facff8bd55a21525ccd46bee3e1a4a748705d791bfab IV = 5299a18c72a8959e3b926778cfcdce656b5374d98e98071831f0169c43a25ad06f4876638da29aee2427381502e21749 AAD = c86661ac3848f504 @@ -84,7 +84,7 @@ Tag = 8656f4fe6309696930e23db23f8cc9b3335c1fd1e1b50478ebb36482e2b8e7b49bcc2d10c4 Plaintext = 3454bb97690f8931af15b26dc35217c4 Ciphertext = 3454bb97690f8931af15b26dc35217c4 -Cipher = eNULL-HMAC-SHA384 +Cipher = NULL-HMAC-SHA384 Key = 8d47db7047c3275322a48b6c524fc6042752a5f7fe08b30f2521facff8bd55a21525ccd46bee3e1a4a748705d791bfab IV = 5299a18c72a8959e3b926778cfcdce656b5374d98e98071831f0169c43a25ad06f4876638da29aee2427381502e21749 AAD = c86661ac3848f504 @@ -94,7 +94,7 @@ Ciphertext = 3454bb97690f8931af15b26dc35217c4 Operation = DECRYPT Result = CIPHERFINAL_ERROR -Cipher = eNULL-HMAC-SHA384 +Cipher = NULL-HMAC-SHA384 Key = 7c8add456590f28bada7019409b6035cb7738b8c1520278102b53f5eae5c6aec91945e566445e6c73a7f9495c5d4e478 IV = 012acc710cd8a57da8f0eccb8cb79c8136f6e65ba19eb1681a6abe5667840a260a716ce0d0f2264573938af7ba4576 AAD = 5220730c154a9413ba591f600e271ba1