クラスJarSigner.Builder

java.lang.Object
jdk.security.jarsigner.JarSigner.Builder
含まれているクラス:
JarSigner

public static class JarSigner.Builder extends Object
様々な署名関連のパラメータから不変のJarSignerを作成できる可変ビルダー・クラス。
導入されたバージョン:
9
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    KeyStore.PrivateKeyEntryオブジェクトを使用してJarSigner.Builderオブジェクトを作成します。
    Builder(PrivateKey privateKey, CertPath certPath)
    秘密キーと証明書パスを使用してJarSigner.Builderオブジェクトを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    setterメソッドによって設定されたパラメータからJarSignerオブジェクトをビルドします。
    ダイジェスト・アルゴリズムを設定します。
    digestAlgorithm(String algorithm, Provider provider)
    指定されたプロバイダからダイジェスト・アルゴリズムを設定します。
    署名プロセス中にJarEntryを追加、署名または更新するときにトリガーされるenイベント・ハンドラを設定します。
    static String
    デフォルトのダイジェスト・アルゴリズムを取得します。
    static String
    秘密キーのデフォルトのシグネチャ・アルゴリズムを取得します。
    setProperty(String key, String value)
    指定されたキーによって示される追加の実装固有プロパティを設定します。
    シグネチャ・アルゴリズムを設定します。
    signatureAlgorithm(String algorithm, Provider provider)
    指定されたプロバイダのシグネチャ・アルゴリズムを設定します。
    署名者名を設定します。
    tsa(URI uri)
    タイムスタンプ局(TSA)のURIを設定します。

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

    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であるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • Builder

      public Builder(KeyStore.PrivateKeyEntry entry)
      KeyStore.PrivateKeyEntryオブジェクトを使用してJarSigner.Builderオブジェクトを作成します。
      パラメータ:
      entry - 署名者のKeyStore.PrivateKeyEntry
    • Builder

      public Builder(PrivateKey privateKey, CertPath certPath)
      秘密キーと証明書パスを使用してJarSigner.Builderオブジェクトを作成します。
      パラメータ:
      privateKey - 署名者の秘密キー。
      certPath - 署名者の証明パス。
      スロー:
      IllegalArgumentException - certPathが空の場合、またはprivateKeyアルゴリズムがエンド・エンティティ証明書(certPathの最初の証明書)のPublicKeyのアルゴリズムと一致しない場合。
  • メソッドの詳細

    • digestAlgorithm

      public JarSigner.Builder digestAlgorithm(String algorithm) throws NoSuchAlgorithmException
      ダイジェスト・アルゴリズムを設定します。 ダイジェスト・アルゴリズムが指定されていない場合は、getDefaultDigestAlgorithm()によって返されるデフォルトのアルゴリズムが使用されます。
      パラメータ:
      algorithm - アルゴリズムの標準名。 標準アルゴリズム名の詳細は、「Java暗号化アーキテクチャの標準アルゴリズム名ドキュメント」MessageDigestの項を参照してください。
      戻り値:
      JarSigner.Builder自体。
      スロー:
      NoSuchAlgorithmException - algorithmが使用できない場合。
      外部仕様
    • digestAlgorithm

      public JarSigner.Builder digestAlgorithm(String algorithm, Provider provider) throws NoSuchAlgorithmException
      指定されたプロバイダからダイジェスト・アルゴリズムを設定します。 ダイジェスト・アルゴリズムが指定されていない場合は、getDefaultDigestAlgorithm()によって返されるデフォルトのアルゴリズムが使用されます。
      パラメータ:
      algorithm - アルゴリズムの標準名。 標準アルゴリズム名の詳細は、「Java暗号化アーキテクチャの標準アルゴリズム名ドキュメント」MessageDigestの項を参照してください。
      provider - プロバイダ
      戻り値:
      JarSigner.Builder自体。
      スロー:
      NoSuchAlgorithmException - algorithmが指定されたプロバイダで使用できない場合。
      外部仕様
    • signatureAlgorithm

      public JarSigner.Builder signatureAlgorithm(String algorithm) throws NoSuchAlgorithmException
      シグネチャ・アルゴリズムを設定します。 署名アルゴリズムが指定されていない場合は、秘密キーのgetDefaultSignatureAlgorithm(PrivateKey)によって返されるデフォルトの署名アルゴリズムが使用されます。
      パラメータ:
      algorithm - アルゴリズムの標準名。 標準アルゴリズム名の詳細は、「Java暗号化アーキテクチャの標準アルゴリズム名ドキュメント」Signatureの項を参照してください。
      戻り値:
      JarSigner.Builder自体。
      スロー:
      NoSuchAlgorithmException - algorithmが使用できない場合。
      IllegalArgumentException - algorithmが署名者の秘密キーのアルゴリズムと互換性がない場合。
      外部仕様
    • signatureAlgorithm

      public JarSigner.Builder signatureAlgorithm(String algorithm, Provider provider) throws NoSuchAlgorithmException
      指定されたプロバイダのシグネチャ・アルゴリズムを設定します。 署名アルゴリズムが指定されていない場合は、秘密キーのgetDefaultSignatureAlgorithm(PrivateKey)によって返されるデフォルトの署名アルゴリズムが使用されます。
      パラメータ:
      algorithm - アルゴリズムの標準名。 標準アルゴリズム名の詳細は、「Java暗号化アーキテクチャの標準アルゴリズム名ドキュメント」Signatureの項を参照してください。
      provider - プロバイダ
      戻り値:
      JarSigner.Builder自体。
      スロー:
      NoSuchAlgorithmException - algorithmが指定されたプロバイダで使用できない場合。
      IllegalArgumentException - algorithmが署名者の秘密キーのアルゴリズムと互換性がない場合。
      外部仕様
    • tsa

      public JarSigner.Builder tsa(URI uri)
      タイムスタンプ局(TSA)のURIを設定します。
      パラメータ:
      uri - URI。
      戻り値:
      JarSigner.Builder自体。
    • signerName

      public JarSigner.Builder signerName(String name)
      署名者名を設定します。 この名前は、シグネチャ・ファイルのベース名として使用されます。 すべての小文字は、シグネチャ・ファイル名では大文字に変換されます。 署名者名が指定されていない場合は、文字列"SIGNER"が使用されます。
      パラメータ:
      name - 署名者の名前。
      戻り値:
      JarSigner.Builder自体。
      スロー:
      IllegalArgumentException - nameが空であるか、8より大きいサイズであるか、またはセット"a-zA-Z0-9_-"からの文字が含まれていない場合。
    • eventHandler

      public JarSigner.Builder eventHandler(BiConsumer<String,String> handler)
      署名プロセス中にJarEntryを追加、署名または更新するときにトリガーされるenイベント・ハンドラを設定します。

      ハンドラを使用して署名の進行状況を表示できます。 ハンドラの最初の引数は"adding"、"signing"または"updating"で、2番目の引数は処理されるJarEntryの名前です。

      パラメータ:
      handler - イベント・ハンドラ。
      戻り値:
      JarSigner.Builder自体。
    • setProperty

      public JarSigner.Builder setProperty(String key, String value)
      指定されたキーによって示される追加の実装固有プロパティを設定します。
      実装上のノート:
      この実装では、次のプロパティをサポートしています:
      • "tsaDigestAlg": タイムスタンプ・リクエストのダイジェスト・データのアルゴリズム。 デフォルト値はgetDefaultDigestAlgorithm()の結果と同じです。
      • "tsaPolicyId": タイムスタンプ権限の場合はTSAPolicyID。 デフォルト値なし
      • "internalsf": "true"(該当する場合)SFファイルはシグネチャ・ブロック内に含まれ、それ以外の場合は"false"です。 デフォルト"false"。
      • "sectionsonly": "true"(該当する場合)SFファイルには、マニフェストの各セクションのハッシュ値のみが含まれ、マニフェスト全体の場合は"false"が含まれません。 デフォルト"false"。
      すべてのプロパティ名で、大文字と小文字は区別されません。
      パラメータ:
      key - プロパティの名前。
      value - プロパティの値。
      戻り値:
      JarSigner.Builder自体。
      スロー:
      UnsupportedOperationException - キーがこの実装でサポートされていない場合。
      IllegalArgumentException - 値がこのキーの有効な値として受け入れられない場合。
    • getDefaultDigestAlgorithm

      public static String getDefaultDigestAlgorithm()
      デフォルトのダイジェスト・アルゴリズムを取得します。
      実装上のノート:
      この実装は"SHA-384"を返します。 この値は将来変更される可能性があります。
      戻り値:
      デフォルトのダイジェスト・アルゴリズム。
    • getDefaultSignatureAlgorithm

      public static String getDefaultSignatureAlgorithm(PrivateKey key)
      秘密キーのデフォルトのシグネチャ・アルゴリズムを取得します。 たとえば、2048ビットRSAキーの場合はSHA384withRSA、384ビットECキーの場合はSHA384withECDSAです。
      実装上のノート:
      この実装では、NIST SP 800-57 Part 1-Rev.5の表2および3に定義されている同等の長所と、必要に応じてNISTの推奨事項を使用します。 具体的には、キー・サイズが7680ビットを超えるRSAキー、またはキー・サイズが512ビット以上のECキーの場合、シグネチャのハッシュ関数としてSHA-512が使用されます。 そうでない場合は、結果として生成されるシグネチャ・アルゴリズムに対してキー・サイズが小さすぎる場合を除き、SHA-384が使用されます。 DSAキーの場合、キー・サイズに関係なくSHA256withDSAシグネチャ・アルゴリズムが返されます。 この値は将来変更される可能性があります。
      パラメータ:
      key - 秘密キー。
      戻り値:
      デフォルトのシグネチャ・アルゴリズム。 デフォルトのシグネチャ・アルゴリズムが見つからない場合はnullを返します。 この場合、署名アルゴリズムを指定するには、signatureAlgorithm(String)をコールする必要があります。 それ以外の場合、build()メソッドはIllegalArgumentExceptionをスローします。
    • build

      public JarSigner build()
      setterメソッドによって設定されたパラメータからJarSignerオブジェクトをビルドします。

      このメソッドは、このBuilderオブジェクトの内部状態を変更せず、複数回コールして複数のJarSignerオブジェクトを生成できます。 このメソッドがコールされた後、このBuilderでメソッドをコールしても、新しく作成されたJarSignerオブジェクトには影響しません。

      戻り値:
      JarSignerオブジェクト。
      スロー:
      IllegalArgumentException - 署名アルゴリズムが設定されておらず、getDefaultSignatureAlgorithm(PrivateKey)メソッドを使用して秘密キーから導出できない場合。