diff --git a/xed25519.cpp b/xed25519.cpp index 78d0f53d..6cc8ecb0 100644 --- a/xed25519.cpp +++ b/xed25519.cpp @@ -385,10 +385,10 @@ bool ed25519PrivateKey::Validate(RandomNumberGenerator &rng, unsigned int level) return false; if (level >= 3) { - SecByteBlock sk(m_sk, SECRET_KEYLENGTH), pk(PUBLIC_KEYLENGTH); - SecretToPublicKey(pk, sk); + // Verify m_pk is pairwise consistent with m_sk + SecByteBlock pk(PUBLIC_KEYLENGTH); + SecretToPublicKey(pk, m_sk); - // Secret key is already clamped, bufs are equal if (VerifyBufsEqual(pk, m_pk, PUBLIC_KEYLENGTH) == false) return false; }