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

クラスJarSigner.Builder

  • 含まれているクラス:
    JarSigner

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

      • Builder

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

      • tsa

        public JarSigner.Builder tsa​(URI uri)
        Time Stamping Authority (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イベント・ハンドラを設定します。

        ハンドラは、署名の進行状況を表示するために使用できます。 ハンドラの第1引数は「追加」、「署名」、または「更新」であり、第2引数は処理中の JarEntryの名前です。

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

        public JarSigner.Builder setProperty​(String key,
                                             String value)
        指定されたキーによって示される追加の実装固有のプロパティを設定します。
        実装上のノート:
        この実装では、次のプロパティがサポートされます。
        • "tsaDigestAlg": タイムスタンプ・リクエストのダイジェスト・データのアルゴリズム。 デフォルト値は、getDefaultDigestAlgorithm()の結果と同じです。
        • "tsaPolicyId": Timestamping AuthorityのTSAPolicyID。 デフォルト値はありません。
        • "internalsf": "true"の場合SFファイルは署名ブロック内に含まれ、それ以外の場合は"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)メソッドを使用して秘密キーから導出できない場合。