モジュール jdk.jartool
パッケージ jdk.security.jarsigner

クラスJarSigner.Builder

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

public static class JarSigner.Builder
extends Object
さまざまな署名関連のパラメータから不変のJarSignerを作成できる変更可能なBuilderクラス。
導入されたバージョン:
9
  • コンストラクタの詳細

    • Builder

      public Builder​(KeyStore.PrivateKeyEntry entry)
      JarSigner.BuilderオブジェクトをKeyStore.PrivateKeyEntryオブジェクトで作成します。
      パラメータ:
      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(java.security.PrivateKey)が秘密鍵として返すデフォルトのシグネチャ・アルゴリズムが使用されます。
      パラメータ:
      algorithm - アルゴリズムの標準的な名前。 標準的なアルゴリズム名については、「Java暗号化アーキテクチャの標準アルゴリズム名ドキュメント」Signatureセクションを参照してください。
      戻り値:
      JarSigner.Builder自体。
      例外:
      NoSuchAlgorithmException - algorithmが利用できない場合。
      IllegalArgumentException - algorithmが署名者秘密鍵のアルゴリズムと互換性がない場合。
    • signatureAlgorithm

      public JarSigner.Builder signatureAlgorithm​(String algorithm, Provider provider) throws NoSuchAlgorithmException
      指定されたプロバイダからシグネチャ・アルゴリズムを設定します。 シグネチャ・アルゴリズムが指定されていない場合は、getDefaultSignatureAlgorithm(java.security.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を追加、署名、または更新するときにトリガーされるイベント・ハンドラを設定します。

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

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

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

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

      public static String getDefaultSignatureAlgorithm​(PrivateKey key)
      非公開鍵のデフォルトのシグネチャ・アルゴリズムを取得します。 たとえば、2048ビットRSAキーの場合はSHA256withRSA、384ビットECキーの場合はSHA384withECDSAです。
      実装上のノート:
      この実装は、NIST SP 800-57 Part 1-Rev.4の表2と3で定義されているような同等の強みを利用しています。 具体的には、キー・サイズが7680ビットを超えるDSAまたはRSAキー、または512ビット以上のキー・サイズを持つECキーの場合、SHA-512がシグネチャのハッシュ関数として使用されます。 DSAまたはRSAキーのキー・サイズが3072ビットを超えるか、ECキーのキー・サイズが384ビット以上の場合、SHA-384が使用されます。 それ以外の場合は、SHA-256が使用されます。 値は将来変更される可能性があります。
      パラメータ:
      key - 秘密鍵。
      戻り値:
      デフォルトのシグネチャ・アルゴリズム。 デフォルトのシグネチャ・アルゴリズムが見つからない場合はnullを返します。 この場合、signatureAlgorithm(java.lang.String)を呼び出してシグネチャ・アルゴリズムを指定する必要があります。 それ以外の場合、build()メソッドはIllegalArgumentExceptionをスローします。
    • build

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

      このメソッドは、このBuilderオブジェクトの内部状態を変更せず、複数回呼び出して複数のJarSignerオブジェクトを生成することができます。 このメソッドが呼び出された後、このBuilderの任意のメソッドを呼び出すと、新しく構築されたJarSignerオブジェクトには何の効果もありません。

      戻り値:
      JarSignerオブジェクト。
      例外:
      IllegalArgumentException - シグネチャ・アルゴリズムが設定されておらず、getDefaultSignatureAlgorithm(java.security.PrivateKey)メソッドを使用して秘密鍵から派生することができない場合。