From 3474b827b06b3a285d04aba64873243d87d4823a Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 19 Mar 2016 15:16:38 +0000 Subject: [PATCH 1/2] add raw signing test --- core/java/src/net/i2p/crypto/KeyGenerator.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/core/java/src/net/i2p/crypto/KeyGenerator.java b/core/java/src/net/i2p/crypto/KeyGenerator.java index 4297fcae2..6a087c50a 100644 --- a/core/java/src/net/i2p/crypto/KeyGenerator.java +++ b/core/java/src/net/i2p/crypto/KeyGenerator.java @@ -15,6 +15,7 @@ import java.security.InvalidKeyException; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; +import java.security.MessageDigest; import java.security.ProviderException; import java.security.interfaces.ECPrivateKey; import java.security.interfaces.ECPublicKey; @@ -416,19 +417,30 @@ public final class KeyGenerator { else System.out.println(type + " private-to-public test FAILED"); //System.out.println("privkey " + keys[1]); + MessageDigest md = type.getDigestInstance(); for (int i = 0; i < runs; i++) { RandomSource.getInstance().nextBytes(src); + md.update(src); + byte[] sha = md.digest(); + SimpleDataStructure hash = type.getHashInstance(); + hash.setData(sha); long start = System.nanoTime(); Signature sig = DSAEngine.getInstance().sign(src, privkey); + Signature sig2 = DSAEngine.getInstance().sign(hash, privkey); if (sig == null) throw new GeneralSecurityException("signature generation failed"); + if (sig2 == null) + throw new GeneralSecurityException("signature generation (H) failed"); long mid = System.nanoTime(); boolean ok = DSAEngine.getInstance().verifySignature(sig, src, pubkey); + boolean ok2 = DSAEngine.getInstance().verifySignature(sig2, hash, pubkey); long end = System.nanoTime(); stime += mid - start; vtime += end - mid; if (!ok) throw new GeneralSecurityException(type + " V(S(data)) fail"); + if (!ok2) + throw new GeneralSecurityException(type + " V(S(H(data))) fail"); } stime /= 1000*1000; vtime /= 1000*1000; From 2e7a7f26f88b99f7dcf96196c524c5164883a55b Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 19 Mar 2016 15:18:07 +0000 Subject: [PATCH 2/2] take out code for stats removed in .24 --- router/java/src/net/i2p/router/StatisticsManager.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/router/java/src/net/i2p/router/StatisticsManager.java b/router/java/src/net/i2p/router/StatisticsManager.java index 9379df350..eeda3709c 100644 --- a/router/java/src/net/i2p/router/StatisticsManager.java +++ b/router/java/src/net/i2p/router/StatisticsManager.java @@ -71,9 +71,8 @@ public class StatisticsManager { public Properties publishStatistics(Hash h) { Properties stats = new Properties(); stats.setProperty("router.version", RouterVersion.VERSION); - // scheduled for removal, never used - if (CoreVersion.VERSION.equals("0.9.23")) - stats.setProperty("coreVersion", CoreVersion.VERSION); + // never used + //stats.setProperty("coreVersion", CoreVersion.VERSION); stats.setProperty(RouterInfo.PROP_NETWORK_ID, _networkID); stats.setProperty(RouterInfo.PROP_CAPABILITIES, _context.router().getCapabilities()); @@ -168,9 +167,7 @@ public class StatisticsManager { } // So that we will still get build requests - not required since 0.7.9 2010-01-12 - // scheduled for removal - if (CoreVersion.VERSION.equals("0.9.23")) - stats.setProperty("stat_uptime", "90m"); + //stats.setProperty("stat_uptime", "90m"); if (FloodfillNetworkDatabaseFacade.isFloodfill(_context.router().getRouterInfo())) { int ri = _context.router().getUptime() > 30*60*1000 ? _context.netDb().getKnownRouters() :