- java.lang.Object
-
- java.security.cert.CertificateFactorySpi
-
public abstract class CertificateFactorySpi extends Object
该类定义了CertificateFactory类的 ( SPI )。 该类中的所有抽象方法必须由希望为特定证书类型(例如X.509)提供证书工厂的实现的每个加密服务提供商实现。证书工厂用于从其编码生成证书,认证路径(
CertPath)和证书撤销列表(CRL)对象。对于X.509证书工厂必须返回是一个实例证明
java.security.cert.X509Certificate这是一个实例,和CRLjava.security.cert.X509CRL。- 从以下版本开始:
- 1.2
- 另请参见:
-
CertificateFactory,Certificate,X509Certificate,CertPath,CRL,X509CRL
-
-
构造方法摘要
构造方法 Constructor 描述 CertificateFactorySpi()
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract CertificateengineGenerateCertificate(InputStream inStream)生成证书对象,并使用从输入流inStream读取的数据进行初始化。abstract Collection<? extends Certificate>engineGenerateCertificates(InputStream inStream)返回从给定输入流inStream读取的证书的(可能为空的)集合视图。CertPathengineGenerateCertPath(InputStream inStream)生成一个CertPath对象,并使用从InputStreaminStream读取的数据进行初始化。CertPathengineGenerateCertPath(InputStream inStream, String encoding)生成一个CertPath对象,并使用从InputStreaminStream读取的数据进行初始化。CertPathengineGenerateCertPath(List<? extends Certificate> certificates)生成一个CertPath对象,并使用List的Certificate初始化它。abstract CRLengineGenerateCRL(InputStream inStream)生成证书吊销列表(CRL)对象,并使用从输入流inStream读取的数据进行初始化。abstract Collection<? extends CRL>engineGenerateCRLs(InputStream inStream)返回从给定输入流inStream读取的CRL的(可能为空的)集合视图。Iterator<String>engineGetCertPathEncodings()返回此证书工厂支持的CertPath编码的迭代,首先使用默认编码。
-
-
-
方法详细信息
-
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
public CertPath engineGenerateCertPath(InputStream inStream) throws CertificateException
生成一个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- 包含数据的InputStream -
encoding- 用于数据的编码 - 结果
-
一个
CertPath从与所述数据初始化InputStream - 异常
-
CertificateException- 如果在解码或请求的编码不支持时发生异常 -
UnsupportedOperationException- 如果不支持该方法 - 从以下版本开始:
- 1.4
-
engineGenerateCertPath
public CertPath engineGenerateCertPath(List<? extends Certificate> certificates) throws CertificateException
生成一个CertPath对象,并使用List的Certificate初始化。提供的证书必须是
CertificateFactory支持的类型。 他们将被复制出来的List对象。该方法被添加到Java 2平台标准版的1.4版本。 为了保持与现有服务提供商的向后兼容性,此方法不能为
abstract,默认情况下会抛出一个UnsupportedOperationException。- 参数
-
certificates- aList的Certificates - 结果
-
一个
CertPath用提供的证书列表初始化 - 异常
-
CertificateException- 如果发生异常 -
UnsupportedOperationException- 如果不支持该方法 - 从以下版本开始:
- 1.4
-
engineGetCertPathEncodings
public Iterator<String> engineGetCertPathEncodings()
返回此证书工厂支持的CertPath编码的迭代,首先使用默认编码。 有关标准编码名称的信息,请参阅Java Security Standard Algorithm Names Specification中的CertPath编码部分。尝试通过其
remove方法修改返回的Iterator产生一个UnsupportedOperationException。该方法被添加到Java 2平台标准版的1.4版本。 为了保持与现有服务提供商的向后兼容性,此方法不能为
abstract,默认情况下会抛出一个UnsupportedOperationException。- 结果
-
一个
Iterator的支持的CertPath编码的名称(如String) - 异常
-
UnsupportedOperationException- 如果不支持该方法 - 从以下版本开始:
- 1.4
-
engineGenerateCertificates
public abstract Collection<? extends Certificate> engineGenerateCertificates(InputStream inStream) throws CertificateException
返回从给定输入流inStream读取的证书的(可能为空的)集合视图。为了利用此证书工厂支持的特殊证书格式,返回的集合视图中的每个元素都可以类型转换为相应的证书类。 例如,如果此证书工厂实施X.509证书,则返回的集合中的元素可以类型转换为
X509Certificate类。在X.509证书的证书工厂的情况下,
inStream可能包含以generateCertificate描述的格式的单个DER编码证书。 另外,inStream可能包含PKCS#7证书链。 这是一个PKCS#7 SignedData对象,唯一有效的字段是证书 。 特别地,签名和内容被忽略。 此格式允许一次下载多个证书。 如果没有证书,则返回空集合。- 参数
-
inStream- 具有证书的输入流。 - 结果
- 使用来自输入流的数据初始化的java.security.cert.Certificate对象的(可能为空的)集合视图。
- 异常
-
CertificateException- 解析错误。
-
engineGenerateCRL
public abstract CRL engineGenerateCRL(InputStream inStream) throws CRLException
生成证书吊销列表(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#7 SignedData对象,唯一有效的字段是crls 。 特别地,签名和内容被忽略。 此格式允许一次下载多个CRL。 如果没有CRL,则返回一个空的集合。- 参数
-
inStream- 具有CRL的输入流。 - 结果
- 使用来自输入流的数据初始化的java.security.cert.CRL对象的(可能为空的)集合视图。
- 异常
-
CRLException- 解析错误。
-
-