Upgraded to BouncyCastle 1.50. Added bouncy -> spongy conversion script.

This commit is contained in:
akwizgran
2014-01-16 15:21:42 +00:00
parent 6af3c54c28
commit a168a7ba89
10 changed files with 23 additions and 13 deletions

View File

@@ -3,10 +3,10 @@
<classpathentry kind="src" path="src"/>
<classpathentry combineaccessrules="false" kind="src" path="/briar-api"/>
<classpathentry kind="lib" path="/briar-api/libs/guice-3.0-no_aop.jar"/>
<classpathentry kind="lib" path="libs/sc-light-jdk15on-1.47.0.3-SNAPSHOT.jar" sourcepath="libs/source/sc-light-jdk15on-1.47.0.3-SNAPSHOT-source.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="/briar-api/libs/javax.inject.jar"/>
<classpathentry kind="lib" path="libs/h2small-1.3.170.jar"/>
<classpathentry kind="lib" path="libs/weupnp-0.1.3-SNAPSHOT-briar.jar"/>
<classpathentry kind="lib" path="libs/lcrypto-jdk15on-150.jar" sourcepath="libs/source/lcrypto-jdk15on-150-source.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

Binary file not shown.

Binary file not shown.

View File

@@ -4,7 +4,6 @@ import java.math.BigInteger;
import org.spongycastle.crypto.params.ECDomainParameters;
import org.spongycastle.math.ec.ECCurve;
import org.spongycastle.math.ec.ECFieldElement;
import org.spongycastle.math.ec.ECPoint;
/** Parameters for curve brainpoolP384r1 - see RFC 5639. */
@@ -63,8 +62,6 @@ interface EllipticCurveConstants {
// Static parameter objects derived from the above parameters
ECCurve CURVE = new ECCurve.Fp(P, A, B);
ECPoint G = new ECPoint.Fp(CURVE,
new ECFieldElement.Fp(P, X),
new ECFieldElement.Fp(P, Y));
ECPoint G = CURVE.createPoint(X, Y);
ECDomainParameters PARAMETERS = new ECDomainParameters(CURVE, G, Q, H);
}

View File

@@ -6,11 +6,9 @@ import java.security.GeneralSecurityException;
import org.briarproject.api.crypto.KeyParser;
import org.briarproject.api.crypto.PrivateKey;
import org.briarproject.api.crypto.PublicKey;
import org.spongycastle.crypto.params.ECDomainParameters;
import org.spongycastle.crypto.params.ECPrivateKeyParameters;
import org.spongycastle.crypto.params.ECPublicKeyParameters;
import org.spongycastle.math.ec.ECFieldElement;
import org.spongycastle.math.ec.ECPoint;
/**
@@ -58,9 +56,7 @@ class Sec1KeyParser implements KeyParser {
BigInteger rhs = x.multiply(x).add(a).multiply(x).add(b).mod(modulus);
if(!lhs.equals(rhs)) throw new GeneralSecurityException();
// We know the point (x, y) is on the curve, so we can create the point
ECFieldElement elementX = new ECFieldElement.Fp(modulus, x);
ECFieldElement elementY = new ECFieldElement.Fp(modulus, y);
ECPoint pub = new ECPoint.Fp(params.getCurve(), elementX, elementY);
ECPoint pub = params.getCurve().createPoint(x, y);
// Verify that the point (x, y) is not the point at infinity
if(pub.isInfinity()) throw new GeneralSecurityException();
// Verify that the point (x, y) times n is the point at infinity

View File

@@ -23,9 +23,9 @@ class Sec1PublicKey implements PublicKey {
public byte[] getEncoded() {
byte[] encodedKey = new byte[publicKeyBytes];
encodedKey[0] = 4;
byte[] x = key.getQ().getX().toBigInteger().toByteArray();
byte[] x = key.getQ().getAffineXCoord().toBigInteger().toByteArray();
Sec1Utils.convertToFixedLength(x, encodedKey, 1, bytesPerInt);
byte[] y = key.getQ().getY().toBigInteger().toByteArray();
byte[] y = key.getQ().getAffineYCoord().toBigInteger().toByteArray();
Sec1Utils.convertToFixedLength(y, encodedKey, 1 + bytesPerInt,
bytesPerInt);
return encodedKey;

View File

@@ -12,6 +12,6 @@
<classpathentry kind="lib" path="libs/jmock-2.5.1.jar"/>
<classpathentry kind="lib" path="libs/junit-4.9b3.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="/briar-core/libs/sc-light-jdk15on-1.47.0.3-SNAPSHOT.jar" sourcepath="/briar-core/libs/source/sc-light-jdk15on-1.47.0.3-SNAPSHOT-source.jar"/>
<classpathentry kind="lib" path="/briar-core/libs/lcrypto-jdk15on-150.jar" sourcepath="/briar-core/libs/source/lcrypto-jdk15on-150-source.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

17
spongy.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
dirs=(ant core docs jce mail pg pkix prov)
for file in `find ${dirs[@]} -name bouncycastle`
do
path=`dirname $file`
echo "Moving $file to $path/spongycastle"
mv $file $path/spongycastle
done
for file in `grep -Rl bouncycastle ${dirs[@]}`
do
echo "Replacing string bouncycastle in $file"
sed -i 's/bouncycastle/spongycastle/g' $file
done