Author: toad
Date: 2007-01-30 15:22:22 +0000 (Tue, 30 Jan 2007)
New Revision: 11644
Modified:
trunk/freenet/src/freenet/crypt/DSAGroup.java
Log:
Small memory/cpu optimisation
Modified: trunk/freenet/src/freenet/crypt/DSAGroup.java
===================================================================
--- trunk/freenet/src/freenet/crypt/DSAGroup.java 2007-01-28 17:56:32 UTC
(rev 11643)
+++ trunk/freenet/src/freenet/crypt/DSAGroup.java 2007-01-30 15:22:22 UTC
(rev 11644)
@@ -69,6 +69,8 @@
}
private void updateCachedHexStrings() {
+ if(pAsHexString != null && qAsHexString != null && gAsHexString != null)
+ return;
pAsHexString = HexUtil.biToHex(p);
qAsHexString = HexUtil.biToHex(q);
gAsHexString = HexUtil.biToHex(g);
@@ -107,6 +109,7 @@
// }
public String writeAsField() {
+ updateCachedHexStrings();
StringBuffer b = new StringBuffer();
b.append(pAsHexString).append(',');
b.append(qAsHexString).append(',');
@@ -144,14 +147,17 @@
}
public String getPAsHexString() {
+ updateCachedHexStrings();
return pAsHexString;
}
public String getQAsHexString() {
+ updateCachedHexStrings();
return qAsHexString;
}
public String getGAsHexString() {
+ updateCachedHexStrings();
return gAsHexString;
}
@@ -347,6 +353,8 @@
BigInteger p = new NativeBigInteger(1,
Base64.decode(fs.get("p")));
BigInteger q = new NativeBigInteger(1,
Base64.decode(fs.get("q")));
BigInteger g = new NativeBigInteger(1,
Base64.decode(fs.get("g")));
- return new DSAGroup(p, q, g);
+ DSAGroup dg = new DSAGroup(p, q, g);
+ if(dg.equals(Global.DSAgroupBigA)) return Global.DSAgroupBigA;
+ return dg;
}
}