You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2006/07/25 09:27:22 UTC
svn commit: r425315 - in /incubator/harmony/enhanced/classlib/trunk:
depends/files/ modules/security/ modules/security/make/
modules/security/src/main/java/common/java/security/
modules/security/src/main/native/security/windows/ modules/security/src/te...
Author: mloenko
Date: Tue Jul 25 00:27:21 2006
New Revision: 425315
URL: http://svn.apache.org/viewvc?rev=425315&view=rev
Log:
enabling new crypto provider
Modified:
incubator/harmony/enhanced/classlib/trunk/depends/files/java.security
incubator/harmony/enhanced/classlib/trunk/modules/security/build.xml
incubator/harmony/enhanced/classlib/trunk/modules/security/make/hyproperties.xml
incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/SecureRandom.java
incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/windows/makefile
incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/impl/java/org/apache/harmony/security/tests/java/security/SecureRandom_ImplTest.java
Modified: incubator/harmony/enhanced/classlib/trunk/depends/files/java.security
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/depends/files/java.security?rev=425315&r1=425314&r2=425315&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/depends/files/java.security (original)
+++ incubator/harmony/enhanced/classlib/trunk/depends/files/java.security Tue Jul 25 00:27:21 2006
@@ -20,10 +20,12 @@
# Providers
# See also: J2SE doc. "How to Implement a Provider for the JavaTM Cryptography Architecture"
#
-# Open Source providers
+# Harmony providers
security.provider.1=org.apache.harmony.security.provider.cert.DRLCertFactory
-security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
+security.provider.2=org.apache.harmony.security.provider.crypto.CryptoProvider
security.provider.3=org.apache.harmony.xnet.provider.jsse.JSSEProvider
+# Other Open Source providers
+security.provider.4=org.bouncycastle.jce.provider.BouncyCastleProvider
#
# Class to instantiate as a default Configuration implementation
Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/build.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/security/build.xml?rev=425315&r1=425314&r2=425315&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/build.xml (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/build.xml Tue Jul 25 00:27:21 2006
@@ -49,31 +49,26 @@
<target name="test" depends="build, compile.tests, run.tests" />
- <!-- Build native code -->
- <target name="build.native" if="${hy.security.src.main.native}/security/${hy.os}" >
- <exec failonerror="true"
- executable="${make.command}"
- dir="${hy.security.src.main.native}/security/${hy.os}">
- <env key="HY_HDK" value="${hy.hdk}" />
- </exec>
+ <!-- Build native code -->
+ <available file="${hy.security.src.main.native}/security/${hy.os}" property="native.present" />
- <!-- Copy the built shared libs over to the jre/bin dir -->
- <copy todir="${hy.jdk}/jre/bin" overwrite="yes">
- <fileset dir="${hy.security.src.main.native}/security">
+
+ <target name="build.native" if="native.present" >
+ <make dir="${hy.security.src.main.native}/security/${hy.os}" />
+
+ <!-- Copy the built shared libs over to the jre/bin dir -->
+ <copy todir="${hy.jdk}/jre/bin" overwrite="yes">
+ <fileset dir="${hy.security.src.main.native}/security">
<patternset includes="*${shlib.suffix}*" />
</fileset>
</copy>
</target>
- <!-- Clean natives -->
- <target name="clean.native" if="${hy.security.src.main.native}/security/${hy.os}" >
- <exec failonerror="true"
- executable="${make.command}"
- dir="${hy.security.src.main.native}/security/${hy.os}">
- <env key="HY_HDK" value="${hy.hdk}" />
- <arg line="clean" />
- </exec>
+ <!-- Clean natives -->
+ <target name="clean.native" if="native.present" >
+ <make dir="${hy.security.src.main.native}/security/${hy.os}" target="clean" />
</target>
+
<target name="clean">
<delete failonerror="false">
Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/make/hyproperties.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/security/make/hyproperties.xml?rev=425315&r1=425314&r2=425315&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/make/hyproperties.xml (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/make/hyproperties.xml Tue Jul 25 00:27:21 2006
@@ -26,7 +26,6 @@
<test location="src/test">
<resources location="src/test/resources" />
</test>
- <natives location="src/natives" />
</src>
<bin>
<main location="bin/main" />
Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/SecureRandom.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/SecureRandom.java?rev=425315&r1=425314&r2=425315&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/SecureRandom.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/SecureRandom.java Tue Jul 25 00:27:21 2006
@@ -28,6 +28,7 @@
import org.apache.harmony.security.fortress.Engine;
import org.apache.harmony.security.fortress.Services;
+import org.apache.harmony.security.provider.crypto.SHA1PRNG_SecureRandomImpl;
/**
* @com.intel.drl.spec_ref
@@ -98,8 +99,8 @@
Provider.Service service = findService();
if (service == null) {
this.provider = null;
- this.secureRandomSpi = new DummySecureRandom();
- this.algorithm = "java.util.Random";
+ this.secureRandomSpi = new SHA1PRNG_SecureRandomImpl();
+ this.algorithm = "SHA1PRNG";
} else {
try {
this.provider = service.getProvider();
@@ -329,55 +330,4 @@
return secureRandomSpi.engineGenerateSeed(numBytes);
}
- /**
- *
- * Dummy SecureRandom based on Random
- *
- */
- private class DummySecureRandom extends SecureRandomSpi {
-
- Random rand;
-
- // Creates SecureRandomSpi object
- public DummySecureRandom() {
- rand = new Random();
- }
-
- // Creates SecureRandomSpi object
- public DummySecureRandom(long seed) {
- rand = new Random(seed);
- }
-
- // Sets the seed of this random number generator
- public void engineSetSeed(byte[] seed) {
- long l = 0;
- int length = 8;
-
- if (seed.length < 8) {
- length = seed.length;
- }
- for (int i = 0; i < length; i++) {
- l = (l << 8) | (seed[i] & 0xFF);
- }
- rand.setSeed(l);
- }
-
- // Generates random bytes and places them into a byte array
- public void engineNextBytes(byte[] bytes) {
- rand.nextBytes(bytes);
- }
-
- // Generates random bytes
- //
- // @param numBytes
- // @return An array of random bytes
- public byte[] engineGenerateSeed(int numBytes) {
- if (numBytes < 1) {
- return null;
- }
- byte[] next = new byte[numBytes];
- nextBytes(next);
- return next;
- }
- }
}
Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/windows/makefile
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/windows/makefile?rev=425315&r1=425314&r2=425315&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/windows/makefile (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/windows/makefile Tue Jul 25 00:27:21 2006
@@ -19,25 +19,16 @@
!include <$(HY_HDK)\build\make\defines.mak>
LIBBASE=hysecurity
-
-DLLNAME=$(DLLPATH)$(LIBBASE).dll
+DLLNAME=..\$(LIBBASE).dll
LIBNAME=$(LIBPATH)$(LIBBASE).lib
-
-HYLDFLAGS = $(HYLDFLAGS) -def:$(LIBBASE).def
-HYCFLAGS = $(HYCFLAGS) /I$(SHAREDSUB) /I$(SHARED)common /I..\zip \
- /I$(SHARED)fdlibm
-
BUILDFILES = security_copyright.obj getWindowsRandom.obj
-
VIRTFILES = $(LIBBASE).res
+HYLDFLAGS = $(HYLDFLAGS) -def:$(LIBBASE).def
SYSLIBFILES = ws2_32.lib Iphlpapi.lib
MDLLIBFILES = $(LIBPATH)hycommon.lib $(LIBPATH)hypool.lib
-
-DLLBASE=0x13900000
-
+DLLBASE=0x1300000
COMMENT=/comment:"Security component native code. (c) Copyright 2006 The Apache Software Foundation or its licensors, as applicable."
!include <$(HY_HDK)\build\make\rules.mak>
-
Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/impl/java/org/apache/harmony/security/tests/java/security/SecureRandom_ImplTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/impl/java/org/apache/harmony/security/tests/java/security/SecureRandom_ImplTest.java?rev=425315&r1=425314&r2=425315&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/impl/java/org/apache/harmony/security/tests/java/security/SecureRandom_ImplTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/impl/java/org/apache/harmony/security/tests/java/security/SecureRandom_ImplTest.java Tue Jul 25 00:27:21 2006
@@ -25,8 +25,6 @@
import java.security.Provider;
import java.security.SecureRandom;
import java.security.Security;
-import java.util.Arrays;
-import java.util.Random;
import junit.framework.TestCase;
@@ -88,25 +86,6 @@
}
/*
- * Class under test for void SecureRandom(byte[])
- */
- public final void testSecureRandombyteArray() {
- byte[] seed = {1,2,3,4,5,6,7,8};
- SecureRandom sr = new SecureRandom(seed);
-
- long l = 0;
- for (int i = 0; i < seed.length; i++) {
- l = (l << 8) | (seed[i] & 0xFF);
- }
- Random r = new Random(l);
- byte[] b1 = new byte[8];
- byte[] b2 = new byte[8];
- sr.nextBytes(b1);
- r.nextBytes(b2);
- assertTrue("incorrect random bytes", Arrays.equals(b1, b2));
- }
-
- /*
* Class under test for SecureRandom getInstance(String)
*/
public final void testGetInstanceString() {
@@ -122,8 +101,13 @@
}
public final void testGetAlgorithm() {
+ //test default implementation
SecureRandom sr = new SecureRandom();
- assertEquals("Incorrect algorithm", "java.util.Random", sr.getAlgorithm());
+ assertEquals("Incorrect algorithm", "SHA1PRNG", sr.getAlgorithm());
+ assertNull("Incorrect provider", sr.getProvider());
+
+ //just in case
+ sr.nextBytes(new byte[100]);
}
/*