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

クラスPKIXCertPathChecker

  • すべての実装されたインタフェース:
    Cloneable, CertPathChecker
    直系の既知のサブクラス:
    PKIXRevocationChecker

    public abstract class PKIXCertPathChecker
    extends Object
    implements CertPathChecker, Cloneable
    X509Certificateのチェックを1回以上行う抽象クラスです。

    PKIXCertPathCheckerクラスの具象実装は、PKIX証明書パス検査アルゴリズムを拡張するために作成されます。 たとえば、証明書パスの各証明書に専用のクリティカルな拡張機能をチェックし処理することができます。

    PKIXCertPathCheckerのインスタンスは、PKIXParametersおよびPKIXBuilderParametersクラスのsetCertPathCheckersメソッドやaddCertPathCheckerメソッドを使用し、パラメータとして渡されます。 PKIXCertPathCheckercheckメソッドは、PKIX CertPathValidatorまたはCertPathBuilder実装によって処理される証明書ごとに、順次呼び出されます。

    PKIXCertPathCheckerは、証明書パスの連続する証明書に対して、複数回呼び出されます。 具象サブクラスでは、連続する証明書をチェックする必要があるという内部状態を維持するように求められます。 新しい証明書パスがチェックされるために、initメソッドがチェック側の内部状態を初期化するために使用されます。 PKIX CertPathBuilderによって効率的にバックトラックし、別のパスで試みることができるように、必要に応じて意味のある実装でcloneメソッドをオーバーライドしなければいけません そのような場合、CertPathBuilderで複製されたPKIXCertPathCheckerを戻すことで、これまでのパス検査状態に戻すことができます。

    証明書がPKIXCertPathCheckerに渡される順番は、順方向(ターゲットからもっとも信頼できるCAへ)か逆方向(もっとも信頼できるCAからターゲットへ)のどちらでも可能です。 PKIXCertPathCheckerの実装では、逆方向のチェック(証明書が逆方向に渡されるときにチェック可能)をサポートしなければならず、順方向のチェック(順方向に証明書が渡されるときにチェック可能)はサポートすることがあります isForwardCheckingSupportedメソッドでは、順方向のチェックがサポートされているかどうかを示します。

    チェックを行うために必要な追加の入力パラメータが、このクラスの具象実装のコンストラクタを通じて指定されることがあります。

    並行アクセス

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

    導入されたバージョン:
    1.4
    関連項目:
    PKIXParameters, PKIXBuilderParameters
    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected PKIXCertPathChecker()
      デフォルトのコンストラクタです。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      void check​(Certificate cert)
      内部状態を使用して、指定された証明書にチェックを実行します。
      abstract void check​(Certificate cert, Collection<String> unresolvedCritExts)
      指定した証明書をその内部状態でチェックし、証明書が処理する機能拡張でクリティカルなものがあれば、解釈処理できない機能拡張を表すOID文字列の指定したコレクションから、その機能拡張を削除します。
      Object clone()
      このオブジェクトの複製を返します。
      abstract Set<String> getSupportedExtensions()
      このPKIXCertPathCheckerがサポートする(つまり、「認識する」「処理できる」) X.509証明書機能拡張の不変なSetを返します。拡張がサポートされない場合はnullを返します。
      abstract void init​(boolean forward)
      このPKIXCertPathCheckerの内部状態を初期化します。
      abstract boolean isForwardCheckingSupported()
      順方向のチェックがサポートされているかどうかを示します。
    • コンストラクタの詳細

      • PKIXCertPathChecker

        protected PKIXCertPathChecker()
        デフォルトのコンストラクタです。
    • メソッドの詳細

      • init

        public abstract void init​(boolean forward)
                           throws CertPathValidatorException
        このPKIXCertPathCheckerの内部状態を初期化します。

        forwardフラグでは、証明書がcheckメソッドに渡される順序(順方向か逆方向)を指定します。 PKIXCertPathCheckerでは、逆方向のチェックをサポートしなければならず、順方向のチェックはサポートすることがあります

        定義:
        init、インタフェース: CertPathChecker
        パラメータ:
        forward - 証明書がcheckメソッドに渡される順序。 trueの場合はターゲットからもっとも信頼できるCAの順(順方向)に証明書が渡され、falseの場合はもっとも信頼できるCAからターゲットの順(逆方向)に渡される。
        例外:
        CertPathValidatorException - 指定された順序でこのPKIXCertPathCheckerが証明書をチェックできない場合。逆方向のチェックは必ずサポートされているので、forwardフラグがfalseの場合はスローされない
      • isForwardCheckingSupported

        public abstract boolean isForwardCheckingSupported()
        順方向のチェックがサポートされているかどうかを示します。 順方向のチェックとは、証明書がcheckメソッドへ順方向(ターゲットからもっとも信頼できるCAへ)に渡されるときにチェックが可能なPKIXCertPathCheckerの機能のことです。
        定義:
        isForwardCheckingSupported、インタフェース: CertPathChecker
        戻り値:
        順方向のチェックがサポートされている場合はtrue、そうでない場合はfalse
      • getSupportedExtensions

        public abstract Set<String> getSupportedExtensions()
        このPKIXCertPathCheckerがサポートする(つまり、認識する処理できる) X.509証明書機能拡張の不変なSetを返します。拡張がサポートされない場合はnullを返します。

        セットの各要素は、サポートされるX.509機能拡張のオブジェクト識別子(OID)を表すStringです。 OIDは、ピリオドで区切られた0以上の整数の組で表されます。

        PKIXCertPathCheckerが処理できるすべてのX.509機能拡張は、セットに含まれていなければいけません。

        戻り値:
        このPKIXCertPathCheckerでサポートされるX.509機能拡張OID (String形式)から成る不変のSet。サポートされる機能拡張がない場合は、null
      • check

        public abstract void check​(Certificate cert,
                                   Collection<String> unresolvedCritExts)
                            throws CertPathValidatorException
        指定した証明書をその内部状態でチェックし、証明書が処理する機能拡張でクリティカルなものがあれば、解釈処理できない機能拡張を表すOID文字列の指定したコレクションから、その機能拡張を削除します。 証明書は、initメソッドで指定された順序で示されます。
        パラメータ:
        cert - チェック対象のCertificate
        unresolvedCritExts - 解釈処理できないクリティカルな機能拡張の現在のセットを表すOID文字列のCollection
        例外:
        CertPathValidatorException - 指定した証明書がチェックを通らない場合
      • check

        public void check​(Certificate cert)
                   throws CertPathValidatorException
        内部状態を使用して、指定された証明書にチェックを実行します。 証明書は、initメソッドで指定された順序で示されます。

        この実装ではcheck(cert, java.util.Collections.<String>emptySet())を呼び出します。

        定義:
        check、インタフェース: CertPathChecker
        パラメータ:
        cert - チェック対象のCertificate
        例外:
        CertPathValidatorException - 指定した証明書がチェックを通らない場合
      • clone

        public Object clone()
        このオブジェクトの複製を返します。 Object.clone()メソッドを呼び出します。 状態を維持するすべてのサブクラスではこのメソッドをサポートしなければならず、必要に応じてオーバーライドします。
        オーバーライド:
        clone、クラス: Object
        戻り値:
        このPKIXCertPathCheckerのコピー
        関連項目:
        Cloneable