public abstract class CertificateFactorySpi
extends Object
java.lang.Object | |
↳ | java.security.cert.CertificateFactorySpi |
该类定义了CertificateFactory
类的 ( SPI )。 该类中的所有抽象方法都必须由每个希望为特定证书类型(例如X.509)提供证书工厂实现的加密服务提供者实现。
证书工厂用于从其编码生成证书,证书路径( CertPath
)和证书撤销列表(CRL)对象。
X.509的证书工厂必须返回 java.security.cert.X509Certificate
实例的 java.security.cert.X509Certificate
和 java.security.cert.X509CRL
实例的 java.security.cert.X509CRL
。
Public constructors |
|
---|---|
CertificateFactorySpi() |
Public methods |
|
---|---|
abstract CRL |
engineGenerateCRL(InputStream inStream) 生成证书撤销列表(CRL)对象,并使用从输入流 |
abstract Collection<? extends CRL> |
engineGenerateCRLs(InputStream inStream) 返回从给定输入流 |
CertPath |
engineGenerateCertPath(InputStream inStream, String encoding) 生成一个 |
CertPath |
engineGenerateCertPath(List<? extends Certificate> certificates) 生成一个 |
CertPath |
engineGenerateCertPath(InputStream inStream) 生成一个 |
abstract Certificate |
engineGenerateCertificate(InputStream inStream) 生成一个证书对象并使用从输入流 |
abstract Collection<? extends Certificate> |
engineGenerateCertificates(InputStream inStream) 返回从给定输入流 |
Iterator<String> |
engineGetCertPathEncodings() 返回此证书工厂支持的 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
CRL engineGenerateCRL (InputStream inStream)
生成证书撤销列表(CRL)对象,并使用从输入流 inStream
读取的数据对其进行初始化。
为了利用此证书工厂支持的专用CRL格式,可将返回的CRL对象类型化为相应的CRL类。 例如,如果此证书工厂实现了X.509 CRL,则返回的CRL对象可以类型X509CRL
类。
请注意,如果给定的输入流不支持mark
和reset
,则此方法将消耗整个输入流。 否则,对此方法的每次调用都会消耗一个CRL,并且输入流的读取位置将定位到固有的CRL结束标记之后的下一个可用字节。 如果输入流中的数据不包含固有的CRL结束标记(EOF除外),并且在解析CRL之后存在尾随数据, CRLException
引发CRLException
。
Parameters | |
---|---|
inStream |
InputStream : an input stream with the CRL data. |
Returns | |
---|---|
CRL |
a CRL object initialized with the data from the input stream. |
Throws | |
---|---|
CRLException |
on parsing errors. |
Collection<? extends CRL> engineGenerateCRLs (InputStream inStream)
返回从给定输入流 inStream
读取的CRL的(可能为空)集合视图。
为了利用此证书工厂支持的专用CRL格式,可以将返回的集合视图中的每个元素类型化为相应的CRL类。 例如,如果此证书工厂实现了X.509 CRL,则返回集合中的元素可以类型X509CRL
类。
对于X.509 CRL的证书工厂, inStream
可能包含一个DER编码的CRL。 另外, inStream
可能包含一个PKCS#7 CRL集。 这是一个PKCS#7 签名数据对象,唯一重要的字段是crls 。 特别是,签名和内容被忽略。 这种格式允许一次下载多个CRL。 如果不存在CRL,则返回空集合。
请注意,如果给定的输入流不支持 mark
和 reset
,则此方法将消耗整个输入流。
Parameters | |
---|---|
inStream |
InputStream : the input stream with the CRLs. |
Returns | |
---|---|
Collection<? extends CRL> |
a (possibly empty) collection view of java.security.cert.CRL objects initialized with the data from the input stream. |
Throws | |
---|---|
CRLException |
on parsing errors. |
CertPath engineGenerateCertPath (InputStream inStream, String encoding)
生成一个CertPath
对象,并使用从InputStream
inStream中读取的数据对它进行初始化。 假定数据是在指定的编码中。
此方法已添加到Java 2 Platform Standard Edition的1.4版本中。 为了保持与现有服务提供商的向后兼容性,此方法不能为abstract
并且默认情况下会引发UnsupportedOperationException
。
Parameters | |
---|---|
inStream |
InputStream : an InputStream containing the data |
encoding |
String : the encoding used for the data |
Returns | |
---|---|
CertPath |
a CertPath initialized with the data from the InputStream |
Throws | |
---|---|
CertificateException |
if an exception occurs while decoding or the encoding requested is not supported |
UnsupportedOperationException |
if the method is not supported |
CertPath engineGenerateCertPath (List<? extends Certificate> certificates)
生成一个 CertPath
对象并用 List
的 Certificate
s对其进行初始化。
提供的证书必须是CertificateFactory
支持的类型。 它们将从提供的List
对象中复制出来。
此方法已添加到Java 2 Platform Standard Edition的1.4版本中。 为了保持与现有服务提供商的向后兼容性,此方法不能为abstract
并且默认情况下会引发UnsupportedOperationException
。
Parameters | |
---|---|
certificates |
List : a List of Certificate s |
Returns | |
---|---|
CertPath |
a CertPath initialized with the supplied list of certificates |
Throws | |
---|---|
CertificateException |
if an exception occurs |
UnsupportedOperationException |
if the method is not supported |
CertPath engineGenerateCertPath (InputStream inStream)
生成一个CertPath
对象,并使用从InputStream
inStream中读取的数据对它进行初始化。 数据被假定为默认编码。
此方法已添加到Java 2 Platform Standard Edition的1.4版本中。 为了保持与现有服务提供商的向后兼容性,此方法不能为abstract
并且默认情况下会引发UnsupportedOperationException
。
Parameters | |
---|---|
inStream |
InputStream : an InputStream containing the data |
Returns | |
---|---|
CertPath |
a CertPath initialized with the data from the InputStream |
Throws | |
---|---|
CertificateException |
if an exception occurs while decoding |
UnsupportedOperationException |
if the method is not supported |
Certificate engineGenerateCertificate (InputStream inStream)
生成一个证书对象并使用从输入流 inStream
读取的数据初始化它。
为了利用此证书工厂支持的专用证书格式,可以将返回的证书对象转换为相应的证书类别。 例如,如果此证书工厂实现了X.509证书,则返回的证书对象可以类型X509Certificate
类。
对于X.509证书的证书工厂, inStream
提供的证书必须是DER编码的,并且可以采用二进制或可打印(Base64)编码。 如果证书是以Base64编码提供的,则它必须以----- BEGIN CERTIFICATE -----开始,并且必须以----- END CERTIFICATE -----结尾。 。
请注意,如果给定的输入流不支持mark
和reset
,则此方法将消耗整个输入流。 否则,每次调用此方法都会消耗一个证书,并且输入流的读取位置将位于固有的证书结束标记之后的下一个可用字节。 如果输入流中的数据不包含固有的证书结束标记(EOF除外),并且在解析证书后存在尾随数据, CertificateException
引发CertificateException
。
Parameters | |
---|---|
inStream |
InputStream : an input stream with the certificate data. |
Returns | |
---|---|
Certificate |
a certificate object initialized with the data from the input stream. |
Throws | |
---|---|
CertificateException |
on parsing errors. |
Collection<? extends Certificate> engineGenerateCertificates (InputStream inStream)
返回从给定输入流 inStream
读取的证书的集合视图(可能为空)。
为了利用此证书工厂支持的专用证书格式,可以将返回的集合视图中的每个元素转换为相应的证书类别。 例如,如果此证书工厂实现了X.509证书,则返回集合中的元素可以类型X509Certificate
类。
对于X.509证书的证书工厂, inStream
可能包含单个DER编码的证书,其格式为generateCertificate
。 另外, inStream
可能包含PKCS#7证书链。 这是一个PKCS#7 签名数据对象,唯一重要的字段是证书 。 特别是,签名和内容被忽略。 这种格式允许一次下载多个证书。 如果没有证书,则返回空集合。
请注意,如果给定的输入流不支持 mark
和 reset
,则此方法将消耗整个输入流。
Parameters | |
---|---|
inStream |
InputStream : the input stream with the certificates. |
Returns | |
---|---|
Collection<? extends Certificate> |
a (possibly empty) collection view of java.security.cert.Certificate objects initialized with the data from the input stream. |
Throws | |
---|---|
CertificateException |
on parsing errors. |
Iterator<String> engineGetCertPathEncodings ()
返回此证书工厂支持的CertPath
编码的迭代,首先使用默认编码。 有关标准编码名称的信息,请参阅Java Cryptography Architecture Standard Algorithm Name Documentation中的CertPath编码部分。
试图通过其 remove
方法修改返回的 Iterator
导致 UnsupportedOperationException
。
此方法已添加到Java 2 Platform Standard Edition的1.4版本中。 为了保持与现有服务提供商的向后兼容性,此方法不能为abstract
并且默认情况下会引发UnsupportedOperationException
。
Returns | |
---|---|
Iterator<String> |
an Iterator over the names of the supported CertPath encodings (as String s) |
Throws | |
---|---|
UnsupportedOperationException |
if the method is not supported |