git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@1221901 13f79535-47bb-0310-9956-ffa450edef68master
@@ -359,6 +359,7 @@ Victor Toni | |||||
Vincent Legoll | Vincent Legoll | ||||
Volker Leidl | Volker Leidl | ||||
Waldek Herka | Waldek Herka | ||||
Wang Weijun | |||||
Will Wang | Will Wang | ||||
William Bernardet | William Bernardet | ||||
William Ferguson | William Ferguson | ||||
@@ -167,6 +167,10 @@ Other changes: | |||||
be used to make the task sleep between retry attempts. | be used to make the task sleep between retry attempts. | ||||
Bugzilla Report 52076. | Bugzilla Report 52076. | ||||
* <signjar> has new attributes that control the signature and digest | |||||
algorithms. | |||||
Bugzilla Report 52344. | |||||
Changes from Ant 1.8.1 TO Ant 1.8.2 | Changes from Ant 1.8.1 TO Ant 1.8.2 | ||||
=================================== | =================================== | ||||
@@ -1444,6 +1444,10 @@ | |||||
<first>Volker</first> | <first>Volker</first> | ||||
<last>Leidl</last> | <last>Leidl</last> | ||||
</name> | </name> | ||||
<name> | |||||
<first>Wang</first> | |||||
<last>Weijun</last> | |||||
</name> | |||||
<name> | <name> | ||||
<first>Will</first> | <first>Will</first> | ||||
<last>Wang</last> | <last>Wang</last> | ||||
@@ -158,6 +158,16 @@ block</td> | |||||
<em>since Ant 1.8.0</em>.</td> | <em>since Ant 1.8.0</em>.</td> | ||||
<td align="center" valign="top">No; default false</td> | <td align="center" valign="top">No; default false</td> | ||||
</tr> | </tr> | ||||
<tr> | |||||
<td valign="top">sigalg</td> | |||||
<td valign="top">name of signature algorithm</td> | |||||
<td valign="top" align="center">No</td> | |||||
</tr> | |||||
<tr> | |||||
<td valign="top">digestalg</td> | |||||
<td valign="top">name of digest algorithm</td> | |||||
<td valign="top" align="center">No</td> | |||||
</tr> | |||||
</table> | </table> | ||||
<h3>Parameters as nested elements</h3> | <h3>Parameters as nested elements</h3> | ||||
<table border="1" cellpadding="2" cellspacing="0"> | <table border="1" cellpadding="2" cellspacing="0"> | ||||
@@ -230,6 +240,24 @@ all be copied to this directory, not to subdirectories. | |||||
<p> | <p> | ||||
Sign all the JAR files in dist/**/*.jar <i>in-situ</i>. Lazy signing is used, | Sign all the JAR files in dist/**/*.jar <i>in-situ</i>. Lazy signing is used, | ||||
so the files will only be signed if they are not already signed. | so the files will only be signed if they are not already signed. | ||||
</p> | |||||
<blockquote><pre> | |||||
<signjar | |||||
alias="testonly" keystore="testkeystore" | |||||
storepass="apacheant" | |||||
sigalg="MD5withRSA" | |||||
digestalg="SHA1"> | |||||
<path> | |||||
<fileset dir="dist" includes="**/*.jar" /> | |||||
</path> | |||||
</signjar> | |||||
</pre></blockquote> | |||||
<p> | |||||
Sign all the JAR files in dist/**/*.jar using the digest algorithm SHA1 and the | |||||
signature algorithm MD5withRSA. This is especially useful when you want to use | |||||
the JDK 7 jarsigner (which uses SHA256 and SHA256withRSA as default) to create | |||||
signed jars that will be deployed on platforms not supporting SHA256 and | |||||
SHA256withRSA. | |||||
</p> | </p> | ||||
<h3>About timestamp signing</h3> | <h3>About timestamp signing</h3> | ||||
@@ -109,6 +109,16 @@ public class SignJar extends AbstractJarSignerTask { | |||||
*/ | */ | ||||
private boolean force = false; | private boolean force = false; | ||||
/** | |||||
* signature algorithm | |||||
*/ | |||||
private String sigAlg; | |||||
/** | |||||
* digest algorithm | |||||
*/ | |||||
private String digestAlg; | |||||
/** | /** | ||||
* error string for unit test verification: {@value} | * error string for unit test verification: {@value} | ||||
*/ | */ | ||||
@@ -275,6 +285,38 @@ public class SignJar extends AbstractJarSignerTask { | |||||
return force; | return force; | ||||
} | } | ||||
/** | |||||
* Signature Algorithm; optional | |||||
* | |||||
* @param sigAlg the signature algorithm | |||||
*/ | |||||
public void setSigAlg(String sigAlg) { | |||||
this.sigAlg = sigAlg; | |||||
} | |||||
/** | |||||
* Signature Algorithm; optional | |||||
*/ | |||||
public String getSigAlg() { | |||||
return sigAlg; | |||||
} | |||||
/** | |||||
* Digest Algorithm; optional | |||||
* | |||||
* @param digestAlg the digest algorithm | |||||
*/ | |||||
public void setDigestAlg(String digestAlg) { | |||||
this.digestAlg = digestAlg; | |||||
} | |||||
/** | |||||
* Digest Algorithm; optional | |||||
*/ | |||||
public String getDigestAlg() { | |||||
return digestAlg; | |||||
} | |||||
/** | /** | ||||
* sign the jar(s) | * sign the jar(s) | ||||
* | * | ||||
@@ -420,6 +462,16 @@ public class SignJar extends AbstractJarSignerTask { | |||||
addValue(cmd, "-sectionsonly"); | addValue(cmd, "-sectionsonly"); | ||||
} | } | ||||
if (sigAlg != null) { | |||||
addValue(cmd, "-sigalg"); | |||||
addValue(cmd, sigAlg); | |||||
} | |||||
if (digestAlg != null) { | |||||
addValue(cmd, "-digestalg"); | |||||
addValue(cmd, digestAlg); | |||||
} | |||||
//add -tsa operations if declared | //add -tsa operations if declared | ||||
addTimestampAuthorityCommands(cmd); | addTimestampAuthorityCommands(cmd); | ||||