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/05/02 13:08:55 UTC

svn commit: r398904 - in /incubator/harmony/enhanced/classlib/trunk/modules/security: make/common/ src/main/java/common/java/security/ src/test/java/common/tests/api/java/security/

Author: mloenko
Date: Tue May  2 04:08:53 2006
New Revision: 398904

URL: http://svn.apache.org/viewcvs?rev=398904&view=rev
Log:
fixes for HARMONY-430
security tests failures

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/security/make/common/build.xml
    incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/Security.java
    incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParameterGeneratorTest.java
    incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParametersTest.java
    incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/SecurityTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/make/common/build.xml
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/security/make/common/build.xml?rev=398904&r1=398903&r2=398904&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/make/common/build.xml (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/make/common/build.xml Tue May  2 04:08:53 2006
@@ -114,16 +114,15 @@
 
                     <!-- Harmony exclude list -->
                     <exclude name="java/security/serialization/KeyPairTest.java"/>
-                    <exclude name="java/security/serialization/AccessControlExceptionTest.java"/>
-                    <exclude name="java/security/serialization/InvalidParameterExceptionTest.java"/>
-
+                    <!-- Designed to run via classpath -->
                     <exclude name="tests/api/java/security/AccessControllerTest.java"/>
-                    <exclude name="tests/api/java/security/AlgorithmParameterGeneratorTest.java"/>
-                    <exclude name="tests/api/java/security/AlgorithmParametersTest.java"/>
+                    <!-- test excluded due BC bug -->
                     <exclude name="tests/api/java/security/KeyStoreTest.java"/>
-                    <exclude name="tests/api/java/security/PermissionCollectionTest.java"/>
+                    <!-- Designed to run via classpath -->
+                    <exclude name="tests/api/java/security/PermissionCollectionTest.java"/>                    
+                    <!-- No SHA1PRNG implementation yet -->
                     <exclude name="tests/api/java/security/SecureRandomTest.java"/>
-                    <exclude name="tests/api/java/security/SecurityTest.java"/>
+
                     <exclude name="tests/api/java/security/cert/CertificateFactoryTest.java"/>
                     <exclude name="tests/api/java/security/cert/X509CertificateTest.java"/>
                     <exclude name="tests/api/java/security/cert/X509CRLEntryTest.java"/>

Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/Security.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/Security.java?rev=398904&r1=398903&r2=398904&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/Security.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/src/main/java/common/java/security/Security.java Tue May  2 04:08:53 2006
@@ -306,10 +306,18 @@
                             "The fillter is not in the required format");
                 }
                 attribute = key.substring(i + 1);
+                if (attribute.trim().length() == 0) {
+                    throw new InvalidParameterException(
+                            "The fillter is not in the required format");
+                }
                 key = key.substring(0, i);
             }
             String serv = key.substring(0, j);
             String alg = key.substring(j + 1);
