diff options
author | Florian Dold <florian.dold@gmail.com> | 2014-04-07 00:26:06 +0000 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2014-04-07 00:26:06 +0000 |
commit | d33161cddda663720ea93c483ed6e3e7511e995b (patch) | |
tree | 7413b2aace2d2673e083369b22126d731a8fabaf /src/main/java/org/gnunet/util/crypto/EcdsaSignature.java | |
parent | a5a49ee6c7e87b0fb8abae6127713e8ef3c38edb (diff) | |
download | gnunet-java-d33161cddda663720ea93c483ed6e3e7511e995b.tar.gz gnunet-java-d33161cddda663720ea93c483ed6e3e7511e995b.zip |
docs / fixed fixme in crypto
Diffstat (limited to 'src/main/java/org/gnunet/util/crypto/EcdsaSignature.java')
-rw-r--r-- | src/main/java/org/gnunet/util/crypto/EcdsaSignature.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/org/gnunet/util/crypto/EcdsaSignature.java b/src/main/java/org/gnunet/util/crypto/EcdsaSignature.java index 9e01a6f..28dfb3e 100644 --- a/src/main/java/org/gnunet/util/crypto/EcdsaSignature.java +++ b/src/main/java/org/gnunet/util/crypto/EcdsaSignature.java | |||
@@ -80,9 +80,16 @@ public class EcdsaSignature implements Message { | |||
80 | HashCode h = HashCode.hash(m); | 80 | HashCode h = HashCode.hash(m); |
81 | BigInteger z = new BigInteger(1, h.data); | 81 | BigInteger z = new BigInteger(1, h.data); |
82 | BigInteger sCoeff = Ed25519.decodeScalar(s); | 82 | BigInteger sCoeff = Ed25519.decodeScalar(s); |
83 | |||
84 | if (sCoeff.equals(BigInteger.ZERO) || sCoeff.compareTo(Ed25519.l) >= 0) { | ||
85 | return false; | ||
86 | } | ||
87 | |||
83 | BigInteger rCoeff = Ed25519.decodeScalar(r); | 88 | BigInteger rCoeff = Ed25519.decodeScalar(r); |
89 | if (rCoeff.equals(BigInteger.ZERO) || rCoeff.compareTo(Ed25519.l) >= 0) { | ||
90 | return false; | ||
91 | } | ||
84 | 92 | ||
85 | // FIXME: check range of s and r | ||
86 | BigInteger w = sCoeff.modInverse(Ed25519.l); | 93 | BigInteger w = sCoeff.modInverse(Ed25519.l); |
87 | BigInteger u1 = z.multiply(w).mod(Ed25519.l); | 94 | BigInteger u1 = z.multiply(w).mod(Ed25519.l); |
88 | BigInteger u2 = rCoeff.multiply(w).mod(Ed25519.l); | 95 | BigInteger u2 = rCoeff.multiply(w).mod(Ed25519.l); |