クラスSecurity

java.lang.Object
java.security.Security

public final class Security extends Object

このクラスは、すべてのセキュリティ・プロパティ、および共通のセキュリティ・メソッドを集中管理します。 その主な使用目的の1つにプロバイダの管理があります。

セキュリティ・プロパティのデフォルト値は、実装固有のロケーション(通常は、Javaインストール・ディレクトリ内のプロパティ・ファイルconf/security/java.security)から読み取られます。

実装上のノート:
プロパティ・ファイルのロードに失敗した場合、JDK実装では、Securityクラスの初期化時に未指定のエラーがスローされます。
導入されたバージョン:
1.1
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static int
    プロバイダを可能な次の位置に追加します。
    static String
    getAlgorithmProperty(String algName, String propName)
    非推奨。
    このメソッドは、アルゴリズム固有のパラメータを解析する方法を決定するために、"SUN"暗号化サービス・プロバイダのマスター・ファイル内の独自プロパティの値を返すために使用されます。
    static Set<String>
    getAlgorithms(String serviceName)
    指定されたJava暗号化サービス(e.g., Signature, MessageDigest, Cipher, Mac, KeyStore)で使用可能なすべてのアルゴリズムまたはタイプの名前を含むStringオブジェクトのセットを返します。
    static String
    セキュリティ・プロパティ値を取得します。
    static Provider
    指定された名前でインストールされているプロバイダを返します。
    static Provider[]
    インストールされているすべてのプロバイダの配列を返します。
    static Provider[]
    指定した選択基準を満たすすべてのインストール済プロバイダを含む配列を返します。そのようなプロバイダがインストールされていない場合はnullを返します。
    static Provider[]
    指定した選択基準を満たすすべてのインストール済プロバイダを含む配列を返します。そのようなプロバイダがインストールされていない場合はnullを返します。
    static int
    insertProviderAt(Provider provider, int position)
    指定された位置に新規プロバイダを追加します。
    static void
    指定された名前のプロバイダを削除します。
    static void
    setProperty(String key, String datum)
    セキュリティ・プロパティの値を設定します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • メソッドの詳細

    • getAlgorithmProperty

      @Deprecated public static String getAlgorithmProperty(String algName, String propName)
      非推奨。
      このメソッドは、アルゴリズム固有のパラメータを解析する方法を決定するために、"SUN"暗号化サービス・プロバイダのマスター・ファイル内の独自プロパティの値を返すために使用されます。 代わりに、新しいプロバイダベースのアルゴリズムに依存しないAlgorithmParametersおよびKeyFactoryエンジン・クラス(J2SEバージョン1.2プラットフォームより導入)を使用してください。
      アルゴリズムに対する指定されたプロパティを取得します。 アルゴリズムの名前は標準名とする必要があります。 標準アルゴリズム名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」を参照してください。 特殊なアルゴリズム・パーサーが(キー・パーサーと同じように)認識されているアルゴリズムにクラスをマップするために使用することもあります。
      パラメータ:
      algName - アルゴリズム名。
      propName - 取得するプロパティの名前。
      戻り値:
      指定されたプロパティの値。
      外部仕様
    • insertProviderAt

      public static int insertProviderAt(Provider provider, int position)
      指定された位置に新規プロバイダを追加します。 位置は優先順になっていて、要求されたアルゴリズムに対してプロバイダがその順序で検索されます。 位置は1から始まり、1が最優先で次に2、3 ...と続きます。 位置が1未満またはnより大きい場合(nはインストールされているプロバイダの数)、プロバイダ(まだインストールされていない場合)はリストの末尾またはn + 1の位置に挿入されます。

      あるプロバイダが要求された場所にインストールされた場合は、それまでその場所にあったプロバイダ、およびpositionよりあとの位置のすべてのプロバイダの順位は、1つあとになり、インストールされたプロバイダ一覧の最後尾に向かって1つ移動します。

      プロバイダは、インストール済みの場合には追加できません。

      パラメータ:
      provider - 追加されるプロバイダ。
      position - 呼出し側がこのプロバイダに要望する優先順位。
      戻り値:
      プロバイダが追加された実際の優先順位。インストール済みで追加できない場合は -1。
      スロー:
      NullPointerException - プロバイダがnullの場合
      関連項目:
    • addProvider

      public static int addProvider(Provider provider)
      プロバイダを可能な次の位置に追加します。
      パラメータ:
      provider - 追加されるプロバイダ。
      戻り値:
      プロバイダが追加された実際の優先順位。インストール済みで追加できない場合は -1。
      スロー:
      NullPointerException - プロバイダがnullの場合
      関連項目:
    • removeProvider

      public static void removeProvider(String name)
      指定された名前のプロバイダを削除します。

      指定されたプロバイダが削除されると、そのプロバイダよりもあとの位置にあるすべてのプロバイダの位置が1つ前になり、インストールされたプロバイダ一覧の先頭に向かって1つ移動します。

      プロバイダがインストールされていない場合、または名前がnullの場合、このメソッドは暗黙的に返されます。

      パラメータ:
      name - 削除されるプロバイダの名前。
      関連項目:
    • getProviders

      public static Provider[] getProviders()
      インストールされているすべてのプロバイダの配列を返します。 配列内でのプロバイダは優先順位の順になっています。
      戻り値:
      インストールされているすべてのプロバイダの配列。
    • getProvider

      public static Provider getProvider(String name)
      指定された名前でインストールされているプロバイダを返します。 指定した名前のプロバイダがインストールされていない場合、または名前がnullの場合は、nullを返します。
      パラメータ:
      name - 取得するプロパティの名前。
      戻り値:
      指定された名前のプロバイダ。
      関連項目:
    • getProviders

      public static Provider[] getProviders(String filter)
      指定した選択基準を満たすすべてのインストール済プロバイダを含む配列を返します。そのようなプロバイダがインストールされていない場合はnullを返します。 返されたプロバイダの順は優先順となります。

      暗号化サービスは、常に特定のアルゴリズムまたはタイプに関連付けられています。 たとえば、デジタル署名サービスは常に特定のアルゴリズム(DSAなど)に、CertificateFactoryサービスは常に特定の証明書タイプ(X.509など)にそれぞれ関連付けられています。

      次の2種類のフォーマットのどちらかで選択基準を指定する必要があります。

      • <crypto_service>.<algorithm_or_type>

        暗号化サービス名には、ドットを含まないようにします。

        プロバイダが、指定暗号化サービス向けに指定されたアルゴリズムまたは型を実装していると、プロバイダは指定された選択基準を満たしています。

        「CertificateFactory.X.509」の場合は、X.509証明書のCertificateFactoryの実装を提供しているプロバイダであれば、その選択基準を満たしています。

      • <crypto_service>.<algorithm_or_type> <attribute_name>:<attribute_value>

        暗号化サービス名には、ドットを含まないようにします。 <algorithm_or_type><attribute_name>の間にスペース文字が1つ以上必要です。

        プロバイダが、指定暗号化サービス向けに指定されたアルゴリズムまたは型を実装していて、その実装が指定された属性名と値のペアで表記された制約を満たしている場合、プロバイダはこの選択基準を満たしています。

        たとえば、1024以上のキー・サイズを持つSHA1withDSA署名アルゴリズムを実装しているどのプロバイダも、「Signature.SHA1withDSA KeySize:1024」を満たしています。

      標準暗号化サービス名、標準アルゴリズム名および標準属性名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」を参照してください。

      パラメータ:
      filter - プロバイダの選択基準。 フィルタは大文字と小文字を区別する。
      戻り値:
      選択基準を満たすすべてのインストール済プロバイダ、またはそのようなプロバイダがインストールされていない場合はnull
      スロー:
      InvalidParameterException - フィルタが必要な形式以外の場合
      NullPointerException - フィルタがnullの場合
      導入されたバージョン:
      1.3
      外部仕様
      関連項目:
    • getProviders

      public static Provider[] getProviders(Map<String,String> filter)
      指定した選択基準を満たすすべてのインストール済プロバイダを含む配列を返します。そのようなプロバイダがインストールされていない場合はnullを返します。 返されたプロバイダの順は優先順となります。

      選択基準はマップで表現されます。 各マップ・エントリは選択基準のことです。 すべての選択基準をプロバイダが満たしている場合、プロバイダは選択されます。 このマップでは、どのエントリのキーも次の2種類の形式のどちらかになります。

      • <crypto_service>.<algorithm_or_type>

        暗号化サービス名には、ドットを含まないようにします。

        キーに関連した値は空の文字列である必要があります。

        プロバイダが、指定暗号化サービス向けに指定されたアルゴリズムまたは型を実装していると、プロバイダはこの選択基準を満たしています。

      • <crypto_service>. <algorithm_or_type> <attribute_name>

        暗号化サービス名には、ドットを含まないようにします。 <algorithm_or_type><attribute_name>の間にスペース文字が1つ以上必要です。

        キーに関連した値は、空でない文字列になります。 プロバイダが、指定暗号化サービス向けに指定されたアルゴリズムまたは型を実装していて、その実装が指定された属性名と値のペアで表記された制約を満たしている場合、プロバイダはこの選択基準を満たしています。

      標準暗号化サービス名、標準アルゴリズム名および標準属性名の詳細は、「Javaセキュリティ標準アルゴリズム名仕様」を参照してください。

      パラメータ:
      filter - プロバイダの選択基準。 フィルタは大文字と小文字を区別する。
      戻り値:
      選択基準を満たすすべてのインストール済プロバイダ、またはそのようなプロバイダがインストールされていない場合はnull
      スロー:
      InvalidParameterException - フィルタが必要な形式以外の場合
      NullPointerException - フィルタがnullの場合
      導入されたバージョン:
      1.3
      外部仕様
      関連項目:
    • getProperty

      public static String getProperty(String key)
      セキュリティ・プロパティ値を取得します。
      パラメータ:
      key - 取得するプロパティのキー。
      戻り値:
      セキュリティ・プロパティの値。そのキーを持つプロパティがない場合はnull
      スロー:
      NullPointerException - キーがnullの場合
      IllegalArgumentException - keyが予約されていて、Securityプロパティ名として使用できない場合。 予約されている鍵: "include"。
      関連項目:
    • setProperty

      public static void setProperty(String key, String datum)
      セキュリティ・プロパティの値を設定します。
      パラメータ:
      key - 設定するプロパティの名前。
      datum - 設定するプロパティの値。
      スロー:
      NullPointerException - キーまたはデータムがnullの場合
      IllegalArgumentException - keyが予約されていて、Securityプロパティ名として使用できない場合。 予約されている鍵: "include"。
      関連項目:
    • getAlgorithms

      public static Set<String> getAlgorithms(String serviceName)
      指定されたJava暗号化サービス(e.g., Signature, MessageDigest, Cipher, Mac, KeyStore)で使用可能なすべてのアルゴリズムまたはタイプの名前を含むStringオブジェクトのセットを返します。 指定されたサービスをサポートするプロバイダがない場合、またはserviceNamenullの場合、空のセットを返します。 Java暗号化サービスの完全なリストについては、「Java暗号化アーキテクチャ(JCA)リファレンス・ガイド」を参照してください。 ノート: 返されるセットは不変です。
      パラメータ:
      serviceName - Java暗号化サービス(e.g., Signature, MessageDigest, Cipher, Mac, KeyStore)の名前。 ノート: このパラメータは大文字と小文字を区別する。
      戻り値:
      指定されたJava暗号化サービスで使用可能なすべてのアルゴリズムまたはタイプの名前を含む一連のStringオブジェクト、または指定したサービスをサポートするプロバイダがない場合は空のセット。
      導入されたバージョン:
      1.4