+            if (serv.length() == 0 || alg.length() == 0) {
+                throw new InvalidParameterException(
+                        "The fillter is not in the required format");
+            }
             Provider p;
             for (int k = 0; k < result.size(); k++) {
                 try {

Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParameterGeneratorTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParameterGeneratorTest.java?rev=398904&r1=398903&r2=398904&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParameterGeneratorTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParameterGeneratorTest.java Tue May  2 04:08:53 2006
@@ -18,6 +18,7 @@
 import java.math.BigInteger;
 import java.security.AlgorithmParameterGenerator;
 import java.security.AlgorithmParameters;
+import java.security.InvalidAlgorithmParameterException;
 import java.security.NoSuchProviderException;
 import java.security.Provider;
 import java.security.SecureRandom;
@@ -151,14 +152,19 @@
 	 * @tests java.security.AlgorithmParameterGenerator#init(java.security.spec.AlgorithmParameterSpec)
 	 */
 	public void test_initLjava_security_spec_AlgorithmParameterSpec() throws Exception {
-        	// Test for method void
-        	// java.security.AlgorithmParameterGenerator.init(java.security.spec.AlgorithmParameterSpec)
-        	// checks that no exception is thrown
-       		DSAParameterSpec spec = new DSAParameterSpec(BigInteger.ONE,
-       				BigInteger.ONE, BigInteger.ONE);
-       		AlgorithmParameterGenerator gen = AlgorithmParameterGenerator
-       				.getInstance("DSA");
-       		gen.init(spec);
+        // Test for method void
+        // java.security.AlgorithmParameterGenerator.init(java.security.spec.AlgorithmParameterSpec)
+        // checks that InvalidAlgorithmParameterException is thrown
+        DSAParameterSpec spec = new DSAParameterSpec(BigInteger.ONE,
+                BigInteger.ONE, BigInteger.ONE);
+        AlgorithmParameterGenerator gen = AlgorithmParameterGenerator
+                .getInstance("DSA");
+        try {
+            gen.init(spec);
+            fail("No expected InvalidAlgorithmParameterException");
+        } catch (InvalidAlgorithmParameterException e) {
+            //expected
+        }
 	}
 
 	/**
@@ -166,14 +172,19 @@
 	 *        java.security.SecureRandom)
 	 */
 	public void test_initLjava_security_spec_AlgorithmParameterSpecLjava_security_SecureRandom() throws Exception {
-		// Test for method void
-		// java.security.AlgorithmParameterGenerator.init(java.security.spec.AlgorithmParameterSpec,
-		// java.security.SecureRandom)
-        	// checks that no exception is thrown
-		DSAParameterSpec spec = new DSAParameterSpec(BigInteger.ONE,
-				BigInteger.ONE, BigInteger.ONE);
-		AlgorithmParameterGenerator gen = AlgorithmParameterGenerator
-				.getInstance("DSA");
-		gen.init(spec, new SecureRandom());
+        // Test for method void
+        // java.security.AlgorithmParameterGenerator.init(java.security.spec.AlgorithmParameterSpec,
+        // java.security.SecureRandom)
+        // checks that InvalidAlgorithmParameterException  is thrown
+        DSAParameterSpec spec = new DSAParameterSpec(BigInteger.ONE,
+                BigInteger.ONE, BigInteger.ONE);
+        AlgorithmParameterGenerator gen = AlgorithmParameterGenerator
+                .getInstance("DSA");
+        try {
+            gen.init(spec, new SecureRandom());
+            fail("No expected InvalidAlgorithmParameterException");
+        } catch (InvalidAlgorithmParameterException e) {
+            //expected
+        }
 	}
-}
\ No newline at end of file
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParametersTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParametersTest.java?rev=398904&r1=398903&r2=398904&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParametersTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/AlgorithmParametersTest.java Tue May  2 04:08:53 2006
@@ -62,24 +62,24 @@
 	/**
 	 * @tests java.security.AlgorithmParameters#getEncoded(java.lang.String)
 	 */
-	public void test_getEncodedLjava_lang_String() throws Exception {
-		// Test for method byte []
-		// java.security.AlgorithmParameters.getEncoded(java.lang.String)
-		AlgorithmParameters params = AlgorithmParameters.getInstance("DSA");
-
-		byte[] enc = null;
-		try {
-			params.init(new DSAParameterSpec(BigInteger.ONE, BigInteger.ONE,
-					BigInteger.ONE));
-			enc = params.getEncoded("JUNK");
-			fail("bogus format should have resulted in IOException");
-		} catch (IOException e) {
-			// expected
-		}
-
-		enc = params.getEncoded("ASN.1");
-		assertNotNull("ANS.1 should be supported", enc);
-	}
+    public void test_getEncodedLjava_lang_String() throws Exception {
+        // Test for method byte []
+        // java.security.AlgorithmParameters.getEncoded(java.lang.String)
+        AlgorithmParameters params = AlgorithmParameters.getInstance("DSA");
+
+        params.init(new DSAParameterSpec(BigInteger.ONE, BigInteger.ONE,
+                BigInteger.ONE));
+        
+        // getEncoded behavior is not specified for unknown 'format'
+        // different providers work in different manner:
+        // 1.5 RI provider uses primary encoding format,
+        // but BC provider returns null.
+        // As it is provider specific behavior - it is not tested.
+        //byte[] enc = params.getEncoded("JUNK");
+
+        byte[] enc = params.getEncoded("ASN.1");
+        assertNotNull("ANS.1 should be supported", enc);
+    }
 
 	/**
 	 * @tests java.security.AlgorithmParameters#getInstance(java.lang.String)
@@ -133,83 +133,58 @@
 	/**
 	 * @tests java.security.AlgorithmParameters#getProvider()
 	 */
-	public void test_getProvider() {
+	public void test_getProvider() throws Exception {
 		// Test for method java.security.Provider
 		// java.security.AlgorithmParameters.getProvider()
-		try {
-			Provider p = AlgorithmParameters.getInstance("DSA").getProvider();
-			assertNotNull("provider is null", p);
-		} catch (NoSuchAlgorithmException e) {
-			fail("getInstance did not find algorithm");
-		}
+        Provider p = AlgorithmParameters.getInstance("DSA").getProvider();
+        assertNotNull("provider is null", p);
+
 	}
 
 	/**
 	 * @tests java.security.AlgorithmParameters#init(byte[])
 	 */
-	public void test_init$B() {
+	public void test_init$B() throws Exception {
 		// Test for method void java.security.AlgorithmParameters.init(byte [])
-		try {
-			AlgorithmParameters params = AlgorithmParameters.getInstance("DSA");
-			params.init(new DSAParameterSpec(BigInteger.ONE, BigInteger.ONE,
-					BigInteger.ONE));
-			byte[] encoded = params.getEncoded();
-			assertNotNull("encoded spec is null", encoded);
-			AlgorithmParameters params2 = AlgorithmParameters
-					.getInstance("DSA");
-			params2.init(encoded);
-			byte[] encodedAfter = params2.getEncoded();
-			assertTrue("param encoded is different", Arrays.equals(encoded,
-					encodedAfter));
-		} catch (NoSuchAlgorithmException e) {
-			fail("getInstance did not find algorithm");
-		} catch (IOException e) {
-			fail("IOException getting encoded");
-		} catch (InvalidParameterSpecException e) {
-			fail("cant pass DSAParameterSpec");
-		}
+        AlgorithmParameters params = AlgorithmParameters.getInstance("DSA");
+        params.init(new DSAParameterSpec(BigInteger.ONE, BigInteger.ONE,
+                BigInteger.ONE));
+        byte[] encoded = params.getEncoded();
+        assertNotNull("encoded spec is null", encoded);
+        AlgorithmParameters params2 = AlgorithmParameters.getInstance("DSA");
+        params2.init(encoded);
+        byte[] encodedAfter = params2.getEncoded();
+        assertTrue("param encoded is different", Arrays.equals(encoded,
+                encodedAfter));
 	}
 
 	/**
 	 * @tests java.security.AlgorithmParameters#init(byte[], java.lang.String)
 	 */
-	public void test_init$BLjava_lang_String() {
+	public void test_init$BLjava_lang_String() throws Exception {
 		// Test for method void java.security.AlgorithmParameters.init(byte [],
 		// java.lang.String)
-		try {
-			AlgorithmParameters params = AlgorithmParameters.getInstance("DSA");
-			params.init(new DSAParameterSpec(BigInteger.ONE, BigInteger.ONE,
-					BigInteger.ONE));
-			byte[] encoded = params.getEncoded();
-			assertNotNull("encoded spec is null", encoded);
-			AlgorithmParameters params2 = AlgorithmParameters
-					.getInstance("DSA");
-			params2.init(encoded, "ASN.1");
-			byte[] encodedAfter = params2.getEncoded();
-			assertTrue("param encoded is different", Arrays.equals(encoded,
-					encodedAfter));
-		} catch (NoSuchAlgorithmException e) {
-			fail("getInstance did not find algorithm");
-		} catch (IOException e) {
-			fail("IOException getting encoded");
-		} catch (InvalidParameterSpecException e) {
-			fail("cant pass DSAParameterSpec");
-		}
+        AlgorithmParameters params = AlgorithmParameters.getInstance("DSA");
+        params.init(new DSAParameterSpec(BigInteger.ONE, BigInteger.ONE,
+                BigInteger.ONE));
+        byte[] encoded = params.getEncoded();
+        assertNotNull("encoded spec is null", encoded);
+        AlgorithmParameters params2 = AlgorithmParameters.getInstance("DSA");
+        params2.init(encoded, "ASN.1");
+        byte[] encodedAfter = params2.getEncoded();
+        assertTrue("param encoded is different", Arrays.equals(encoded,
+                encodedAfter));
 
 		try {
-			AlgorithmParameters params = AlgorithmParameters.getInstance("DSA");
+			params = AlgorithmParameters.getInstance("DSA");
 			params.init(new DSAParameterSpec(BigInteger.ONE, BigInteger.ONE,
 					BigInteger.ONE));
-			byte[] encoded = params.getEncoded();
+			encoded = params.getEncoded();
 			assertNotNull("encoded spec is null", encoded);
 			params.init(encoded, "DOUGLASMAWSON");
 			fail("unsupported format should have raised IOException");
-		} catch (NoSuchAlgorithmException e) {
-			fail("getInstance did not find algorithm");
 		} catch (IOException e) {
 			// expected
-		} catch (InvalidParameterSpecException e) {
-			fail("cant pass DSAParameterSpec");
 		}
 
 	}
@@ -217,36 +192,23 @@
 	/**
 	 * @tests java.security.AlgorithmParameters#init(java.security.spec.AlgorithmParameterSpec)
 	 */
-	public void test_initLjava_security_spec_AlgorithmParameterSpec() {
+	public void test_initLjava_security_spec_AlgorithmParameterSpec() throws Exception {
 		// Test for method void
 		// java.security.AlgorithmParameters.init(java.security.spec.AlgorithmParameterSpec)
 		AlgorithmParameters params = null;
-		try {
-			params = AlgorithmParameters.getInstance("DSA");
-		} catch (NoSuchAlgorithmException e) {
-			fail("getInstance did not find algorithm");
-		}
-
-		try {
-			params.init(new DSAParameterSpec(BigInteger.ONE, BigInteger.ONE,
-					BigInteger.ONE));
-		} catch (InvalidParameterSpecException e) {
-			fail("cant pass DSAParameterSpec");
-		}
+        params = AlgorithmParameters.getInstance("DSA");
+        params.init(new DSAParameterSpec(BigInteger.ONE, BigInteger.ONE,
+                BigInteger.ONE));
 	}
 
 	/**
 	 * @tests java.security.AlgorithmParameters#toString()
 	 */
-	public void test_toString() {
+	public void test_toString() throws Exception {
 		// Test for method java.lang.String
 		// java.security.AlgorithmParameters.toString()
-		try {
-			String str = AlgorithmParameters.getInstance("DSA").toString();
-			assertNull("toString should be null", str);
-		} catch (NoSuchAlgorithmException e) {
-			e.printStackTrace();
-			assertTrue("getInstance did not find algorithm", false);
-		}
+        String str = AlgorithmParameters.getInstance("DSA").toString();
+        assertNull("toString should be null", str);
+
 	}
-}
\ No newline at end of file
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/SecurityTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/SecurityTest.java?rev=398904&r1=398903&r2=398904&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/SecurityTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/security/src/test/java/common/tests/api/java/security/SecurityTest.java Tue May  2 04:08:53 2006
@@ -38,7 +38,6 @@
 		// java.security.Security.getProperty(java.lang.String)
 		Security.setProperty("keyTestAlternate", "testing a property set");
 		assertEquals("the property value returned for keyTestAlternate was incorrect",
-				
 						"testing a property set", Security.getProperty("keyTestAlternate"));
 	}
 
@@ -53,7 +52,6 @@
 
 		Security.setProperty("keyTest", "permission to set property");
 		assertEquals("the property value returned for keyTest was not correct",
-				
 						"permission to set property", Security.getProperty("keyTest"));
 
 	}
@@ -80,8 +78,6 @@
 			// providers.
 			assertTrue("provider is not found at the expected position",
 					provTest[prefPos - 1].getName().equals(rsaName));
-		} catch (Exception e) {
-			fail("Unexpected exception : " + e);
 		} finally {
 			// Now remove it - does nothing if provider not actually installed
 			Security.removeProvider(rsaName);
@@ -98,8 +94,6 @@
 					result2.getName().equals(test.getName())
 							&& result2.getInfo().equals(test.getInfo())
 							&& result2.getVersion() == test.getVersion());
-		} catch (Exception e) {
-			fail("Unexpected exception : " + e);
 		} finally {
 			// Now remove it - does nothing if provider not actually installed
 			Security.removeProvider(test.getName());
@@ -126,8 +120,6 @@
 			Security.getProviders();
 			assertEquals("addProvider method did not return a -1 for "
 					+ "a provider already added", -1, prefPosEntAdded);
-		} catch (Exception e) {
-			fail("Unexpected exception : " + e);
 		} finally {
 			// Now remove it - does nothing if provider not actually installed
 			Security.removeProvider(entrust.getName());
@@ -251,9 +243,6 @@
 			fail("InvalidParameterException should be thrown <Signature.SHA1withDSA :512>");
 		} catch (InvalidParameterException e) {
 			// Expected
-		} catch (Exception e) {
-			fail("<Signature.SHA1withDSA :512> - Expected InvalidParameterException but got a "
-					+ e);
 		}
 	}
 
