- java.lang.Object
-
- jdk.security.jarsigner.JarSigner.Builder
-
-
构造方法摘要
构造方法 Constructor 描述 Builder(KeyStore.PrivateKeyEntry entry)
使用JarSigner.Builder
对象创建一个JarSigner.Builder对象。Builder(PrivateKey privateKey, CertPath certPath)
使用私钥和认证路径创建一个JarSigner.Builder
对象。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
对象创建一个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
- 算法的标准名称。 见MessageDigest
的部分Java Cryptography Architecture Standard Algorithm Name Documentation有关标准算法名称的信息。 - 结果
-
本身就是
JarSigner.Builder
。 - 异常
-
NoSuchAlgorithmException
- 如果algorithm
不可用。
-
digestAlgorithm
public JarSigner.Builder digestAlgorithm(String algorithm, Provider provider) throws NoSuchAlgorithmException
从指定的提供者设置摘要算法。 如果没有指定摘要算法,将使用返回的默认算法getDefaultDigestAlgorithm()
。- 参数
-
algorithm
- 算法的标准名称。 见MessageDigest
的部分Java Cryptography Architecture Standard Algorithm Name Documentation有关标准算法名称的信息。 -
provider
- 提供商。 - 结果
-
本身就是
JarSigner.Builder
。 - 异常
-
NoSuchAlgorithmException
- 如果algorithm
在指定的提供程序中不可用。
-
signatureAlgorithm
public JarSigner.Builder signatureAlgorithm(String algorithm) throws NoSuchAlgorithmException
设置签名算法。 如果没有指定签名算法,将使用getDefaultSignatureAlgorithm(java.security.PrivateKey)
为私钥返回的默认签名算法。- 参数
-
algorithm
- 算法的标准名称。 见Signature
的部分Java Cryptography Architecture Standard Algorithm Name Documentation有关标准算法名称的信息。 - 结果
-
本身就是
JarSigner.Builder
。 - 异常
-
NoSuchAlgorithmException
- 如果algorithm
不可用。 -
IllegalArgumentException
- 如果algorithm
与签名者私钥的算法不兼容。
-
signatureAlgorithm
public JarSigner.Builder signatureAlgorithm(String algorithm, Provider provider) throws NoSuchAlgorithmException
从指定的提供者设置签名算法。 如果没有指定签名算法,将使用由私钥返回的默认签名算法getDefaultSignatureAlgorithm(java.security.PrivateKey)
。- 参数
-
algorithm
- 算法的标准名称。 见Signature
的部分Java Cryptography Architecture Standard Algorithm Name Documentation有关标准算法名称的信息。 -
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
时将触发的事件处理程序。处理程序可用于显示签名进度。 处理程序的第一个参数可以是“添加”,“签名”或“更新”,第二个参数是正在处理的
JarEntry
的名称。- 参数
-
handler
- 事件处理程序。 - 结果
-
本身就是
JarSigner.Builder
。
-
setProperty
public JarSigner.Builder setProperty(String key, String value)
设置由指定键指示的附加实现特定属性。- Implementation Note:
-
此实现支持以下属性:
- “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()
获取默认摘要算法。- Implementation Note:
- 此实现返回“SHA-256”。 该值可能在将来发生变化。
- 结果
- 默认的摘要算法。
-
getDefaultSignatureAlgorithm
public static String getDefaultSignatureAlgorithm(PrivateKey key)
获取私钥的默认签名算法。 例如,SHA256withRSA用于2048位RSA密钥,SHA384和ECDSA用于384位EC密钥。- Implementation Note:
- 该实施使用了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)
方法从私钥派生。
-
-