[openssh-commits] [openssh] 10/12: upstream: use crypto_api.h #define constants for lengths; no

git+noreply at mindrot.org git+noreply at mindrot.org
Tue Jul 21 15:23:39 AEST 2026


This is an automated email from the git hooks/post-receive script.

djm pushed a commit to branch master
in repository openssh.

commit 76357c4155cd521d19558c516a0ec7b5bd49929b
Author: djm at openbsd.org <djm at openbsd.org>
AuthorDate: Tue Jul 14 04:43:13 2026 +0000

    upstream: use crypto_api.h #define constants for lengths; no
    
    binary change
    
    OpenBSD-Commit-ID: 6527baa1f07b7fdf42ca84531a13ae3ff2c0dbc8
---
 ssh-mldsa-eddsa.c | 38 ++++++++++++++++++++++----------------
 1 file changed, 22 insertions(+), 16 deletions(-)

diff --git a/ssh-mldsa-eddsa.c b/ssh-mldsa-eddsa.c
index 89c35c7d1..9371169fc 100644
--- a/ssh-mldsa-eddsa.c
+++ b/ssh-mldsa-eddsa.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-mldsa-eddsa.c,v 1.1 2026/06/14 03:59:34 djm Exp $ */
+/* $OpenBSD: ssh-mldsa-eddsa.c,v 1.2 2026/07/14 04:43:13 djm Exp $ */
 /*
  * Copyright (c) 2026 Damien Miller <djm at mindrot.org>
  *
@@ -48,7 +48,8 @@ int
 crypto_sign_mldsa44_ed25519_keygen(uint8_t pk[MLDSA44_ED25519_PK_SZ],
     uint8_t sk[MLDSA44_ED25519_SK_SZ])
 {
-	uint8_t mldsa_seed[32], ed25519_seed[32];
+	uint8_t mldsa_seed[MLDSA44_SEEDBYTES];
+	uint8_t ed25519_seed[crypto_sign_ed25519_SEEDBYTES];
 	int r;
 
 	arc4random_buf(mldsa_seed, sizeof(mldsa_seed));
@@ -63,10 +64,12 @@ crypto_sign_mldsa44_ed25519_keygen(uint8_t pk[MLDSA44_ED25519_PK_SZ],
 
 int
 crypto_sign_mldsa44_ed25519_keygen_seeded(uint8_t pk[MLDSA44_ED25519_PK_SZ],
-    uint8_t sk[MLDSA44_ED25519_SK_SZ], const uint8_t mldsa_seed[32],
-    const uint8_t ed25519_seed[32])
+    uint8_t sk[MLDSA44_ED25519_SK_SZ],
+    const uint8_t mldsa_seed[MLDSA44_SEEDBYTES],
+    const uint8_t ed25519_seed[crypto_sign_ed25519_SEEDBYTES])
 {
-	uint8_t ed25519_pk[32], ed25519_sk[64];
+	uint8_t ed25519_pk[MLDSA44_SEEDBYTES];
+	uint8_t ed25519_sk[crypto_sign_ed25519_SECRETKEYBYTES];
 	uint8_t mldsa_sk[MLDSA44_SECRETKEYBYTES];
 	int ret = -1;
 
@@ -77,11 +80,13 @@ crypto_sign_mldsa44_ed25519_keygen_seeded(uint8_t pk[MLDSA44_ED25519_PK_SZ],
 		goto out;
 
 	/* Serialize PK: mldsaPK || ed25519PK */
-	memcpy(pk + MLDSA44_PUBLICKEYBYTES, ed25519_pk, 32);
+	memcpy(pk + MLDSA44_PUBLICKEYBYTES, ed25519_pk,
+	    crypto_sign_ed25519_SEEDBYTES);
 
 	/* Serialize SK: mldsaSeed || ed25519Seed */
-	memcpy(sk, mldsa_seed, 32);
-	memcpy(sk + 32, ed25519_seed, 32);
+	memcpy(sk, mldsa_seed, MLDSA44_SEEDBYTES);
+	memcpy(sk + MLDSA44_SEEDBYTES, ed25519_seed,
+	    crypto_sign_ed25519_SEEDBYTES);
 
 	/* success */
 	ret = 0;
@@ -141,8 +146,9 @@ crypto_sign_mldsa44_ed25519_sign(uint8_t sig[MLDSA44_ED25519_SIG_SZ],
 	size_t m_prime_len = 0;
 	uint8_t mldsa_sk[MLDSA44_SECRETKEYBYTES];
 	uint8_t mldsa_pk_dummy[MLDSA44_PUBLICKEYBYTES];
-	uint8_t ed25519_pk[32], ed25519_sk[64];
-	uint8_t mldsa_rnd[32];
+	uint8_t ed25519_pk[crypto_sign_ed25519_PUBLICKEYBYTES];
+	uint8_t ed25519_sk[crypto_sign_ed25519_SECRETKEYBYTES];
+	uint8_t mldsa_rnd[MLDSA44_SEEDBYTES];
 	unsigned long long smlen;
 	int r = -1;
 
@@ -163,11 +169,11 @@ crypto_sign_mldsa44_ed25519_sign(uint8_t sig[MLDSA44_ED25519_SIG_SZ],
 
 	/* Expand Ed25519 key from seed */
 	if (crypto_sign_ed25519_keypair_from_seed(ed25519_pk, ed25519_sk,
-	    sk + 32) != 0)
+	    sk + MLDSA44_SEEDBYTES) != 0)
 		goto out;
 
 	/* Sign with Ed25519 */
-	uint8_t *sm = malloc(m_prime_len + 64);
+	uint8_t *sm = malloc(m_prime_len + crypto_sign_ed25519_BYTES);
 	if (sm == NULL)
 		goto out;
 
@@ -176,7 +182,7 @@ crypto_sign_mldsa44_ed25519_sign(uint8_t sig[MLDSA44_ED25519_SIG_SZ],
 		free(sm);
 		goto out;
 	}
-	memcpy(sig + MLDSA44_SIGBYTES, sm, 64);
+	memcpy(sig + MLDSA44_SIGBYTES, sm, crypto_sign_ed25519_BYTES);
 	free(sm);
 
 	r = 0;
@@ -211,12 +217,12 @@ crypto_sign_mldsa44_ed25519_verify(const uint8_t sig[MLDSA44_ED25519_SIG_SZ],
 		goto out;
 
 	/* Verify Ed25519 */
-	smlen = m_prime_len + 64;
+	smlen = m_prime_len + crypto_sign_ed25519_BYTES;
 	mlen = smlen;
 	if ((sm = malloc(smlen)) == NULL || (m = malloc(mlen)) == NULL)
 		goto out;
-	memcpy(sm, sig + MLDSA44_SIGBYTES, 64);
-	memcpy(sm + 64, m_prime, m_prime_len);
+	memcpy(sm, sig + MLDSA44_SIGBYTES, crypto_sign_ed25519_BYTES);
+	memcpy(sm + crypto_sign_ed25519_BYTES, m_prime, m_prime_len);
 
 	if (crypto_sign_ed25519_open(m, &mlen, sm, smlen,
 	    pk + MLDSA44_PUBLICKEYBYTES) != 0)

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list