模块 java.base

类 CertificateFactorySpi

java.lang.Object
java.security.cert.CertificateFactorySpi

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

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

X.509 的证书工厂必须返回作为 java.security.cert.X509Certificate 实例的证书和作为 java.security.cert.X509CRL 实例的 CRL。

自从:
1.2
参见:
  • 构造方法详细信息

    • 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

      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 对象并使用 CertificateList 对其进行初始化。

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

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

      参数:
      certificates - ListCertificate s
      返回:
      a CertPath 用提供的证书列表初始化
      抛出:
      CertificateException - 如果发生异常
      UnsupportedOperationException - 如果不支持该方法
      自从:
      1.4
    • engineGetCertPathEncodings

      public Iterator <String > engineGetCertPathEncodings()
      返回此证书工厂支持的 CertPath 编码的迭代,首先使用默认编码。有关标准编码名称的信息,请参阅 Java 安全标准算法名称规范 中的 CertPath 编码部分。

      尝试通过其 remove 方法修改返回的 Iterator 会导致 UnsupportedOperationException

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

      返回:
      Iterator 在受支持的 CertPath 编码的名称上(如 String s)
      抛出:
      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.特别是,签名和内容将被忽略。此格式允许一次下载多个证书。如果不存在证书,则返回一个空集合。

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

      参数:
      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#7SignedData对象,唯一重要的字段是crls.特别是,签名和内容将被忽略。此格式允许一次下载多个 CRL。如果不存在 CRL,则返回一个空集合。

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

      参数:
      inStream - 带有 CRL 的输入流。
      返回:
      使用输入流中的数据初始化的 java.security.cert.CRL 对象的(可能为空)集合视图。
      抛出:
      CRLException - 解析错误。