CertPathValidatorTest.java revision f979bbd1277c77ca945ad981e7864fb4e9f6ae05
188d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann/*
288d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann * Copyright (C) 2009 The Android Open Source Project
388d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann *
488d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann * Licensed under the Apache License, Version 2.0 (the "License");
588d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann * you may not use this file except in compliance with the License.
688d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann * You may obtain a copy of the License at
788d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann *
888d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann *     http://www.apache.org/licenses/LICENSE-2.0
988d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann *
1088d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann * Unless required by applicable law or agreed to in writing, software
1188d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann * distributed under the License is distributed on an "AS IS" BASIS,
1288d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1388d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann * See the License for the specific language governing permissions and
1488d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann * limitations under the License.
1588d31c7bb167fd2516bc82a99386cf8e66f28b47Jorg Pleumann */
16f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonpackage tests.security;
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestLevel;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetNew;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargets;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertPath;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertPathParameters;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertPathValidator;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertPathValidatorResult;
25f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilsonimport junit.framework.TestCase;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic abstract class CertPathValidatorTest extends TestCase {
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private final String algorithmName;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public CertPathValidatorTest(String algorithmName) {
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        this.algorithmName = algorithmName;
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
36f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson    public abstract CertPathParameters getParams();
37f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson    public abstract CertPath getCertPath();
38f979bbd1277c77ca945ad981e7864fb4e9f6ae05Jesse Wilson    public abstract void validateResult(CertPathValidatorResult validatorResult);
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                level=TestLevel.ADDITIONAL,
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                method="getInstance",
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                args={String.class}
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                level=TestLevel.ADDITIONAL,
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                method="validate",
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                args={CertPath.class, CertPathParameters.class}
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                level=TestLevel.COMPLETE,
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                method="method",
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                args={}
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
5787eb4de6347e1be029cde77dd43ad9b1af901472Urs Grob    public void testCertPathValidator() throws Exception {
5887eb4de6347e1be029cde77dd43ad9b1af901472Urs Grob        CertPathValidator certPathValidator = CertPathValidator.getInstance(
5987eb4de6347e1be029cde77dd43ad9b1af901472Urs Grob                algorithmName);
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
6187eb4de6347e1be029cde77dd43ad9b1af901472Urs Grob        CertPathValidatorResult validatorResult = certPathValidator.validate(
6287eb4de6347e1be029cde77dd43ad9b1af901472Urs Grob                getCertPath(), getParams());
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        validateResult(validatorResult);
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
69