java.lang.Object java.security.cert.CertificateFactorySpi
public abstract class CertificateFactorySpi
此类定义了 CertificateFactory
类的服务提供者接口 (SPI)。希望为特定的证书类型(如 X.509)提供 CertificateFactory 实现的每个加密服务提供者都必须实现此类中的所有抽象方法。
CertificateFactory 用于根据相关的编码生成证书、证书路径 (CertPath
) 和证书撤消列表 (CRL) 对象。
X.509 的 CertificateFactory 返回的证书必须是 java.security.cert.X509Certificate
的实例,CRL 的 CertificateFactory 返回的证书则必须是 java.security.cert.X509CRL
的实例。
CertificateFactory
,
Certificate
,
X509Certificate
,
CertPath
,
CRL
,
X509CRL
构造方法摘要 | |
---|---|
CertificateFactorySpi() |
方法摘要 | |
---|---|
abstract Certificate |
engineGenerateCertificate(InputStream inStream) 生成一个证书对象并使用从输入流 inStream 中读取的数据对它进行初始化。 |
abstract Collection<? extends Certificate> |
engineGenerateCertificates(InputStream inStream) 返回从给定输入流 inStream 中读取的证书的集合视图(可能为空)。 |
CertPath |
engineGenerateCertPath(InputStream inStream) 生成一个 CertPath 对象,并使用从 InputStream inStream 中读取的数据对它进行初始化。 |
CertPath |
engineGenerateCertPath(InputStream inStream, String encoding) 生成一个 CertPath 对象,并使用从 InputStream inStream 中读取的数据对它进行初始化。 |
CertPath |
engineGenerateCertPath(List<? extends Certificate> certificates) 生成一个 CertPath 对象,并使用 Certificate 的 List 对它进行初始化。 |
abstract CRL |
engineGenerateCRL(InputStream inStream) 生成一个证书撤消列表 (CRL) 对象,并使用从输入流 inStream 中读取的数据对它进行初始化。 |
abstract Collection<? extends CRL> |
engineGenerateCRLs(InputStream inStream) 返回从给定输入流 inStream 中读取的 CRL 的集合视图(可能为空)。 |
Iterator<String> |
engineGetCertPathEncodings() 返回此 CertificateFactory 支持的 CertPath 编码的迭代器,默认编码方式优先。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public CertificateFactorySpi()
方法详细信息 |
---|
public abstract Certificate engineGenerateCertificate(InputStream inStream) throws CertificateException
inStream
中读取的数据对它进行初始化。
为了利用此 CertificateFactory 所支持的专门的证书格式,可将返回的证书对象的类型强制转换为相应的证书类。例如,如果此 CertificateFactory 实现 X.509 证书,则可将返回的证书对象的类型强制转换为 X509Certificate
类。
在用于 X.509 证书的 CertificateFactory 情况中,inStream
中提供的证书必须是 DER 编码的,并且可以二进制或可打印的 (Base64) 编码形式提供。如果以 Base64 编码的形式提供该证书,则该证书必须由 -----BEGIN CERTIFICATE----- 语句开始,由 -----END CERTIFICATE----- 语句结束。
注意,如果给定的输入流不支持 mark
和 reset
,则此方法将使用整个输入流。否则,每次调用此方法都需要一个证书,并且将输入流的读取位置定位在固有证书结尾标记后的下一个可用字节处。如果输入流中的数据不包含固有的证书结尾标记(不同于 EOF),并且在解析该证书后有一个尾随数据,则抛出 CertificateException
。
inStream
- 带有证书数据的输入流。
CertificateException
- 如果发生解析错误。
public CertPath engineGenerateCertPath(InputStream inStream) throws CertificateException
CertPath
对象,并使用从
InputStream
inStream 中读取的数据对它进行初始化。假定数据是以默认编码方式进行编码的。
Java 2 Platform Standard Edition 的 1.4 版本中添加了此方法。为了维持与现有服务提供者的后向兼容性,无法 abstract
此方法,并且默认会抛出 UnsupportedOperationException
。
inStream
- 包含数据的
InputStream
InputStream
中的数据初始化的
CertPath
CertificateException
- 如果解码时出现异常
UnsupportedOperationException
- 如果不支持此方法
public CertPath engineGenerateCertPath(InputStream inStream, String encoding) throws CertificateException
CertPath
对象,并使用从
InputStream
inStream 中读取的数据对它进行初始化。假定数据是以指定的编码方式进行编码的。
Java 2 Platform Standard Edition 的 1.4 版本中添加了此方法。为了维持与现有服务提供者的后向兼容性,无法 abstract
此方法,并且默认会抛出 UnsupportedOperationException
。
inStream
- 包含数据的
InputStream
encoding
- 数据使用的编码
InputStream
中的数据初始化的
CertPath
CertificateException
- 如果解码时出现异常或者不支持所请求的编码
UnsupportedOperationException
- 如果不支持此方法
public CertPath engineGenerateCertPath(List<? extends Certificate> certificates) throws CertificateException
CertPath
对象,并使用
Certificate
的
List
对它进行初始化。
所提供的证书必须是该 CertificateFactory
所支持的类型。将从提供的 List
对象中复制出这些证书。
Java 2 Platform Standard Edition 的 1.4 版本中添加了此方法。为了维持与现有服务提供者的后向兼容性,无法 abstract
此方法,并且默认会抛出 UnsupportedOperationException
。
certificates
-
Certificate
的
List
CertPath
CertificateException
- 如果出现异常
UnsupportedOperationException
- 如果不支持此方法
public Iterator<String> engineGetCertPathEncodings()
CertPath
编码的迭代器,默认编码方式优先。有关标准编码名称的信息,请参阅
Java Certification Path API Programmer's Guide 中的附录 A。
试图修改返回的 Iterator
(通过其 remove
方法)会导致抛出 UnsupportedOperationException
。
Java 2 Platform Standard Edition 的 1.4 版本中添加了此方法。为了维持与现有服务提供者的后向兼容性,无法 abstract
此方法,并且默认会抛出 UnsupportedOperationException
。
CertPath
编码名称(以
String
的形式)上进行迭代的
Iterator
UnsupportedOperationException
- 如果不支持此方法
public abstract Collection<? extends Certificate> engineGenerateCertificates(InputStream inStream) throws CertificateException
inStream
中读取的证书的集合视图(可能为空)。
为了利用此 CertificateFactory 所支持的专门的证书格式,可将返回的集合视图中的每个元素的类型强制转换为相应的证书类。例如,如果此 CertificateFactory 实现 X.509 证书,则可将返回集合中的元素的类型强制转换为 X509Certificate
类。
在用于 X.509 证书的 CertificateFactory 情况中,inStream
可能包含单个 DER 编码的证书,这些证书使用 generateCertificate
所描述的格式。另外,inStream
可能包含一个 PKCS#7 证书链。这是一个 PKCS#7 SignedData 对象,具有惟一认可 的有效字段。需要特别指出的是,签名和内容会被忽略。此格式允许同时下载多个证书。如果没有证书,则返回一个空集合。
注意,如果给定的输入流不支持 mark
和 reset
,则此方法将使用整个输入流。
inStream
- 带有证书的输入流。
CertificateException
- 如果发生解析错误。
public abstract CRL engineGenerateCRL(InputStream inStream) throws CRLException
inStream
中读取的数据对它进行初始化。
为了利用此 CertificateFactory 所支持的专门的 CRL 格式,可将返回的 CRL 对象的类型强制转换为相应的 CRL 类。例如,如果此 CertificateFactory 实现 X.509 CRL,则可将返回的 CRL 对象的类型强制转换为 X509CRL
类。
注意,如果给定的输入流不支持 mark
和 reset
,则此方法将使用整个输入流。否则,每次调用此方法都需要一个 CRL,并且将输入流的读取位置定位在固有 CRL 结尾标记后的下一个可用字节处。如果输入流中的数据不包含固有的 CRL 结尾标记(不同于 EOF),并且在解析该 CRL 后有一个尾随数据,则抛出 CRLException
。
inStream
- 带有 CRL 数据的输入流。
CRLException
- 如果发生解析错误。
public abstract Collection<? extends CRL> engineGenerateCRLs(InputStream inStream) throws CRLException
inStream
中读取的 CRL 的集合视图(可能为空)。
为了利用此 CertificateFactory 所支持的专门的 CRL 格式,可将返回的集合视图中的每个元素的类型强制转换为相应的 CRL 类。例如,如果此 CertificateFactory 实现 X.509 CRL,则可将返回集合中的元素类型强制转换为 X509CRL
类。
在用于 X.509 CRL 的 CertificateFactory 情况中,inStream
可能包含单个 DER 编码的 CRL。另外,inStream
可能包含一个 PKCS#7 CRL 集合。这是一个 PKCS#7 SignedData 对象,具有惟一被 crl 的有效字段。需要特别指出的是,签名和内容会被忽略。此格式允许同时下载多个 CRL。如果没有 CRL,则返回一个空集合。
注意,如果给定的输入流不支持 mark
和 reset
,则此方法将使用整个输入流。
inStream
- 带有 CRL 的输入流。
CRLException
- 如果发生解析错误。