java.lang.Object
jdk.security.jarsigner.JarSigner.Builder
- 含まれているクラス:
JarSigner
public static class JarSigner.Builder extends Object
様々な署名関連のパラメータから不変の
JarSignerを作成できる可変ビルダー・クラス。- 導入されたバージョン:
- 9
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明Builder(KeyStore.PrivateKeyEntry entry) KeyStore.PrivateKeyEntryオブジェクトを使用してJarSigner.Builderオブジェクトを作成します。Builder(PrivateKey privateKey, CertPath certPath) 秘密キーと証明書パスを使用してJarSigner.Builderオブジェクトを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明build()setterメソッドによって設定されたパラメータからJarSignerオブジェクトをビルドします。digestAlgorithm(String algorithm) ダイジェスト・アルゴリズムを設定します。digestAlgorithm(String algorithm, Provider provider) 指定されたプロバイダからダイジェスト・アルゴリズムを設定します。eventHandler(BiConsumer<String, String> handler) 署名プロセス中にJarEntryを追加、署名または更新するときにトリガーされるenイベント・ハンドラを設定します。static Stringデフォルトのダイジェスト・アルゴリズムを取得します。static String秘密キーのデフォルトのシグネチャ・アルゴリズムを取得します。setProperty(String key, String value) 指定されたキーによって示される追加の実装固有プロパティを設定します。signatureAlgorithm(String algorithm) シグネチャ・アルゴリズムを設定します。signatureAlgorithm(String algorithm, Provider provider) 指定されたプロバイダのシグネチャ・アルゴリズムを設定します。signerName(String name) 署名者名を設定します。タイムスタンプ局(TSA)のURIを設定します。
-
コンストラクタの詳細
-
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(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を追加、署名または更新するときにトリガーされる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"。
- "tsaDigestAlg": タイムスタンプ・リクエストのダイジェスト・データのアルゴリズム。 デフォルト値は
- パラメータ:
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(java.lang.String)をコールしてシグネチャ・アルゴリズムを指定する必要があります。 それ以外の場合、build()メソッドはIllegalArgumentExceptionをスローします。
-
build
public JarSigner build()setterメソッドによって設定されたパラメータからJarSignerオブジェクトをビルドします。このメソッドは、この
Builderオブジェクトの内部状態を変更せず、複数回コールして複数のJarSignerオブジェクトを生成できます。 このメソッドがコールされた後、このBuilderでメソッドをコールしても、新しく作成されたJarSignerオブジェクトには影響しません。- 戻り値:
JarSignerオブジェクト。- スロー:
IllegalArgumentException- シグネチャ・アルゴリズムが設定されておらず、getDefaultSignatureAlgorithm(java.security.PrivateKey)メソッドを使用して秘密キーから導出できない場合。
-