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

Class PKIXParameters

  • All Implemented Interfaces:
    CloneableCertPathParameters
    已知直接子类:
    PKIXBuilderParameters


    public class PKIXParameters
    extends Object
    implements CertPathParameters
    参数用作PKIX CertPathValidator算法的输入。

    PKIX CertPathValidator使用这些参数根据PKIX认证路径验证算法来验证CertPath

    要实例化一个PKIXParameters对象,应用程序必须指定由PKIX认证路径验证算法定义的一个或多个最受信任的CA。 最可靠的CA可以使用两个构造函数之一进行指定。 应用程序可以调用PKIXParameters(Set) ,指定SetTrustAnchor对象,每个对象的识别最信任的CA. 或者,应用程序可以调用PKIXParameters(KeyStore) ,指定包含可信证书条目的KeyStore实例,每个实例将被视为最受信任的CA。

    一旦创建了一个PKIXParameters对象,可以指定其他参数(例如通过调用setInitialPoliciessetDate ),然后PKIXParametersCertPath一起传递,以验证为CertPathValidator.validate

    任何未设置的参数(或设置为null )将被设置为该参数的默认值。 date参数的默认值为null ,表示路径验证当前的时间。 剩余参数的默认值最小限制。

    并发访问

    除非另有说明,否则此类中定义的方法不是线程安全的。 需要同时访问单个对象的多个线程应在其间同步并提供必要的锁定。 每个操作单独对象的多个线程不需要同步。

    从以下版本开始:
    1.4
    另请参见:
    CertPathValidator
    • 方法详细信息

      • getInitialPolicies

        public Set<String> getInitialPolicies​()
        返回不可变的初始策略标识符(OID字符串) Set ,表明证书用户为了认证路径处理的目的可以接受这些策略中的任何一个。 默认返回值是一个空的Set ,这被解释为任何策略都是可以接受的。
        结果
        String格式的初始策略OID不可变的Set ,或空的Set (意味着任何策略都可以接受)。 永远不会返回null
        另请参见:
        setInitialPolicies(java.util.Set<java.lang.String>)
      • setInitialPolicies

        public void setInitialPolicies​(Set<String> initialPolicies)
        设置初始策略标识符(OID字符串)的Set ,指示证书用户为了认证路径处理的目的而可以接受这些策略中的任何一个。 默认情况下,任何策略都是可接受的(即所有策略),所以希望允许任何策略可以接受的用户不需要调用此方法,也可以使用空的Set (或null )进行调用。

        请注意, Set被复制以防止后续修改。

        参数
        initialPolicies - SetString格式的初始策略OID(或 null
        异常
        ClassCastException - 如果集合中的任何元素不是类型 String
        另请参见:
        getInitialPolicies()
      • setCertStores

        public void setCertStores​(List<CertStore> stores)
        设置用于查找证书和CRL的CertStore的列表。 可能是null ,在这种情况下不会使用CertStore 列表中的第一个CertStore可能优于稍后出现的那些。

        请注意, List被复制以防止后续修改。

        参数
        stores - a List of CertStore s(or null
        异常
        ClassCastException - 如果列表中的任何元素不是类型 java.security.cert.CertStore
        另请参见:
        getCertStores()
      • addCertStore

        public void addCertStore​(CertStore store)
        在查找证书和CRL中使用的 CertStore列表末尾添加一个 CertStore
        参数
        store - 要添加的CertStore 如果null ,该商店被忽略(未添加到列表)。
      • setRevocationEnabled

        public void setRevocationEnabled​(boolean val)
        设置RevocationEnabled标志。 如果此标志为真,将使用基础PKIX服务提供程序的默认撤销检查机制。 如果该标志为false,则默认的撤销检查机制将被禁用(未使用)。

        当创建一个PKIXParameters对象时,该标志设置为true。 此设置反映了检查撤销的最常见策略,因为每个服务提供商必须支持撤销检查以符合PKIX。 如果使用PKIX服务提供商的默认撤销检查机制或替代撤销检查机制(也称为addCertPathCheckersetCertPathCheckers方法)不实用时,复杂的应用程序应将此标志设置为false。

        参数
        val - RevocationEnabled标志的新值
      • isRevocationEnabled

        public boolean isRevocationEnabled​()
        检查RevocationEnabled标志。 如果此标志为真,将使用基础PKIX服务提供程序的默认撤销检查机制。 如果该标志为false,则默认的撤销检查机制将被禁用(未使用)。 有关设置此标志值的更多详细信息,请参阅setRevocationEnabled方法。
        结果
        RevocationEnabled标志的当前值
      • setExplicitPolicyRequired

        public void setExplicitPolicyRequired​(boolean val)
        设置ExplicitPolicyRequired标志。 如果此标志为真,则每个证书中都需要明确标识可接受的策略。 默认情况下,ExplicitPolicyRequired标志为false。
        参数
        val - true如果需要明确的政策,否则为 false
      • isExplicitPolicyRequired

        public boolean isExplicitPolicyRequired​()
        检查是否需要明确的策略。 如果此标志为真,则每个证书中都需要明确标识可接受的策略。 默认情况下,ExplicitPolicyRequired标志为false。
        结果
        true是否需要明确的政策, false否则
      • setPolicyMappingInhibited

        public void setPolicyMappingInhibited​(boolean val)
        设置PolicyMappingInhibited标志。 如果该标志为真,则禁止策略映射。 缺省情况下,策略映射不被禁止(标志为false)。
        参数
        val - true如果禁止策略映射,否则为 false
      • isPolicyMappingInhibited

        public boolean isPolicyMappingInhibited​()
        检查策略映射是否被禁止。 如果该标志为真,则禁止策略映射。 缺省情况下,策略映射不被禁止(标志为false)。
        结果
        如果禁止策略映射,则为true,否则为false
      • setAnyPolicyInhibited

        public void setAnyPolicyInhibited​(boolean val)
        设置状态以确定是否应将任何策略OID包含在证书中进行处理。 默认情况下,任何策略OID不被禁止( isAnyPolicyInhibited()返回false )。
        参数
        val - true如果任何策略OID被禁止,否则为 false
      • isAnyPolicyInhibited

        public boolean isAnyPolicyInhibited​()
        检查是否应将任何策略OID包含在证书中进行处理。
        结果
        true如果任何策略OID被禁止,否则为 false
      • setPolicyQualifiersRejected

        public void setPolicyQualifiersRejected​(boolean qualifiersRejected)
        设置PolicyQualifiersRejected标志。 如果此标志为真,那么在证书策略扩展中包含策略限定符的证书将被拒绝。 如果该标志为假,则证书不会在此基础上被拒绝。

        当创建一个PKIXParameters对象时,该标志设置为true。 此设置反映了处理策略限定词的最常用(最简单)策略。 希望使用更复杂的策略的应用程序必须将此标志设置为false。

        请注意,PKIX认证路径验证算法指定必须处理和验证证书策略扩展中标记为关键的任何策略限定符。 否则认证路径必须被拒绝。 如果policyQualifiersRejected标志设置为false,则应用程序以此方式验证所有策略限定符,以便符合PKIX标准。

        参数
        qualifiersRejected - PolicyQualifiersRejected标志的新值
        另请参见:
        getPolicyQualifiersRejected()PolicyQualifierInfo
      • getPolicyQualifiersRejected

        public boolean getPolicyQualifiersRejected​()
        获取PolicyQualifiersRejected标志。 如果此标志为真,那么在证书策略扩展中包含策略限定符的证书将被拒绝。 如果该标志为假,则证书不会在此基础上被拒绝。

        当创建一个PKIXParameters对象时,该标志设置为true。 此设置反映了处理策略限定词的最常用(最简单)策略。 希望使用更复杂的策略的应用程序必须将此标志设置为false。

        结果
        PolicyQualifiersRejected标志的当前值
        另请参见:
        setPolicyQualifiersRejected(boolean)
      • getDate

        public Date getDate​()
        返回确定认证路径有效性的时间。 如果是null ,则使用当前时间。

        请注意,返回的Date被复制以防止后续修改。

        结果
        Datenull如果没有设置
        另请参见:
        setDate(java.util.Date)
      • setDate

        public void setDate​(Date date)
        设置认证路径的有效性应该被确定的时间。 如果是null ,则使用当前时间。

        请注意, Date提供的Date复制以防止后续修改。

        参数
        date - Datenull当前时间
        另请参见:
        getDate()
      • setCertPathCheckers

        public void setCertPathCheckers​(List<PKIXCertPathChecker> checkers)
        设置一个额外的认证路径检查器List 如果指定List包含一个对象,它是不是一个PKIXCertPathChecker ,它将被忽略。

        每个PKIXCertPathChecker指定的实现对证书的附加检查。 通常,这些是处理和验证证书中包含的私有扩展的检查。 应使用执行检查所需的任何初始化参数来实例化每个PKIXCertPathChecker

        该方法允许复杂的应用程序扩展PKIX CertPathValidatorCertPathBuilder 每个指定的PKIXCertPathChecker的每个将被处理或验证的每个证书的PKIX CertPathValidatorCertPathBuilder

        无论这些额外的PKIXCertPathChecker是否设置,PKIX CertPathValidatorCertPathBuilder必须对每个证书执行所有必需的PKIX检查。 此规则的一个例外是如果RevocationEnabled标志设置为false(参见setRevocationEnabled方法)。

        请注意, List提供的List被复制,并且克隆了列表中的每个PKIXCertPathChecker以防止后续修改。

        参数
        checkers - a List of PKIXCertPathChecker s。 可能是null ,在这种情况下不会使用额外的检查。
        异常
        ClassCastException - 如果列表中的任何元素不是类型 java.security.cert.PKIXCertPathChecker
        另请参见:
        getCertPathCheckers()
      • addCertPathChecker

        public void addCertPathChecker​(PKIXCertPathChecker checker)
        在认证路径检查列表中添加一个PKIXCertPathChecker 有关详细信息,请参阅setCertPathCheckers方法。

        请注意, PKIXCertPathChecker被克隆以防止后续修改。

        参数
        checker - 一个PKIXCertPathChecker添加到支票列表。 如果null ,检查器将被忽略(未添加到列表中)。
      • getSigProvider

        public String getSigProvider​()
        返回签名提供者的名称,如果未设置,则返回 null
        结果
        签名提供者的名称(或 null
        另请参见:
        setSigProvider(java.lang.String)
      • setSigProvider

        public void setSigProvider​(String sigProvider)
        设置签名提供者的名称。 创建Signature对象时,指定的提供程序将是首选。 如果null或未设置,则将使用支持该算法的第一供应商。
        参数
        sigProvider - 签名提供者的名字(或 null
        另请参见:
        getSigProvider()
      • getTargetCertConstraints

        public CertSelector getTargetCertConstraints​()
        返回目标证书所需的约束。 约束作为CertSelector一个实例返回。 如果是null ,那么没有限制。

        请注意,返回的CertSelector被克隆以防止后续修改。

        结果
        一个 CertSelector指定目标证书的约束(或 null
        另请参见:
        setTargetCertConstraints(java.security.cert.CertSelector)
      • setTargetCertConstraints

        public void setTargetCertConstraints​(CertSelector selector)
        设置目标证书所需的约束。 约束被指定为CertSelector一个实例。 如果是null ,那么没有限制。

        请注意,指定的CertSelector被克隆以防止后续修改。

        参数
        selector -一个 CertSelector指定目标证书的约束(或 null
        另请参见:
        getTargetCertConstraints()
      • clone

        public Object clone​()
        PKIXParameters这个PKIXParameters对象。 副本的更改不会影响原始文件,反之亦然。
        Specified by:
        clone在接口 CertPathParameters
        重写:
        cloneObject
        结果
        这个 PKIXParameters对象的副本
        另请参见:
        Cloneable
      • toString

        public String toString​()
        返回描述参数的格式化字符串。
        重写:
        toStringObject
        结果
        a formatted string describing the parameters.