モジュール java.base
パッケージ java.security.cert

クラスPKIXBuilderParameters

java.lang.Object
java.security.cert.PKIXParameters
java.security.cert.PKIXBuilderParameters
すべての実装されたインタフェース:
Cloneable, CertPathParameters

public class PKIXBuilderParameters extends PKIXParameters
PKIX CertPathBuilderアルゴリズムの入力で使用されるパラメータです。

PKIX CertPathBuilderではこれらのパラメータを使用し、PKIX証明書パス検査アルゴリズムに従って検証されたCertPathを構築(build)します。

PKIXBuilderParametersオブジェクトをインスタンス化するには、アプリケーションでPKIX証明書パス検査アルゴリズムで定義されるもっとも信頼できるCAを1つ以上指定しなければいけません。 もっとも信頼できるCAは、2つのコンストラクタのどちらかを使用して指定されます。 PKIXBuilderParameters(Set, CertSelector)を呼び出す場合は、TrustAnchorオブジェクトのSetを指定します。それぞれのTrustAnchorオブジェクトではもっとも信頼できるCAを特定します。 またアプリケーションは、信頼できる証明書エントリが含まれるKeyStoreインスタンスを指定してPKIXBuilderParameters(KeyStore, CertSelector)を呼び出すことができます。それぞれの証明書エントリがもっとも信頼できるCAになります。

さらにアプリケーションでは、CertPathBuilderがパスを構築しようとするターゲット証明書の制約を指定する必要があります。 制約は、CertSelectorオブジェクトとして指定されます。 これらの制約により、ターゲット証明書を見つけるための十分な検索基準がCertPathBuilderに与えられます。 通常、X509Certificateの最小基準には、サブジェクトの名前や1つ以上のサブジェクトの代替名が含まれています。 十分な基準が指定されない場合、CertPathBuilderCertPathBuilderExceptionをスローします。

並行アクセス

特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。 単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。 複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。

導入されたバージョン:
1.4
関連項目:
  • コンストラクタの詳細

    • PKIXBuilderParameters

      public PKIXBuilderParameters(Set<TrustAnchor> trustAnchors, CertSelector targetConstraints) throws InvalidAlgorithmParameterException
      もっとも信頼できるCAからなる指定したSetで、PKIXBuilderParametersのインスタンスを作成します。 セットの各要素はTrustAnchorです。

      以後の変更から保護するために、Setは複製されています。

      パラメータ:
      trustAnchors - TrustAnchorSet
      targetConstraints - ターゲット証明書の制約を指定するCertSelector
      例外:
      InvalidAlgorithmParameterException - trustAnchorsが空である場合(trustAnchors.isEmpty()== true)
      NullPointerException - trustAnchorsnullである場合
      ClassCastException - trustAnchorsの要素のいずれかがjava.security.cert.TrustAnchor型ではない場合
    • PKIXBuilderParameters

      public PKIXBuilderParameters(KeyStore keystore, CertSelector targetConstraints) throws KeyStoreException, InvalidAlgorithmParameterException
      もっとも信頼できるCAのセットを、指定したKeyStoreに含まれる信頼できる証明書エントリから生成する、PKIXBuilderParametersのインスタンスを作成します。 信頼できるX509Certificateを含むキーストア・エントリだけが対象となり、それ以外の証明書タイプはすべて無視されます。
      パラメータ:
      keystore - もっとも信頼できるCAのセットが生成されるKeyStore
      targetConstraints - ターゲット証明書の制約を指定するCertSelector
      例外:
      KeyStoreException - keystoreが初期化されていない場合
      InvalidAlgorithmParameterException - keystoreに信頼できる証明書エントリが1つも含まれない場合
      NullPointerException - keystorenullである場合
  • メソッドの詳細

    • setMaxPathLength

      public void setMaxPathLength(int maxPathLength)
      証明書パスに存在する、自己発行でない中間証明書の最大数を設定します。 サブジェクト・フィールドと発行者フィールドのDNがそれぞれ特定でき、空ではない場合、証明書は自己発行されています。 証明書パスの最後の証明書は中間証明書ではないため、この上限値には含まれません。 通常、最後の証明書はエンド・エンティティ証明書ですが、CA証明書となる場合もあります。 PKIX CertPathBuilderインスタンスによって構築されるパスは、ここで指定した長さよりも長くなってはいけません。

      値が0の場合、パスには証明書が1つだけ含まれていることを表します。 -1の場合は、パス長に制約がありません(つまり最大値がない)。 最大パス長を指定しなかった場合、デフォルトの5になります。 -1よりも小さい値を設定すると、例外がスローされます。

      あらゆるCA証明書にBasicConstraintsExtensionが含まれている場合、機能拡張のpathLenConstraintフィールドの値は、結果の証明書パス長が短いときは常に、最大パス長のパラメータでオーバーライドされます。

      パラメータ:
      maxPathLength - 証明書パスに存在する、自己発行でない中間証明書の最大数
      例外:
      InvalidParameterException - maxPathLengthの値が -1より小さい場合
      関連項目:
    • getMaxPathLength

      public int getMaxPathLength()
      証明書パスに存在する、自己発行でない中間証明書の最大数を返します。 詳細は、setMaxPathLength(int)メソッドを参照してください。
      戻り値:
      証明書パスに存在する、自己発行でない中間証明書の最大数。上限がない場合は -1
      関連項目:
    • toString

      public String toString()
      パラメータを説明する書式付き文字列を返します。
      オーバーライド:
      toString、クラスPKIXParameters
      戻り値:
      パラメータを説明する書式付き文字列