public abstract class CertificateFactorySpi extends Object
CertificateFactory
class. All
the abstract methods in this class must be implemented by each cryptographic service provider who wishes to supply
the implementation of a certificate factory for a particular certificate type, e.g., X.509.
Certificate factories are used to generate certificate, certification path (CertPath
) and certificate
revocation list (CRL) objects from their encodings.
A certificate factory for X.509 must return certificates that are an instance of
java.security.cert.X509Certificate
, and CRLs that are an instance of java.security.cert.X509CRL
.
CertificateFactory
,
Certificate
,
X509Certificate
Constructor and Description |
---|
CertificateFactorySpi() |
Modifier and Type | Method and Description |
---|---|
abstract Certificate |
engineGenerateCertificate(InputStream inStream)
Generates a certificate object and initializes it with the data read from the input stream
inStream . |
public abstract Certificate engineGenerateCertificate(InputStream inStream) throws CertificateException
inStream
.
In order to take advantage of the specialized certificate format supported by this certificate factory, the
returned certificate object can be typecast to the corresponding certificate class. For example, if this
certificate factory implements X.509 certificates, the returned certificate object can be typecast to the
X509Certificate
class.
In the case of a certificate factory for X.509 certificates, the certificate provided in inStream
must be
DER-encoded and may be supplied in binary or printable (Base64) encoding. If the certificate is provided in
Base64 encoding, it must be bounded at the beginning by -----BEGIN CERTIFICATE-----, and must be bounded at the
end by -----END CERTIFICATE-----.
Note that if the given input stream does not support mark
and
reset
, this method will consume the entire input stream. Otherwise, each call
to this method consumes one certificate and the read position of the input stream is positioned to the next
available byte after the inherent end-of-certificate marker. If the data in the input stream does not contain an
inherent end-of-certificate marker (other than EOF) and there is trailing data after the certificate is parsed, a
CertificateException
is thrown.
inStream
- an input stream with the certificate data.CertificateException
- on parsing errors.