From c150ceb6771fa381fa528d6ed1a28bfb1ce2ef89 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Tue, 24 Oct 2017 17:09:55 +0200 Subject: [PATCH] Clear the high bit the same way everywhere --- .../crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c | 2 +- src/libsodium/crypto_sign/ed25519/ref10/keypair.c | 2 +- src/libsodium/crypto_sign/ed25519/ref10/obsolete.c | 2 +- src/libsodium/crypto_sign/ed25519/ref10/sign.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c b/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c index d40ee5bc..bcbaefb9 100644 --- a/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c +++ b/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c @@ -23,7 +23,7 @@ static inline void _crypto_scalarmult_ed25519_clamp(unsigned char k[32]) { k[0] &= 248; - k[31] &= 63; + k[31] &= 127; k[31] |= 64; } diff --git a/src/libsodium/crypto_sign/ed25519/ref10/keypair.c b/src/libsodium/crypto_sign/ed25519/ref10/keypair.c index 51ca7f8e..befa50e6 100644 --- a/src/libsodium/crypto_sign/ed25519/ref10/keypair.c +++ b/src/libsodium/crypto_sign/ed25519/ref10/keypair.c @@ -21,7 +21,7 @@ crypto_sign_ed25519_seed_keypair(unsigned char *pk, unsigned char *sk, crypto_hash_sha512(sk, seed, 32); #endif sk[0] &= 248; - sk[31] &= 63; + sk[31] &= 127; sk[31] |= 64; ge_scalarmult_base(&A, sk); diff --git a/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c b/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c index 5ff14884..21edc280 100644 --- a/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c +++ b/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c @@ -19,7 +19,7 @@ crypto_sign_edwards25519sha512batch_keypair(unsigned char *pk, randombytes_buf(sk, 32); crypto_hash_sha512(sk, sk, 32); sk[0] &= 248; - sk[31] &= 63; + sk[31] &= 127; sk[31] |= 64; ge_scalarmult_base(&A, sk); ge_p3_tobytes(pk, &A); diff --git a/src/libsodium/crypto_sign/ed25519/ref10/sign.c b/src/libsodium/crypto_sign/ed25519/ref10/sign.c index 510b7c7a..3c20320e 100644 --- a/src/libsodium/crypto_sign/ed25519/ref10/sign.c +++ b/src/libsodium/crypto_sign/ed25519/ref10/sign.c @@ -28,7 +28,7 @@ static inline void _crypto_sign_ed25519_clamp(unsigned char k[32]) { k[0] &= 248; - k[31] &= 63; + k[31] &= 127; k[31] |= 64; }