java.security.cert
Class CertificateFactorySpi

java.lang.Object
  extended by java.security.cert.CertificateFactorySpi

public abstract class CertificateFactorySpi
extends Object

CertificateFactorySpi is the abstract class Service Provider Interface (SPI) for the CertificateFactory class. A provider must implement all the abstract methods if they wish to supply a certificate factory for a particular certificate type. Ex: X.509 Certificate factories are used to generate certificates and certificate revocation lists (CRL) from their encoding.

Since:
1.2

Constructor Summary
CertificateFactorySpi()
          Constructs a new CertificateFactorySpi
 
Method Summary
abstract  Certificate engineGenerateCertificate(InputStream inStream)
          Generates a Certificate based on the encoded data read from the InputStream.
abstract  Collection<? extends Certificate> engineGenerateCertificates(InputStream inStream)
          Returns a collection of certificates that were read from the input stream.
 CertPath engineGenerateCertPath(InputStream inStream)
          Generate a CertPath and initialize it with data parsed from the input stream.
 CertPath engineGenerateCertPath(InputStream inStream, String encoding)
          Generate a CertPath and initialize it with data parsed from the input stream, using the specified encoding.
 CertPath engineGenerateCertPath(List<? extends Certificate> certificates)
          Generate a CertPath and initialize it with the certificates in the List argument.
abstract  CRL engineGenerateCRL(InputStream inStream)
          Generates a CRL based on the encoded data read from the InputStream.
abstract  Collection<? extends CRL> engineGenerateCRLs(InputStream inStream)
          Generates CRLs based on the encoded data read from the InputStream.
 Iterator<String> engineGetCertPathEncodings()
          Returns an Iterator of CertPath encodings supported by this factory, with the default encoding first.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CertificateFactorySpi

public CertificateFactorySpi()
Constructs a new CertificateFactorySpi

Method Detail

engineGenerateCertificate

public abstract Certificate engineGenerateCertificate(InputStream inStream)
                                               throws CertificateException
Generates a Certificate based on the encoded data read from the InputStream. The input stream must contain only one certificate. If there exists a specialized certificate class for the certificate format handled by the certificate factory then the return Ceritificate should be a typecast of it. Ex: A X.509 CertificateFactory should return X509Certificate. For X.509 certificates, the certificate in inStream must be DER encoded and supplied in binary or printable (Base64) encoding. If the certificate is in Base64 encoding, it must be bounded by -----BEGIN CERTIFICATE-----, and -----END CERTIFICATE-----.

Parameters:
inStream - an input stream containing the certificate data
Returns:
a certificate initialized with InputStream data.
Throws:
CertificateException - Certificate parsing error

engineGenerateCertificates

public abstract Collection<? extends Certificate> engineGenerateCertificates(InputStream inStream)
                                                                      throws CertificateException
Returns a collection of certificates that were read from the input stream. It may be empty, have only one, or have multiple certificates. For a X.509 certificate factory, the stream may contain a single DER encoded certificate or a PKCS#7 certificate chain. This is a PKCS#7 SignedData object with the most significant field being certificates. If no CRLs are present, then an empty collection is returned.

Parameters:
inStream - an input stream containing the certificates
Returns:
a collection of certificates initialized with the InputStream data.
Throws:
CertificateException - Certificate parsing error

engineGenerateCRL

public abstract CRL engineGenerateCRL(InputStream inStream)
                               throws CRLException
Generates a CRL based on the encoded data read from the InputStream. The input stream must contain only one CRL. If there exists a specialized CRL class for the CRL format handled by the certificate factory then the return CRL should be a typecast of it. Ex: A X.509 CertificateFactory should return X509CRL.

Parameters:
inStream - an input stream containing the CRL data
Returns:
a CRL initialized with InputStream data.
Throws:
CRLException - CRL parsing error

engineGenerateCRLs

public abstract Collection<? extends CRL> engineGenerateCRLs(InputStream inStream)
                                                      throws CRLException
Generates CRLs based on the encoded data read from the InputStream. For a X.509 certificate factory, the stream may contain a single DER encoded CRL or a PKCS#7 CRL set. This is a PKCS#7 SignedData object with the most significant field being crls. If no CRLs are present, then an empty collection is returned.

Parameters:
inStream - an input stream containing the CRLs
Returns:
a collection of CRLs initialized with the InputStream data.
Throws:
CRLException - CRL parsing error

engineGenerateCertPath

public CertPath engineGenerateCertPath(InputStream inStream)
                                throws CertificateException
Generate a CertPath and initialize it with data parsed from the input stream. The default encoding of this factory is used.

Parameters:
inStream - The InputStream containing the CertPath data.
Returns:
A CertPath initialized from the input stream data.
Throws:
CertificateException - If an error occurs decoding the CertPath.

engineGenerateCertPath

public CertPath engineGenerateCertPath(InputStream inStream,
                                       String encoding)
                                throws CertificateException
Generate a CertPath and initialize it with data parsed from the input stream, using the specified encoding.

Parameters:
inStream - The InputStream containing the CertPath data.
encoding - The encoding of the InputStream data.
Returns:
A CertPath initialized from the input stream data.
Throws:
CertificateException - If an error occurs decoding the CertPath.

engineGenerateCertPath

public CertPath engineGenerateCertPath(List<? extends Certificate> certificates)
                                throws CertificateException
Generate a CertPath and initialize it with the certificates in the List argument.

Parameters:
certificates - The list of certificates with which to create the CertPath.
Returns:
A CertPath initialized from the certificates.
Throws:
CertificateException - If an error occurs generating the CertPath.

engineGetCertPathEncodings

public Iterator<String> engineGetCertPathEncodings()
Returns an Iterator of CertPath encodings supported by this factory, with the default encoding first. The returned Iterator cannot be modified.

Returns:
The Iterator of supported encodings.