1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @author Vladimir N. Molotkov 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @version $Revision$ 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/ 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.security.cert; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertPathValidatorException; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.Certificate; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.PKIXCertPathChecker; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Collection; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashSet; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Set; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.tests.support.cert.MyCertificate; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.tests.support.cert.TestUtils; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests for <code>PKIXCertPathChecker</code> 39f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class PKIXCertPathCheckerTest extends TestCase { 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Tests 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testConstructor() { 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new MyPKIXCertPathChecker(); 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(Exception e) { 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception " + e.getMessage()); 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testClone() { 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PKIXCertPathChecker pc1 = TestUtils.getTestCertPathChecker(); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PKIXCertPathChecker pc2 = (PKIXCertPathChecker) pc1.clone(); 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotSame("notSame", pc1, pc2); 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // the following tests just call methods 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // that are abstract in <code>PKIXCertPathChecker</code> 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // (So they just like signature tests) 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testIsForwardCheckingSupported() { 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PKIXCertPathChecker pc = TestUtils.getTestCertPathChecker(); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pc.isForwardCheckingSupported(); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testInit() 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws CertPathValidatorException { 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PKIXCertPathChecker pc = TestUtils.getTestCertPathChecker(); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pc.init(true); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testGetSupportedExtensions() { 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PKIXCertPathChecker pc = TestUtils.getTestCertPathChecker(); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pc.getSupportedExtensions(); 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testCheck() throws CertPathValidatorException { 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PKIXCertPathChecker pc = TestUtils.getTestCertPathChecker(); 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pc.check(new MyCertificate("", null), new HashSet<String>()); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class MyPKIXCertPathChecker extends PKIXCertPathChecker { 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public MyPKIXCertPathChecker() { 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(); 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void check(Certificate cert, 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Collection<String> unresolvedCritExts) 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws CertPathValidatorException { 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Set<String> getSupportedExtensions() { 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void init(boolean forward) throws CertPathValidatorException { 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isForwardCheckingSupported() { 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 111