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

クラスCertStore

java.lang.Object
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

      指定した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である場合
      関連項目:
    • getInstance

      指定された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である場合
      関連項目:
    • 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である場合
      関連項目:
    • 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」。
      関連項目: