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

クラスCertStore


  • public class CertStore
    extends Object
    リポジトリからCertificateCRLを取得するクラスです。

    このクラスは、プロバイダ・ベースのアーキテクチャを使用します。 CertStoreを作成するには、static getInstanceメソッドのうちの1つを呼び出して、作成するCertStoreの型、適用可能な初期化パラメータ、プロバイダ名(オプション)を渡します。

    CertStoreを作成すると、getCertificatesgetCRLsメソッドを呼び出すことで、CertificateCRLを取得できます。

    CertStoreは、非公開キーおよび信頼できる証明書のキャッシュへのアクセスを提供するKeyStoreとは異なり、非常に大きくなる可能性がある、信頼されない証明書およびCRLのリポジトリへのアクセスを提供するように設計されています。 たとえば、CertStoreのLDAP実装では、LDAPプロトコルとRFCサービス属性として定義されたスキーマとを使用して、1つ以上のディレクトリに格納された証明書とCRLへアクセスできます。

    Javaプラットフォームの実装は、すべて次の標準のCertStoreタイプをサポートする必要があります。

    • Collection
    この型は、Javaセキュリティ標準アルゴリズム名仕様の「CertStoreセクション」に記述されています。 サポートされているその他のタイプについては、実装のリリース・ノートを参照してください。

    並行アクセス

    CertStoreオブジェクトのすべてのpublicメソッドは、スレッドセーフでなければいけません。 つまり、単一の(または複数の) CertStoreオブジェクト上で、複数のスレッドがこれらのメソッドを並行して呼び出しても、悪影響はありません。 これにより、たとえばCertPathBuilderは、CRLを検索しながら同時にほかの証明書を検索できます。

    また、このクラスのstaticメソッドは、スレッドセーフであることが保証されています。 このクラスで定義されているstaticメソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。

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

      • CertStore

        protected CertStore​(CertStoreSpi storeSpi,
                            Provider provider,
                            String type,
                            CertStoreParameters params)
        指定されたタイプのCertStoreオブジェクトを作成し、指定されたプロバイダの実装(SPIオブジェクト)をそこにカプセル化します。
        パラメータ:
        storeSpi - プロバイダの実装
        provider - プロバイダ
        type - タイプ
        params - 初期化パラメータ。nullも可
    • メソッドの詳細

      • getCertificates

        public final Collection<? extends Certificate> getCertificates​(CertSelector selector)
                                                                throws CertStoreException
        指定したセレクタに一致するCertificateCollectionを返します。 セレクタに一致するCertificateがない場合は、空のCollectionが返されます。

        CertStoreのタイプによっては、セレクタに一致するCertificateすべてが結果として得られるCollectionに含まれないことがあります。 たとえば、LDAP CertStoreは、ディレクトリ内のすべてのエントリを検索しない場合があります。 代わりに、検索するCertificateが含まれると考えられるエントリに絞って検索します。

        CertStoreの実装の中には、証明書を見つけるための特定の条件を含むnull以外のCertSelectorが提供されないかぎり、CertStoreExceptionをスローするものがあります(特にLDAP CertStore)。 発行者やサブジェクトの名前は特に役立つ条件となります。

        パラメータ:
        selector - 返されるCertificateを選択するために使用するCertSelector nullを指定すると、サポートされている場合はすべてのCertificateが返される。
        戻り値:
        指定したセレクタに一致するCertificateCollectionnullにはならない
        例外:
        CertStoreException - 例外が発生する場合
      • getCRLs

        public final Collection<? extends CRL> getCRLs​(CRLSelector selector)
                                                throws CertStoreException
        指定したセレクタに一致するCRLCollectionを返します。 セレクタに一致するCRLがない場合は、空のCollectionが返されます。

        CertStoreのタイプによっては、セレクタに一致するCRLすべてが結果として得られるCollectionに含まれないことがあります。 たとえば、LDAP CertStoreは、ディレクトリ内のすべてのエントリを検索しない場合があります。 代わりに、検索するCRLが含まれると考えられるエントリに絞って検索します。

        CertStoreの実装の中には、CRLを見つけるための特定の条件を含むnull以外のCRLSelectorが提供されないかぎり、CertStoreExceptionをスローするものがあります(特にLDAP CertStore)。 発行者の名前やチェック対象の証明書は特に役立ちます。

        パラメータ:
        selector - 返されるCRLを選択するために使用するCRLSelector nullを指定すると、サポートされている場合はすべてのCRLが返される
        戻り値:
        指定したセレクタに一致するCRLCollectionnullにはならない
        例外:
        CertStoreException - 例外が発生する場合
      • getInstance

        public static CertStore getInstance​(String type,
                                            CertStoreParameters params)
                                     throws InvalidAlgorithmParameterException,
                                            NoSuchAlgorithmException
        指定したCertStore型を実装し、指定したパラメータで初期化されるCertStoreを返します。

        このメソッドは、最優先のProviderから順に、登録済みのセキュリティProviderのリストをトラバースします。 指定された型をサポートする最初のProviderのCertStoreSpi実装をカプセル化する新しいCertStoreオブジェクトが返されます。

        登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

        返されたCertStoreは指定されたCertStoreParametersで初期化されます。 必要なパラメータの型は、CertStoreの型によって異なります。 CertStoreParametersオブジェクトの複製を指定していることに注意してください。

        実装上のノート:
        JDKリファレンス実装では、jdk.security.provider.preferred Securityプロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。
        パラメータ:
        type - 要求するCertStoreタイプの名前。 標準型については、「Javaセキュリティ標準アルゴリズム名指定」のCertStoreセクションを参照してください。
        params - 初期化パラメータ。nullも可。
        戻り値:
        指定されたCertStoreタイプを実装するCertStoreオブジェクト
        例外:
        InvalidAlgorithmParameterException - 指定された初期化パラメータがこのCertStoreに対して不適切な場合
        NoSuchAlgorithmException - Providerが、指定された型のCertStoreSpi実装をサポートしていない場合
        NullPointerException - typenullである場合
        関連項目:
        Provider
      • getInstance

        public static CertStore getInstance​(String type,
                                            CertStoreParameters params,
                                            String provider)
                                     throws InvalidAlgorithmParameterException,
                                            NoSuchAlgorithmException,
                                            NoSuchProviderException
        指定されたCertStoreタイプを実装するCertStoreオブジェクトを返します。

        指定されたプロバイダのCertStoreSpi実装をカプセル化する新しいCertStoreオブジェクトが返されます。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。

        登録済みプロバイダのリストは、Security.getProviders()メソッド経由で取得できます。

        返されたCertStoreは指定されたCertStoreParametersで初期化されます。 必要なパラメータの型は、CertStoreの型によって異なります。 CertStoreParametersオブジェクトの複製を指定していることに注意してください。

        パラメータ:
        type - 要求されたCertStoreタイプ。 標準型については、「Javaセキュリティ標準アルゴリズム名指定」のCertStoreセクションを参照してください。
        params - 初期化パラメータ。nullも可。
        provider - プロバイダ名。
        戻り値:
        指定されたタイプを実装するCertStoreオブジェクト
        例外:
        IllegalArgumentException - providernullまたは空の場合
        InvalidAlgorithmParameterException - 指定された初期化パラメータがこのCertStoreに対して不適切な場合
        NoSuchAlgorithmException - 指定された型のCertStoreSpi実装が、指定されたプロバイダから利用可能でない場合
        NoSuchProviderException - 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合
        NullPointerException - typenullである場合
        関連項目:
        Provider
      • getInstance

        public static CertStore getInstance​(String type,
                                            CertStoreParameters params,
                                            Provider provider)
                                     throws NoSuchAlgorithmException,
                                            InvalidAlgorithmParameterException
        指定されたCertStoreタイプを実装するCertStoreオブジェクトを返します。

        指定されたProviderオブジェクトのCertStoreSpi実装をカプセル化する新しいCertStoreオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。

        返されたCertStoreは指定されたCertStoreParametersで初期化されます。 必要なパラメータの型は、CertStoreの型によって異なります。 CertStoreParametersオブジェクトの複製を指定していることに注意してください。

        パラメータ:
        type - 要求されたCertStoreタイプ。 標準型については、「Javaセキュリティ標準アルゴリズム名指定」のCertStoreセクションを参照してください。
        params - 初期化パラメータ。nullも可。
        provider - プロバイダ
        戻り値:
        指定されたタイプを実装するCertStoreオブジェクト
        例外:
        IllegalArgumentException - providerがnullの場合
        InvalidAlgorithmParameterException - 指定された初期化パラメータがこのCertStoreに対して不適切な場合
        NoSuchAlgorithmException - 指定された型のCertStoreSpi実装が、指定されたProviderオブジェクトから使用できない場合
        NullPointerException - typenullである場合
        関連項目:
        Provider
      • getCertStoreParameters

        public final CertStoreParameters getCertStoreParameters()
        このCertStoreを初期化するためのパラメータを返します。 返される前のCertStoreParametersオブジェクトは複製です。
        戻り値:
        このCertStoreを初期化するパラメータ。nullも可能
      • getType

        public final String getType()
        このCertStoreのタイプを返します。
        戻り値:
        このCertStoreの型
      • getProvider

        public final Provider getProvider()
        このCertStoreのプロバイダを返します。
        戻り値:
        このCertStoreのプロバイダ
      • getDefaultType

        public static final String getDefaultType()
        certstore.typeセキュリティ・プロパティに指定されたデフォルトのCertStoreタイプを返します。該当するプロパティが存在しない場合は、文字列「LDAP」を返します。

        デフォルトのCertStoreタイプを使用するのは、アプリケーションでgetInstanceメソッドを呼び出すときにハードコードされたタイプを使用しない場合、およびユーザーが独自のタイプを指定しないときにデフォルトのCertStoreタイプを提供する場合です。

        デフォルトのCertStoreタイプは、certstore.typeセキュリティ・プロパティの値を目的のタイプに設定することで変更できます。

        戻り値:
        certstore.typeセキュリティ・プロパティに指定されているデフォルトのCertStoreタイプ、該当するプロパティが存在しない場合は文字列「LDAP」。
        関連項目:
        セキュリティ・プロパティ