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;


Reply via email to