@@ -415,13 +404,8 @@
 		filter = new Hashtable();
 		filter.put("Provider.id name", "DRLCertFactory");
 		provTest = Security.getProviders(filter);
-		if (provTest == null) {
-			assertEquals("Filter : <Provider.id name, DRLCertFactory >",
-					0, getProvidersCount(filter));
-		} else {
-			assertEquals("Filter : <Provider.id name, DRLCertFactory>",
-					getProvidersCount(filter), provTest.length);
-		}
+        assertEquals("Filter : <Provider.id name, DRLCertFactory >",
+                null, provTest);
 
 		// exception - no attribute name after the service.algorithm yet we
 		// still supply an expected value. This is not valid.
@@ -432,9 +416,6 @@
 			fail("InvalidParameterException should be thrown <Signature.SHA1withDSA><512>");
 		} catch (InvalidParameterException e) {
 			// Expected
-		} catch (Exception e) {
-			fail("InvalidParameterException was expected for"
-					+ " <Signature.SHA1withDSA><512> " + " but we got a " + e);
 		}
 
 		// exception - space character in the service.algorithm pair. Not valid.
@@ -445,9 +426,6 @@
 			fail("InvalidParameterException should be thrown <Signature. KeySize><512>");
 		} catch (InvalidParameterException e) {
 			// Expected
-		} catch (Exception e) {
-			fail("InvalidParameterException was expected for"
-					+ " <Signature. KeySize><512> " + " but we got a " + e);
 		}
 	}
 
@@ -478,8 +456,6 @@
 			int referAdded = Security.insertProviderAt(jceProvider, 3);
 			assertEquals("the method insertProviderAt did not "
 					+ "return a -1 for providers already added", -1, referAdded);
-		} catch (Exception e) {
-			fail("Unexpected exception : " + e);
 		} finally {
 			// Tidy up before we leave
 			Security.removeProvider(jceProvider.getName());
@@ -523,8 +499,6 @@
 						"the provider entrust is found after it was removed",
 						provTest[i].getName() != entrust.getName());
 			}
-		} catch (Exception e) {
-			fail("Unexpected exception : " + e);
 		} finally {
 			// Tidy up - the following calls do nothing if the providers were
 			// already removed above.