Module  java.base
软件包  java.security.cert

Class CertificateFactorySpi



  • public abstract class CertificateFactorySpi
    extends Object
    该类定义了CertificateFactory类的 ( SPI )。 该类中的所有抽象方法必须由希望为特定证书类型(例如X.509)提供证书工厂的实现的每个加密服务提供商实现。

    证书工厂用于从其编码生成证书,认证路径( CertPath )和证书撤销列表(CRL)对象。

    对于X.509证书工厂必须返回是一个实例证明java.security.cert.X509Certificate这是一个实例,和CRL java.security.cert.X509CRL

    从以下版本开始:
    1.2
    另请参见:
    CertificateFactoryCertificateX509CertificateCertPathCRLX509CRL
    • 构造方法详细信息

      • 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 ----- 。

        请注意,如果给定的输入流不支持markreset ,则此方法将消耗整个输入流。 否则,对该方法的每次调用都会消耗一个证书,并且输入流的读取位置位于固有的证书结束标记之后的下一个可用字节。 如果输入流中的数据不包含固有的证书结束标记(EOF除外),并且在证书被解析后存在尾随数据,则抛出一个CertificateException

        参数
        inStream - 具有证书数据的输入流。
        结果
        用来自输入流的数据初始化的证书对象。
        异常
        CertificateException - 解析错误。
      • engineGenerateCertPath

        public CertPath engineGenerateCertPath​(InputStream inStream)
                                        throws CertificateException
        生成一个CertPath对象,并使用从InputStream inStream读取的数据进行初始化。 数据假定为默认编码。

        该方法被添加到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对象,并使用从InputStream inStream读取的数据进行初始化。 数据假定为指定的编码。

        该方法被添加到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对象,并使用ListCertificate初始化。

        提供的证书必须是CertificateFactory支持的类型。 他们将被复制出来的List对象。

        该方法被添加到Java 2平台标准版的1.4版本。 为了保持与现有服务提供商的向后兼容性,此方法不能为abstract ,默认情况下会抛出一个UnsupportedOperationException

        参数
        certificates - a ListCertificate s
        结果
        一个 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对象,唯一有效的字段是证书 特别地,签名和内容被忽略。 此格式允许一次下载多个证书。 如果没有证书,则返回空集合。

        请注意,如果给定的输入流不支持markreset ,则此方法将消耗整个输入流。

        参数
        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类。

        请注意,如果给定的输入流不支持markreset ,则此方法将消耗整个输入流。 否则,对该方法的每次调用都会消耗一个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,则返回一个空的集合。

        请注意,如果给定的输入流不支持markreset ,则此方法将消耗整个输入流。

        参数
        inStream - 具有CRL的输入流。
        结果
        使用来自输入流的数据初始化的java.security.cert.CRL对象的(可能为空的)集合视图。
        异常
        CRLException - 解析错误。