aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuergen Christ <jchrist@linux.ibm.com>2022-07-25 10:34:26 +0200
committerTomas Mraz <tomas@openssl.org>2022-11-23 18:21:42 +0100
commit61763c03235bcee37995e7eb68bfc56eeb1cc493 (patch)
tree0ed413b1743643c9ce2747a26448c9388b1fa926
parent5c7a383d5e3efe7057a11cda4d7413bcdc23ef31 (diff)
downloadopenssl-61763c03235bcee37995e7eb68bfc56eeb1cc493.zip
openssl-61763c03235bcee37995e7eb68bfc56eeb1cc493.tar.gz
openssl-61763c03235bcee37995e7eb68bfc56eeb1cc493.tar.bz2
s390x: Fix GCM setup
Rework of GCM code did not include s390x causing NULL pointer dereferences on GCM operations other than AES-GCM on platforms that support kma. Fix this by a proper setup of the function pointers. Fixes: 92c9086e5c2b ("Use separate function to get GCM functions") Signed-off-by: Juergen Christ <jchrist@linux.ibm.com> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18862) (cherry picked from commit 48e35b99bd0071207cfe39da22eb2502db5c09dc)
-rw-r--r--crypto/modes/gcm128.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/crypto/modes/gcm128.c b/crypto/modes/gcm128.c
index 6b80867..bacaffd 100644
--- a/crypto/modes/gcm128.c
+++ b/crypto/modes/gcm128.c
@@ -495,6 +495,11 @@ static void gcm_get_funcs(struct gcm_funcs_st *ctx)
}
return;
#endif
+#if defined(__s390__) || defined(__s390x__)
+ ctx->gmult = gcm_gmult_4bit;
+ ctx->ghash = gcm_ghash_4bit;
+ return;
+#endif
}
void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block)