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 Projectpackage java.security.cert; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.InvalidAlgorithmParameterException; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The <i>Service Provider Interface</i> (<b>SPI</b>) for the {@code 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * CertPathValidator} class to be implemented by security providers. 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic abstract class CertPathValidatorSpi { 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Creates a new {@code CertPathValidatorSpi} instance. 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public CertPathValidatorSpi() { 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Validates the {@code CertPath} with the algorithm of this {@code 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * CertPathValidator} using the specified algorithm parameters. 372f9e468ed4985edfd5e351faf2089d91e561e41dElliott Hughes * 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param certPath 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the certification path to be validated. 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param params 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the certification path validator algorithm parameters. 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the validation result. 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws CertPathValidatorException 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if the validation fails, or the algorithm of the specified 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * certification path cannot be validated using the algorithm of 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this instance. 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws InvalidAlgorithmParameterException 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if the specified algorithm parameters cannot be used with 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this algorithm. 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public abstract CertPathValidatorResult engineValidate(CertPath certPath, 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project CertPathParameters params) throws CertPathValidatorException, 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InvalidAlgorithmParameterException; 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 552f9e468ed4985edfd5e351faf2089d91e561e41dElliott Hughes} 56