From 5ffefd2a19f48a58aaa33d731ed95f3151146908 Mon Sep 17 00:00:00 2001 From: zzz Date: Thu, 23 Aug 2012 19:11:55 +0000 Subject: [PATCH] * Crypto: Rename bouncycastle HMAC libs so they don't conflict with older Android versions which bundle them --- build.xml | 4 ++-- core/java/src/net/i2p/crypto/HMAC256Generator.java | 6 +++--- core/java/src/net/i2p/crypto/HMACGenerator.java | 8 ++++---- .../bouncycastle/{crypto => oldcrypto}/Digest.java | 2 +- .../bouncycastle/{crypto => oldcrypto}/Mac.java | 2 +- .../digests/GeneralDigest.java | 4 ++-- .../{crypto => oldcrypto}/digests/MD5Digest.java | 2 +- .../{crypto => oldcrypto}/macs/I2PHMac.java | 6 +++--- .../src/org/bouncycastle/oldcrypto/package.html | 14 ++++++++++++++ history.txt | 8 ++++++++ router/java/src/net/i2p/router/RouterVersion.java | 2 +- 11 files changed, 40 insertions(+), 18 deletions(-) rename core/java/src/org/bouncycastle/{crypto => oldcrypto}/Digest.java (98%) rename core/java/src/org/bouncycastle/{crypto => oldcrypto}/Mac.java (98%) rename core/java/src/org/bouncycastle/{crypto => oldcrypto}/digests/GeneralDigest.java (97%) rename core/java/src/org/bouncycastle/{crypto => oldcrypto}/digests/MD5Digest.java (99%) rename core/java/src/org/bouncycastle/{crypto => oldcrypto}/macs/I2PHMac.java (97%) create mode 100644 core/java/src/org/bouncycastle/oldcrypto/package.html diff --git a/build.xml b/build.xml index b8c35ab6c0..b9c9940f2b 100644 --- a/build.xml +++ b/build.xml @@ -413,7 +413,7 @@ splitindex="true" doctitle="I2P Javadocs for Release ${release.number} Build ${i2p.build.number}${build.extra}" windowtitle="I2P Anonymous Network - Java Documentation - Version ${release.number}"> - + @@ -482,7 +482,7 @@ splitindex="true" doctitle="I2P Unit Test Javadocs for Release ${release.number} Build ${i2p.build.number}${build.extra}" windowtitle="I2P Anonymous Network - Java Documentation - Version ${release.number}"> - + diff --git a/core/java/src/net/i2p/crypto/HMAC256Generator.java b/core/java/src/net/i2p/crypto/HMAC256Generator.java index c532843ab6..5d38e5e1de 100644 --- a/core/java/src/net/i2p/crypto/HMAC256Generator.java +++ b/core/java/src/net/i2p/crypto/HMAC256Generator.java @@ -4,12 +4,12 @@ import gnu.crypto.hash.Sha256Standalone; import net.i2p.I2PAppContext; -import org.bouncycastle.crypto.Digest; -import org.bouncycastle.crypto.macs.I2PHMac; +import org.bouncycastle.oldcrypto.Digest; +import org.bouncycastle.oldcrypto.macs.I2PHMac; /** * Calculate the HMAC-SHA256 of a key+message. All the good stuff occurs - * in {@link org.bouncycastle.crypto.macs.I2PHMac} and + * in {@link org.bouncycastle.oldcrypto.macs.I2PHMac} and * {@link gnu.crypto.hash.Sha256Standalone}. * * This should be compatible with javax.crypto.Mac.getInstance("HmacSHA256") diff --git a/core/java/src/net/i2p/crypto/HMACGenerator.java b/core/java/src/net/i2p/crypto/HMACGenerator.java index b21e994a6d..b6f13b1e3d 100644 --- a/core/java/src/net/i2p/crypto/HMACGenerator.java +++ b/core/java/src/net/i2p/crypto/HMACGenerator.java @@ -16,13 +16,13 @@ import net.i2p.data.Hash; import net.i2p.data.SessionKey; import net.i2p.util.SimpleByteCache; -import org.bouncycastle.crypto.digests.MD5Digest; -import org.bouncycastle.crypto.macs.I2PHMac; +import org.bouncycastle.oldcrypto.digests.MD5Digest; +import org.bouncycastle.oldcrypto.macs.I2PHMac; /** * Calculate the HMAC-MD5-128 of a key+message. All the good stuff occurs - * in {@link org.bouncycastle.crypto.macs.I2PHMac} and - * {@link org.bouncycastle.crypto.digests.MD5Digest}. + * in {@link org.bouncycastle.oldcrypto.macs.I2PHMac} and + * {@link org.bouncycastle.oldcrypto.digests.MD5Digest}. * * Keys are always 32 bytes. * This is used only by UDP. diff --git a/core/java/src/org/bouncycastle/crypto/Digest.java b/core/java/src/org/bouncycastle/oldcrypto/Digest.java similarity index 98% rename from core/java/src/org/bouncycastle/crypto/Digest.java rename to core/java/src/org/bouncycastle/oldcrypto/Digest.java index 7ffa239547..0ecc1bd65d 100644 --- a/core/java/src/org/bouncycastle/crypto/Digest.java +++ b/core/java/src/org/bouncycastle/oldcrypto/Digest.java @@ -1,4 +1,4 @@ -package org.bouncycastle.crypto; +package org.bouncycastle.oldcrypto; /* * Copyright (c) 2000 - 2004 The Legion Of The Bouncy Castle * (http://www.bouncycastle.org) diff --git a/core/java/src/org/bouncycastle/crypto/Mac.java b/core/java/src/org/bouncycastle/oldcrypto/Mac.java similarity index 98% rename from core/java/src/org/bouncycastle/crypto/Mac.java rename to core/java/src/org/bouncycastle/oldcrypto/Mac.java index 336f883635..fe27bc8d9c 100644 --- a/core/java/src/org/bouncycastle/crypto/Mac.java +++ b/core/java/src/org/bouncycastle/oldcrypto/Mac.java @@ -1,4 +1,4 @@ -package org.bouncycastle.crypto; +package org.bouncycastle.oldcrypto; /* * Copyright (c) 2000 - 2004 The Legion Of The Bouncy Castle * (http://www.bouncycastle.org) diff --git a/core/java/src/org/bouncycastle/crypto/digests/GeneralDigest.java b/core/java/src/org/bouncycastle/oldcrypto/digests/GeneralDigest.java similarity index 97% rename from core/java/src/org/bouncycastle/crypto/digests/GeneralDigest.java rename to core/java/src/org/bouncycastle/oldcrypto/digests/GeneralDigest.java index 09b72f9e7a..fe4808db49 100644 --- a/core/java/src/org/bouncycastle/crypto/digests/GeneralDigest.java +++ b/core/java/src/org/bouncycastle/oldcrypto/digests/GeneralDigest.java @@ -1,4 +1,4 @@ -package org.bouncycastle.crypto.digests; +package org.bouncycastle.oldcrypto.digests; /* * Copyright (c) 2000 - 2004 The Legion Of The Bouncy Castle * (http://www.bouncycastle.org) @@ -26,7 +26,7 @@ package org.bouncycastle.crypto.digests; * */ -import org.bouncycastle.crypto.Digest; +import org.bouncycastle.oldcrypto.Digest; /** * base implementation of MD4 family style digest as outlined in diff --git a/core/java/src/org/bouncycastle/crypto/digests/MD5Digest.java b/core/java/src/org/bouncycastle/oldcrypto/digests/MD5Digest.java similarity index 99% rename from core/java/src/org/bouncycastle/crypto/digests/MD5Digest.java rename to core/java/src/org/bouncycastle/oldcrypto/digests/MD5Digest.java index 04ae6e1fd1..178ab94c00 100644 --- a/core/java/src/org/bouncycastle/crypto/digests/MD5Digest.java +++ b/core/java/src/org/bouncycastle/oldcrypto/digests/MD5Digest.java @@ -1,4 +1,4 @@ -package org.bouncycastle.crypto.digests; +package org.bouncycastle.oldcrypto.digests; /** diff --git a/core/java/src/org/bouncycastle/crypto/macs/I2PHMac.java b/core/java/src/org/bouncycastle/oldcrypto/macs/I2PHMac.java similarity index 97% rename from core/java/src/org/bouncycastle/crypto/macs/I2PHMac.java rename to core/java/src/org/bouncycastle/oldcrypto/macs/I2PHMac.java index 19ff6fc5db..031f029551 100644 --- a/core/java/src/org/bouncycastle/crypto/macs/I2PHMac.java +++ b/core/java/src/org/bouncycastle/oldcrypto/macs/I2PHMac.java @@ -1,4 +1,4 @@ -package org.bouncycastle.crypto.macs; +package org.bouncycastle.oldcrypto.macs; /* * Copyright (c) 2000 - 2004 The Legion Of The Bouncy Castle * (http://www.bouncycastle.org) @@ -31,8 +31,8 @@ import java.util.Arrays; import net.i2p.util.SimpleByteCache; -import org.bouncycastle.crypto.Digest; -import org.bouncycastle.crypto.Mac; +import org.bouncycastle.oldcrypto.Digest; +import org.bouncycastle.oldcrypto.Mac; /** * HMAC implementation based on RFC2104 diff --git a/core/java/src/org/bouncycastle/oldcrypto/package.html b/core/java/src/org/bouncycastle/oldcrypto/package.html new file mode 100644 index 0000000000..56de5a3940 --- /dev/null +++ b/core/java/src/org/bouncycastle/oldcrypto/package.html @@ -0,0 +1,14 @@ + + +

+This is from some very old version of bouncycastle, part of package org.bouncycastle.crypto. +Android bundled something similar in pre-Gingerbread, but upgraded to a later, incompatible version +in Gingerbread. As of Java 1.4 these are in javax.crypto - more or less. +To avoid having to make two different versions of our Android app, we rename to org.bouncycastle.oldcrypto. +

+Ref: javax.crypto +and +this android issue. +

+ + diff --git a/history.txt b/history.txt index b96e008c44..6fd81750b9 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,11 @@ +2012-08-23 zzz + * Crypto: Rename bouncycastle HMAC libs so they don't conflict + with older Android versions which bundle them + * NTCP: Reduce lock contention + * SSU: + - Don't relay or introduce to/from privileged ports + - Various spoof detections + 2012-08-22 zzz * NetDB: Add hash collision detection * SimpleTimer2: Synchronization improvements (ticket #653) diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index ea17ad55f3..e1f87e077d 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 15; + public final static long BUILD = 16; /** for example "-test" */ public final static String EXTRA = "";