]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Properly zeroize ML-KEM z and d values
authorJoachim Vandersmissen <git@jvdsn.com>
Fri, 18 Apr 2025 17:48:24 +0000 (12:48 -0500)
committerTomas Mraz <tomas@openssl.org>
Fri, 25 Apr 2025 07:47:10 +0000 (09:47 +0200)
Ensure z and d are actually zeroized by cleansing the full size of s,
rather than just vector_bytes.

Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27437)

crypto/ml_kem/ml_kem.c

index ec7523343584fb763cc7f56cb0377115017fa2c1..662e7dd622e24879f5d71fa2117a272986ed8aea 100644 (file)
@@ -1550,7 +1550,7 @@ ossl_ml_kem_key_reset(ML_KEM_KEY *key)
      */
     if (ossl_ml_kem_have_prvkey(key))
         OPENSSL_cleanse(key->s,
-                        key->vinfo->vector_bytes + 2 * ML_KEM_RANDOM_BYTES);
+                        key->vinfo->rank * sizeof(scalar) + 2 * ML_KEM_RANDOM_BYTES);
     OPENSSL_free(key->t);
     key->d = key->z = (uint8_t *)(key->s = key->m = key->t = NULL);
 }