[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