Author: toad
Date: 2006-11-16 22:09:46 +0000 (Thu, 16 Nov 2006)
New Revision: 10960
Modified:
trunk/freenet/src/freenet/crypt/DSA.java
trunk/freenet/src/freenet/crypt/StationToStationContext.java
Log:
Use Yarrow instead.
Modified: trunk/freenet/src/freenet/crypt/DSA.java
===================================================================
--- trunk/freenet/src/freenet/crypt/DSA.java 2006-11-16 21:54:53 UTC (rev
10959)
+++ trunk/freenet/src/freenet/crypt/DSA.java 2006-11-16 22:09:46 UTC (rev
10960)
@@ -23,17 +23,18 @@
public static DSASignature sign(DSAGroup g,
DSAPrivateKey x,
BigInteger k,
- BigInteger m) {
+ BigInteger m,
+ RandomSource random) {
BigInteger r=g.getG().modPow(k, g.getP()).mod(g.getQ());
BigInteger kInv=k.modInverse(g.getQ());
- return sign(g, x, r, kInv, m);
+ return sign(g, x, r, kInv, m, random);
}
public static DSASignature sign(DSAGroup g, DSAPrivateKey x, BigInteger
m,
- Random r) {
+ RandomSource r) {
BigInteger k = DSA.generateK(g, r);
- return sign(g, x, k, m);
+ return sign(g, x, k, m, r);
}
/**
@@ -59,12 +60,12 @@
*/
public static DSASignature sign(DSAGroup g, DSAPrivateKey x,
BigInteger r, BigInteger kInv,
- BigInteger m) {
+ BigInteger m, RandomSource random) {
BigInteger s1=m.add(x.getX().multiply(r)).mod(g.getQ());
BigInteger s=kInv.multiply(s1).mod(g.getQ());
if((r.compareTo(BigInteger.ZERO) == 0) ||
(s.compareTo(BigInteger.ZERO) == 0)) {
Logger.normal(DSA.class, "R or S equals 0 : Weird
behaviour detected, please report if seen too often.");
- return sign(g, x, r, generateK(g, new SecureRandom()),
m);
+ return sign(g, x, r, generateK(g, random), m, random);
}
return new DSASignature(r,s);
}
Modified: trunk/freenet/src/freenet/crypt/StationToStationContext.java
===================================================================
--- trunk/freenet/src/freenet/crypt/StationToStationContext.java
2006-11-16 21:54:53 UTC (rev 10959)
+++ trunk/freenet/src/freenet/crypt/StationToStationContext.java
2006-11-16 22:09:46 UTC (rev 10960)
@@ -34,7 +34,7 @@
final DSAGroup group;
/** The rng */
- final Random random;
+ final RandomSource random;
// Generated or set later
NativeBigInteger hisExponential = null;
@@ -42,7 +42,7 @@
boolean logMINOR;
- public StationToStationContext(DSAPrivateKey ourKey, DSAGroup group,
DSAPublicKey hisKey, Random rand) {
+ public StationToStationContext(DSAPrivateKey ourKey, DSAGroup group,
DSAPublicKey hisKey, RandomSource rand) {
this.myPrivateKey = ourKey;
this.random = rand;
this.group = group;