On Sun, Apr 14, 2024 at 01:06:58PM +0200, Mark Kettenis wrote: > This backports > > https://github.com/openssl/openssl/commit/143ca66cf00c88950d689a8aa0c89888052669f4 > > such that the tests pass again on avx512 hardware. > > ok?
ok. Please land the same diff for quictls > > > Index: security/openssl/3.1/Makefile > =================================================================== > RCS file: /cvs/ports/security/openssl/3.1/Makefile,v > retrieving revision 1.22 > diff -u -p -r1.22 Makefile > --- security/openssl/3.1/Makefile 25 Feb 2024 10:12:23 -0000 1.22 > +++ security/openssl/3.1/Makefile 14 Apr 2024 11:02:40 -0000 > @@ -10,7 +10,7 @@ V= 3.1.5 > PKGNAME= openssl-${V} > PKGSPEC= openssl->=3.1v0,<3.2v0 > EPOCH= 0 > -REVISION= 2 > +REVISION= 3 > > SHLIBVER= 15.1 > SHARED_LIBS= crypto ${SHLIBVER} \ > Index: > security/openssl/3.1/patches/patch-providers_implementations_ciphers_cipher_aes_gcm_hw_vaes_avx512_inc > =================================================================== > RCS file: > security/openssl/3.1/patches/patch-providers_implementations_ciphers_cipher_aes_gcm_hw_vaes_avx512_inc > diff -N > security/openssl/3.1/patches/patch-providers_implementations_ciphers_cipher_aes_gcm_hw_vaes_avx512_inc > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ > security/openssl/3.1/patches/patch-providers_implementations_ciphers_cipher_aes_gcm_hw_vaes_avx512_inc > 14 Apr 2024 11:02:40 -0000 > @@ -0,0 +1,32 @@ > +Index: providers/implementations/ciphers/cipher_aes_gcm_hw_vaes_avx512.inc > +--- providers/implementations/ciphers/cipher_aes_gcm_hw_vaes_avx512.inc.orig > ++++ providers/implementations/ciphers/cipher_aes_gcm_hw_vaes_avx512.inc > +@@ -48,7 +48,6 @@ static int vaes_gcm_setkey(PROV_GCM_CTX *ctx, const un > + PROV_AES_GCM_CTX *actx = (PROV_AES_GCM_CTX *)ctx; > + AES_KEY *ks = &actx->ks.ks; > + > +- ctx->ks = ks; > + aesni_set_encrypt_key(key, keylen * 8, ks); > + memset(gcmctx, 0, sizeof(*gcmctx)); > + gcmctx->key = ks; > +@@ -77,7 +76,7 @@ static int vaes_gcm_setiv(PROV_GCM_CTX *ctx, const uns > + if (ivlen > (U64(1) << 61)) > + return 0; > + > +- ossl_aes_gcm_setiv_avx512(ctx->ks, gcmctx, iv, ivlen); > ++ ossl_aes_gcm_setiv_avx512(gcmctx->key, gcmctx, iv, ivlen); > + > + return 1; > + } > +@@ -162,9 +161,9 @@ static int vaes_gcm_cipherupdate(PROV_GCM_CTX *ctx, co > + } > + > + if (ctx->enc) > +- ossl_aes_gcm_encrypt_avx512(ctx->ks, gcmctx, &gcmctx->mres, in, > len, out); > ++ ossl_aes_gcm_encrypt_avx512(gcmctx->key, gcmctx, &gcmctx->mres, in, > len, out); > + else > +- ossl_aes_gcm_decrypt_avx512(ctx->ks, gcmctx, &gcmctx->mres, in, > len, out); > ++ ossl_aes_gcm_decrypt_avx512(gcmctx->key, gcmctx, &gcmctx->mres, in, > len, out); > + > + return 1; > + } > Index: > security/openssl/3.1/patches/patch-providers_implementations_ciphers_cipher_sm4_gcm_hw_c > =================================================================== > RCS file: > security/openssl/3.1/patches/patch-providers_implementations_ciphers_cipher_sm4_gcm_hw_c > diff -N > security/openssl/3.1/patches/patch-providers_implementations_ciphers_cipher_sm4_gcm_hw_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ > security/openssl/3.1/patches/patch-providers_implementations_ciphers_cipher_sm4_gcm_hw_c > 14 Apr 2024 11:02:40 -0000 > @@ -0,0 +1,11 @@ > +Index: providers/implementations/ciphers/cipher_sm4_gcm_hw.c > +--- providers/implementations/ciphers/cipher_sm4_gcm_hw.c.orig > ++++ providers/implementations/ciphers/cipher_sm4_gcm_hw.c > +@@ -20,7 +20,6 @@ static int sm4_gcm_initkey(PROV_GCM_CTX *ctx, const un > + PROV_SM4_GCM_CTX *actx = (PROV_SM4_GCM_CTX *)ctx; > + SM4_KEY *ks = &actx->ks.ks; > + > +- ctx->ks = ks; > + # ifdef HWSM4_CAPABLE > + if (HWSM4_CAPABLE) { > + HWSM4_set_encrypt_key(key, ks); > Index: > security/openssl/3.1/patches/patch-providers_implementations_include_prov_ciphercommon_gcm_h > =================================================================== > RCS file: > security/openssl/3.1/patches/patch-providers_implementations_include_prov_ciphercommon_gcm_h > diff -N > security/openssl/3.1/patches/patch-providers_implementations_include_prov_ciphercommon_gcm_h > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ > security/openssl/3.1/patches/patch-providers_implementations_include_prov_ciphercommon_gcm_h > 14 Apr 2024 11:02:40 -0000 > @@ -0,0 +1,19 @@ > +Index: providers/implementations/include/prov/ciphercommon_gcm.h > +--- providers/implementations/include/prov/ciphercommon_gcm.h.orig > ++++ providers/implementations/include/prov/ciphercommon_gcm.h > +@@ -75,7 +75,6 @@ typedef struct prov_gcm_ctx_st { > + const PROV_GCM_HW *hw; /* hardware specific methods */ > + GCM128_CONTEXT gcm; > + ctr128_f ctr; > +- const void *ks; > + } PROV_GCM_CTX; > + > + PROV_CIPHER_FUNC(int, GCM_setkey, (PROV_GCM_CTX *ctx, const unsigned char > *key, > +@@ -122,7 +121,6 @@ int ossl_gcm_cipher_update(PROV_GCM_CTX *ctx, const un > + size_t len, unsigned char *out); > + > + #define GCM_HW_SET_KEY_CTR_FN(ks, fn_set_enc_key, fn_block, fn_ctr) > \ > +- ctx->ks = ks; > \ > + fn_set_enc_key(key, keylen * 8, ks); > \ > + CRYPTO_gcm128_init(&ctx->gcm, ks, (block128_f)fn_block); > \ > + ctx->ctr = (ctr128_f)fn_ctr; > \