CertificateFactory 类。此类中的所有抽象方法必须由每个希望为特定证书类型(例如 X.509)提供证书工厂实现的密码服务提供者实现。
证书工厂用于从其编码生成证书、证书路径 (CertPath) 和证书撤销列表 (CRL) 对象。
X.509 的证书工厂必须返回作为 java.security.cert.X509Certificate 实例的证书和作为 java.security.cert.X509CRL 实例的 CRL。
- 自从:
- 1.2
- 参见:
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述abstract CertificateengineGenerateCertificate(InputStream inStream) 生成证书对象并使用从输入流inStream读取的数据对其进行初始化。abstract Collection<? extends Certificate>engineGenerateCertificates(InputStream inStream) 返回从给定输入流inStream读取的证书的(可能为空)集合视图。engineGenerateCertPath(InputStream inStream) 生成一个CertPath对象并使用从InputStreaminStream 中读取的数据对其进行初始化。engineGenerateCertPath(InputStream inStream, String encoding) 生成一个CertPath对象并使用从InputStreaminStream 中读取的数据对其进行初始化。engineGenerateCertPath(List<? extends Certificate> certificates) 生成一个CertPath对象并使用Certificate的List对其进行初始化。abstract CRLengineGenerateCRL(InputStream inStream) 生成证书吊销列表 (CRL) 对象并使用从输入流inStream读取的数据对其进行初始化。abstract Collection<? extends CRL>engineGenerateCRLs(InputStream inStream) 返回从给定输入流inStream读取的 CRL 的(可能为空)集合视图。返回此证书工厂支持的CertPath编码的迭代,首先使用默认编码。
-
构造方法详细信息
-
CertificateFactorySpi
public CertificateFactorySpi()子类调用的构造方法。
-
-
方法详情
-
engineGenerateCertificate
public abstract Certificate engineGenerateCertificate(InputStream inStream) throws CertificateException 生成证书对象并使用从输入流inStream读取的数据对其进行初始化。为了利用此证书工厂支持的专用证书格式,可以将返回的证书对象类型转换为相应的证书类。例如,如果此证书工厂实现 X.509 证书,则返回的证书对象可以类型转换为
X509Certificate类。对于 X.509 证书的证书工厂,
inStream中提供的证书必须是 DER 编码的,并且可以二进制或可打印 (Base64) 编码提供。如果证书以 Base64 编码提供,则必须在开头以 -----BEGIN CERTIFICATE----- 为界,并且必须在结尾以 -----END CERTIFICATE----- 为界.请注意,如果给定的输入流不支持
mark和reset,此方法将消耗整个输入流。否则,每次调用此方法都会消耗一个证书,并且输入流的读取位置定位到固有证书结束标记之后的下一个可用字节。如果输入流中的数据不包含固有的证书结束标记(EOF 除外)并且在解析证书后有尾随数据,则会抛出CertificateException。- 参数:
inStream- 带有证书数据的输入流。- 返回:
- 用输入流中的数据初始化的证书对象。
- 抛出:
CertificateException- 解析错误。
-
engineGenerateCertPath
生成一个CertPath对象并使用从InputStreaminStream 中读取的数据对其进行初始化。假定数据采用默认编码。此方法已添加到 Java 2 平台标准版的 1.4 版中。为了保持与现有服务提供商的向后兼容性,此方法不能是
abstract并且默认情况下会抛出UnsupportedOperationException。- 参数:
inStream- 包含数据的InputStream- 返回:
-
一个
CertPath用来自InputStream的数据初始化 - 抛出:
CertificateException- 如果解码时发生异常UnsupportedOperationException- 如果不支持该方法- 自从:
- 1.4
-
engineGenerateCertPath
public CertPath engineGenerateCertPath(InputStream inStream, String encoding) throws CertificateException 生成一个CertPath对象并使用从InputStreaminStream 中读取的数据对其进行初始化。假定数据采用指定的编码。此方法已添加到 Java 2 平台标准版的 1.4 版中。为了保持与现有服务提供商的向后兼容性,此方法不能是
abstract并且默认情况下会抛出UnsupportedOperationException。- 参数:
inStream- 包含数据的InputStreamencoding- 用于数据的编码- 返回:
-
一个
CertPath用来自InputStream的数据初始化 - 抛出:
CertificateException- 如果解码时发生异常或不支持请求的编码UnsupportedOperationException- 如果不支持该方法- 自从:
- 1.4
-
engineGenerateCertPath
public CertPath engineGenerateCertPath(List <? extends Certificate > certificates) throws CertificateException 生成一个CertPath对象并使用Certificate的List对其进行初始化。提供的证书必须是
CertificateFactory支持的类型。它们将从提供的List对象中复制出来。此方法已添加到 Java 2 平台标准版的 1.4 版中。为了保持与现有服务提供商的向后兼容性,此方法不能是
abstract并且默认情况下会抛出UnsupportedOperationException。- 参数:
certificates-List的Certificates- 返回:
-
a
CertPath用提供的证书列表初始化 - 抛出:
CertificateException- 如果发生异常UnsupportedOperationException- 如果不支持该方法- 自从:
- 1.4
-
engineGetCertPathEncodings
返回此证书工厂支持的CertPath编码的迭代,首先使用默认编码。有关标准编码名称的信息,请参阅 Java 安全标准算法名称规范 中的 CertPath 编码部分。尝试通过其
remove方法修改返回的Iterator会导致UnsupportedOperationException。此方法已添加到 Java 2 平台标准版的 1.4 版中。为了保持与现有服务提供商的向后兼容性,此方法不能是
abstract并且默认情况下会抛出UnsupportedOperationException。- 返回:
Iterator在受支持的CertPath编码的名称上(如Strings)- 抛出:
UnsupportedOperationException- 如果不支持该方法- 自从:
- 1.4
-
engineGenerateCertificates
public abstract Collection <? extends Certificate > engineGenerateCertificates(InputStream inStream) throws CertificateException 返回从给定输入流inStream读取的证书的(可能为空)集合视图。为了利用此证书工厂支持的专用证书格式,返回的集合视图中的每个元素都可以类型转换为相应的证书类。例如,如果此证书工厂实现 X.509 证书,则返回集合中的元素可以类型转换为
X509Certificate类。对于 X.509 证书的证书工厂,
inStream可能包含单个 DER 编码证书,其格式为generateCertificate。此外,inStream可能包含 PKCS#7 证书链。这是 PKCS#7SignedData对象,唯一重要的字段是certificates.特别是,签名和内容将被忽略。此格式允许一次下载多个证书。如果不存在证书,则返回一个空集合。- 参数:
inStream- 带有证书的输入流。- 返回:
- 使用输入流中的数据初始化的 java.security.cert.Certificate 对象的(可能为空)集合视图。
- 抛出:
CertificateException- 解析错误。
-
engineGenerateCRL
生成证书吊销列表 (CRL) 对象并使用从输入流inStream读取的数据对其进行初始化。为了利用此证书工厂支持的专用 CRL 格式,可以将返回的 CRL 对象类型转换为相应的 CRL 类。例如,如果此证书工厂实现 X.509 CRL,则返回的 CRL 对象可以类型转换为
X509CRL类。请注意,如果给定的输入流不支持
mark和reset,此方法将消耗整个输入流。否则,每次调用此方法都会消耗一个 CRL,并且输入流的读取位置会定位到固有的 CRL 结束标记之后的下一个可用字节。如果输入流中的数据不包含固有的 CRL 结束标记(EOF 除外)并且在解析 CRL 后存在尾随数据,则会抛出CRLException。- 参数:
inStream- 带有 CRL 数据的输入流。- 返回:
- 用输入流中的数据初始化的 CRL 对象。
- 抛出:
CRLException- 解析错误。
-
engineGenerateCRLs
public abstract Collection <? extends CRL > engineGenerateCRLs(InputStream inStream) throws CRLException 返回从给定输入流inStream读取的 CRL 的(可能为空)集合视图。为了利用此证书工厂支持的专用 CRL 格式,返回的集合视图中的每个元素都可以类型转换为相应的 CRL 类。例如,如果此证书工厂实现 X.509 CRL,则返回集合中的元素可以类型转换为
X509CRL类。对于 X.509 CRL 的证书工厂,
inStream可能包含单个 DER 编码的 CRL。此外,inStream可能包含 PKCS#7 CRL 集。这是 PKCS#7SignedData对象,唯一重要的字段是crls.特别是,签名和内容将被忽略。此格式允许一次下载多个 CRL。如果不存在 CRL,则返回一个空集合。- 参数:
inStream- 带有 CRL 的输入流。- 返回:
- 使用输入流中的数据初始化的 java.security.cert.CRL 对象的(可能为空)集合视图。
- 抛出:
CRLException- 解析错误。
-