模块  java.base
软件包  java.security.cert

Class PKIXParameters

  • 实现的所有接口
    CloneableCertPathParameters
    已知直接子类:
    PKIXBuilderParameters

    public class PKIXParametersextends Objectimplements CertPathParameters
    用作PKIX CertPathValidator算法输入的参数。

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

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

    一旦PKIXParameters对象已经创建,其他参数可以(通过调用来指定setInitialPoliciessetDate ,例如),然后将PKIXParameters与一起传递CertPath被验证到CertPathValidator.validate

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

    并发访问

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

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

      • getInitialPolicies

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

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

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

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

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

        请注意,复制List是为了防止后续修改。

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

        public void addCertStore​(CertStore store)
        CertStore添加到用于查找证书和CRL的 CertStore列表的 CertStore
        参数
        store - 要添加的CertStore 如果是null ,则忽略商店(不添加到列表中)。
      • setRevocationEnabled

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

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

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

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

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

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

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

        public boolean isPolicyMappingInhibited()
        检查策略映射是否被禁止。 如果此标志为true,则禁止策略映射。 默认情况下,不禁止策略映射(标志为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标志。 如果此标志为true,则拒绝在证书策略扩展中包含标记为“严重”的策略限定符的证书。 如果该标志为false,则不会在此基础上拒绝证书。

        创建PKIXParameters对象时,此标志设置为true。 此设置反映了处理策略限定符的最常见(也是最简单)策略。 想要使用更复杂策略的应用程序必须将此标志设置为false。

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

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

        public boolean getPolicyQualifiersRejected()
        获取PolicyQualifiersRejected标志。 如果此标志为true,则拒绝在证书策略扩展中包含标记为“严重”的策略限定符的证书。 如果该标志为false,则不会在此基础上拒绝证书。

        创建PKIXParameters对象时,此标志设置为true。 此设置反映了处理策略限定符的最常见(也是最简单)策略。 想要使用更复杂策略的应用程序必须将此标志设置为false。

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

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

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

        结果
        如果没有设置, null 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 - 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以防止后续修改。

        结果
        a 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对象的副本。 对副本的更改不会影响原件,反之亦然。
        Specified by:
        clone在界面 CertPathParameters
        重写:
        clone在课程 Object
        结果
        PKIXParameters对象的副本
        另请参见:
        Cloneable
      • toString

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