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