Home | History | Annotate | Download | only in ssl
      1 /*
      2  *  Licensed to the Apache Software Foundation (ASF) under one or more
      3  *  contributor license agreements.  See the NOTICE file distributed with
      4  *  this work for additional information regarding copyright ownership.
      5  *  The ASF licenses this file to You under the Apache License, Version 2.0
      6  *  (the "License"); you may not use this file except in compliance with
      7  *  the License.  You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  */
     17 
     18 package javax.net.ssl;
     19 
     20 import java.security.InvalidAlgorithmParameterException;
     21 import java.security.KeyStore;
     22 import java.security.KeyStoreException;
     23 
     24 /**
     25  * The <i>Service Provider Interface</i> (SPI) for the
     26  * {@code TrustManagerFactory} class.
     27  */
     28 public abstract class TrustManagerFactorySpi {
     29 
     30     /**
     31      * Creates a new {@code TrustManagerFactorySpi} instance.
     32      */
     33     public TrustManagerFactorySpi() {
     34         super();
     35     }
     36 
     37     /**
     38      * Initializes this factory instance with the specified keystore as source
     39      * of certificate authorities and trust material.
     40      *
     41      * @param ks
     42      *            the keystore or {@code null}.
     43      * @throws KeyStoreException
     44      *             if the initialization fails.
     45      */
     46     protected abstract void engineInit(KeyStore ks) throws KeyStoreException;
     47 
     48     /**
     49      * Initializes this factory instance with the specified provider-specific
     50      * parameters for a source of trust material.
     51      *
     52      * @param spec
     53      *            the provider-specific parameters.
     54      * @throws InvalidAlgorithmParameterException
     55      *             if the initialization fails.
     56      */
     57     protected abstract void engineInit(ManagerFactoryParameters spec)
     58             throws InvalidAlgorithmParameterException;
     59 
     60     /**
     61      * Returns the list of {@code TrustManager}s with one entry for each type
     62      * of trust material.
     63      *
     64      * @return the list of {@code TrustManager}s
     65      */
     66     protected abstract TrustManager[] engineGetTrustManagers();
     67 }
     68