| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /** |
| * @author Vladimir N. Molotkov |
| * @version $Revision$ |
| */ |
| |
| package libcore.java.security.cert; |
| |
| import dalvik.annotation.BrokenTest; |
| import java.io.ByteArrayInputStream; |
| import java.security.InvalidAlgorithmParameterException; |
| import java.security.KeyStore; |
| import java.security.KeyStoreException; |
| import java.security.cert.CertificateFactory; |
| import java.security.cert.PKIXParameters; |
| import java.security.cert.TrustAnchor; |
| import java.util.Calendar; |
| import java.util.Collections; |
| import java.util.Set; |
| import junit.framework.TestCase; |
| import org.apache.harmony.security.tests.support.cert.TestUtils; |
| import tests.targets.security.KeyStoreTestPKCS12; |
| |
| /** |
| * Tests for <code>PKIXParameters</code> fields and methods |
| */ |
| public class OldPKIXParametersTest extends TestCase { |
| |
| public final void testClone() throws InvalidAlgorithmParameterException { |
| Set<TrustAnchor> taSet = TestUtils.getTrustAnchorSet(); |
| if (taSet == null) { |
| fail(getName() |
| + ": not performed (could not create test TrustAnchor set)"); |
| } |
| |
| PKIXParameters cpp = new PKIXParameters(taSet); |
| PKIXParameters cppc = (PKIXParameters) cpp.clone(); |
| |
| assertEquals(cpp.getPolicyQualifiersRejected(), cppc |
| .getPolicyQualifiersRejected()); |
| assertEquals(cpp.getCertPathCheckers(), cppc.getCertPathCheckers()); |
| assertEquals(cpp.getCertStores(), cppc.getCertStores()); |
| assertEquals(cpp.getDate(), cppc.getDate()); |
| assertEquals(cpp.getInitialPolicies(), cppc.getInitialPolicies()); |
| assertEquals(cpp.getSigProvider(), cppc.getSigProvider()); |
| assertEquals(cpp.getTargetCertConstraints(), cppc |
| .getTargetCertConstraints()); |
| assertEquals(cpp.getTrustAnchors(), cppc.getTrustAnchors()); |
| |
| assertEquals(cpp.isAnyPolicyInhibited(), cppc.isAnyPolicyInhibited()); |
| assertEquals(cpp.isExplicitPolicyRequired(), cppc |
| .isExplicitPolicyRequired()); |
| assertEquals(cpp.isPolicyMappingInhibited(), cppc |
| .isPolicyMappingInhibited()); |
| assertEquals(cpp.isRevocationEnabled(), cppc.isRevocationEnabled()); |
| |
| cpp.setDate(Calendar.getInstance().getTime()); |
| cpp.setPolicyQualifiersRejected(!cppc.getPolicyQualifiersRejected()); |
| assertFalse(cpp.getDate().equals(cppc.getDate())); |
| assertFalse(cpp.getPolicyQualifiersRejected() == cppc |
| .getPolicyQualifiersRejected()); |
| |
| cppc.setExplicitPolicyRequired(!cpp.isExplicitPolicyRequired()); |
| cppc.setRevocationEnabled(!cpp.isRevocationEnabled()); |
| |
| assertFalse(cpp.isExplicitPolicyRequired() == cppc |
| .isExplicitPolicyRequired()); |
| assertFalse(cpp.isRevocationEnabled() == cppc.isRevocationEnabled()); |
| |
| PKIXParameters cpp1 = null; |
| try { |
| cpp1.clone(); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * Test for <code>isPolicyMappingInhibited()</code> method<br> |
| * Assertion: returns true if policy mapping is inhibited, false otherwise |
| * Assertion: by default, policy mapping is not inhibited (the flag is |
| * false) |
| * |
| * @throws InvalidAlgorithmParameterException |
| */ |
| public final void testIsPolicyMappingInhibited() throws Exception { |
| Set<TrustAnchor> taSet = TestUtils.getTrustAnchorSet(); |
| if (taSet == null) { |
| fail(getName() + ": not performed (could not create test TrustAnchor set)"); |
| } |
| |
| PKIXParameters p = new PKIXParameters(taSet); |
| assertFalse(p.isPolicyMappingInhibited()); |
| |
| CertificateFactory cf = CertificateFactory.getInstance("X.509"); |
| TestUtils.initCertPathSSCertChain(); |
| Set<TrustAnchor> taSet2 = Collections.singleton(new TrustAnchor( |
| TestUtils.rootCertificateSS, null)); |
| p = new PKIXParameters(taSet2); |
| |
| assertFalse(p.isPolicyMappingInhibited()); |
| p.setPolicyMappingInhibited(true); |
| assertTrue(p.isRevocationEnabled()); |
| } |
| |
| /** |
| * Test for <code>isPolicyMappingInhibited()</code> method<br> |
| * Assertion: returns the current value of the RevocationEnabled flag |
| * Assertion: when a <code>PKIXParameters</code> object is created, this |
| * flag is set to true |
| * |
| * @throws InvalidAlgorithmParameterException |
| */ |
| public final void testIsRevocationEnabled() throws Exception { |
| Set<TrustAnchor> taSet = TestUtils.getTrustAnchorSet(); |
| if (taSet == null) { |
| fail(getName() |
| + ": not performed (could not create test TrustAnchor set)"); |
| } |
| |
| PKIXParameters p = new PKIXParameters(taSet); |
| assertTrue(p.isRevocationEnabled()); |
| |
| CertificateFactory cf = CertificateFactory.getInstance("X.509"); |
| TestUtils.initCertPathSSCertChain(); |
| Set<TrustAnchor> taSet2 = Collections.singleton(new TrustAnchor( |
| TestUtils.rootCertificateSS, null)); |
| p = new PKIXParameters(taSet2); |
| |
| assertTrue(p.isRevocationEnabled()); |
| p.setRevocationEnabled(false); |
| assertFalse(p.isRevocationEnabled()); |
| } |
| |
| /** |
| * Test for <code>toString</code> method<br> |
| */ |
| public final void testToString() throws Exception { |
| Set<TrustAnchor> taSet = TestUtils.getTrustAnchorSet(); |
| if (taSet == null) { |
| fail(getName() |
| + ": not performed (could not create test TrustAnchor set)"); |
| } |
| |
| PKIXParameters p = new PKIXParameters(taSet); |
| assertNotNull(p.toString()); |
| |
| PKIXParameters p1 = null; |
| try { |
| p1.toString(); |
| fail("NullPointerException expected"); |
| } catch (NullPointerException e) { |
| // expected |
| } |
| } |
| |
| /** |
| * Test #4 for <code>PKIXParameters(KeyStore)</code> constructor<br> |
| * |
| * @throws InvalidAlgorithmParameterException |
| * @throws KeyStoreException |
| */ |
| @BrokenTest("Fails in CTS environment, but passes in CoreTestRunner") |
| public final void testPKIXParametersKeyStore04() throws Exception { |
| |
| |
| KeyStore store = KeyStore.getInstance("PKCS12"); |
| KeyStoreTestPKCS12 k = new KeyStoreTestPKCS12(); |
| ByteArrayInputStream stream = new ByteArrayInputStream(k.keyStoreData); |
| |
| try { |
| PKIXParameters p = new PKIXParameters(store); |
| } catch (KeyStoreException e) { |
| // ok |
| } |
| |
| store = KeyStore.getInstance("PKCS12"); |
| store.load(stream, new String(KeyStoreTestPKCS12.keyStorePassword) |
| .toCharArray()); |
| stream.close(); |
| |
| try { |
| PKIXParameters p = new PKIXParameters(store); |
| } catch (InvalidAlgorithmParameterException e) { |
| // ok |
| } |
| |
| |
| KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); |
| keystore.load(null,null); |
| keystore.setCertificateEntry("test", TestUtils.rootCertificateSS); |
| |
| |
| PKIXParameters p = new PKIXParameters(keystore); |
| } |
| } |