Skip to content

Commit 3040bb1

Browse files
committed
SignServer documentation (#252)
1 parent bc1bedd commit 3040bb1

File tree

6 files changed

+52
-3
lines changed

6 files changed

+52
-3
lines changed

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Jsign is free to use and licensed under the [Apache License version 2.0](https:/
3737
* [GaraSign](https://garantir.io/garasign/)
3838
* [Google Cloud KMS](https://cloud.google.com/security-key-management)
3939
* [HashiCorp Vault](https://www.vaultproject.io/)
40+
* [Keyfactor SignServer](https://www.signserver.org)
4041
* [Oracle Cloud KMS](https://www.oracle.com/security/cloud-security/key-management/)
4142
* [SSL.com eSigner](https://www.ssl.com/esigner/)
4243
* Private key formats: PVK and PEM (PKCS#1 and PKCS#8), encrypted or not
@@ -54,7 +55,12 @@ See https://ebourg.github.io/jsign for more information.
5455

5556
#### Version 7.0 (in development)
5657

57-
* New signing services: HashiCorp Vault Transit (contributed by Eatay Mizrachi), Azure Trusted Signing, Oracle Cloud and GaraSign
58+
* New signing services:
59+
* Azure Trusted Signing
60+
* Oracle Cloud
61+
* GaraSign
62+
* HashiCorp Vault Transit (contributed by Eatay Mizrachi)
63+
* Keyfactor SignServer (contributed by Björn Kautler)
5864
* Signing of NuGet packages has been implemented (contributed by Sebastian Stamm)
5965
* Commands have been added:
6066
* `timestamp`: timestamps the signatures of a file

docs/index.html

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ <h3 id="features">Features</h3>
7070
<li><a href="https://garantir.io/garasign/">GaraSign</a></li>
7171
<li><a href="https://cloud.google.com/security-key-management">Google Cloud KMS</a></li>
7272
<li><a href="https://www.vaultproject.io">HashiCorp Vault</a></li>
73+
<li><a href="https://www.signserver.org">Keyfactor SignServer</a></li>
7374
<li><a href="https://www.oracle.com/security/cloud-security/key-management/">Oracle Cloud KMS</a></li>
7475
<li><a href="https://www.ssl.com/esigner/">SSL.com eSigner</a></li>
7576
</ul>
@@ -228,6 +229,7 @@ <h4 id="attributes" class="mobile-only">Attributes</h4>
228229
<li><code>GOOGLECLOUD</code>: Google Cloud KMS</li>
229230
<li><code>HASHICORPVAULT</code>: HashiCorp Vault</li>
230231
<li><code>ORACLECLOUD</code>: Oracle Cloud Key Management Service</li>
232+
<li><code>SIGNSERVER</code>: Keyfactor SignServer</li>
231233
<li><code>TRUSTEDSIGNING</code>: Azure Trusted Signing</li>
232234
</ul>
233235
</td>
@@ -549,6 +551,7 @@ <h3 id="cli">Command Line Tool</h3>
549551
- GOOGLECLOUD: Google Cloud KMS
550552
- HASHICORPVAULT: HashiCorp Vault
551553
- ORACLECLOUD: Oracle Cloud Key Management Service
554+
- SIGNSERVER: Keyfactor SignServer
552555
- TRUSTEDSIGNING: Azure Trusted Signing
553556
-a,--alias &lt;NAME> The alias of the certificate used for signing in the keystore
554557
--keypass &lt;PASSWORD> The password of the private key. When using a keystore,
@@ -880,6 +883,43 @@ <h4 id="example-hashicorpvault">Signing with HashiCorp Vault</h4>
880883
--certfile full-chain.pem application.exe
881884
</pre>
882885

886+
887+
<h4 id="example-signserver">Signing with Keyfactor SignServer</h4>
888+
889+
<p><a href="https://www.signserver.org">SignServer</a> is an on-premises open source signing service developed by Keyfactor.
890+
SignServer supports various signing operations handled by signer workers. Jsign requires a
891+
<a href="https://doc.primekey.com/signserver/signserver-reference/signserver-workers/signserver-signers/plain-signer">Plain Signer</a>
892+
worker configured with the <code>CLIENTSIDEHASHING</code> or <code>ALLOW_CLIENTSIDEHASHING_OVERRIDE</code> properties
893+
set to <code>true</code>, and the <code>SIGNATUREALGORITHM</code> property set to <code>NONEwithRSA</code> or
894+
<code>NONEwithECDSA</code>.</p>
895+
896+
<p>The authentication is performed by specifying the username/password or the TLS client certificate in the
897+
<code>storepass</code> parameter. If the TLS client certificate is stored in a password protected keystore, the password
898+
is specified in the <code>keypass</code> parameter. The <code>keystore</code> parameter references the URL of the
899+
SignServer REST API. The <code>alias</code> parameter specifies the id or the name of the worker. </p>
900+
901+
<p>Authenticating with a username and a password:</p>
902+
903+
<pre>
904+
jsign --storetype SIGNSERVER \
905+
--keystore https://example.com/signserver \
906+
--storepass "&lt;username&gt;|&lt;password&gt;" \
907+
--alias test \
908+
application.exe
909+
</pre>
910+
911+
<p>Authenticating with a TLS client certificate:</p>
912+
913+
<pre>
914+
jsign --storetype SIGNSERVER \
915+
--keystore https://example.com/signserver \
916+
--storepass "/path/to/client-certificate.p12" \
917+
--keypass &lt;client-certificate-password&gt; \
918+
--alias test \
919+
application.exe
920+
</pre>
921+
922+
883923
<h4 id="example-oraclecloud">Signing with Oracle Cloud Key Management Service</h4>
884924

885925
<p>Signing with the Oracle Cloud Infrastructure Key Management Service requires the

jsign-cli/src/main/java/net/jsign/JsignCLI.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public static void main(String... args) {
9595
+ "- GOOGLECLOUD: Google Cloud KMS\n"
9696
+ "- HASHICORPVAULT: HashiCorp Vault\n"
9797
+ "- ORACLECLOUD: Oracle Cloud Key Management Service\n"
98+
+ "- SIGNSERVER: Keyfactor SignServer\n"
9899
+ "- TRUSTEDSIGNING: Azure Trusted Signing\n").build());
99100
options.addOption(Option.builder("a").hasArg().longOpt(PARAM_ALIAS).argName("NAME").desc("The alias of the certificate used for signing in the keystore").build());
100101
options.addOption(Option.builder().hasArg().longOpt(PARAM_KEYPASS).argName("PASSWORD").desc("The password of the private key. When using a keystore, this parameter can be omitted if the keystore shares the same password").build());

jsign-maven-plugin/src/main/java/net/jsign/JsignMojo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public class JsignMojo extends AbstractMojo {
9090

9191
/**
9292
* The type of the keystore (JKS, JCEKS, PKCS12, PKCS11, ETOKEN, NITROKEY, OPENPGP, OPENSC, PIV, YUBIKEY, AWS,
93-
* AZUREKEYVAULT, DIGICERTONE, ESIGNER, GARASIGN, GOOGLECLOUD, HASHICORPVAULT, ORACLECLOUD or TRUSTEDSIGNING).
93+
* AZUREKEYVAULT, DIGICERTONE, ESIGNER, GARASIGN, GOOGLECLOUD, HASHICORPVAULT, ORACLECLOUD, SIGNSERVER or TRUSTEDSIGNING).
9494
*/
9595
@Parameter( property = "jsign.storetype" )
9696
private String storetype;

jsign/src/deb/data/usr/share/bash-completion/completions/jsign

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ _jsign()
4242
return 0
4343
;;
4444
--storetype)
45-
COMPREPLY=( $( compgen -W 'JKS JCEKS PKCS12 PKCS11 AWS AZUREKEYVAULT DIGICERTONE ESIGNER ETOKEN GARASIGN GOOGLECLOUD HASHICORPVAULT ORACLECLOUD TRUSTEDSIGNING YUBIKEY NITROKEY OPENPGP OPENSC PIV' -- "$cur" ) )
45+
COMPREPLY=( $( compgen -W 'JKS JCEKS PKCS12 PKCS11 AWS AZUREKEYVAULT DIGICERTONE ESIGNER ETOKEN GARASIGN GOOGLECLOUD HASHICORPVAULT ORACLECLOUD SIGNSERVER TRUSTEDSIGNING YUBIKEY NITROKEY OPENPGP OPENSC PIV' -- "$cur" ) )
4646
return 0
4747
;;
4848
--storepass|-a|--alias|--keypass|-t|--tsaurl|-r|--tsretries|-w|--tsretrywait|-n|--name|-u|--url|--proxyUrl|--proxyUser|--proxyPass|--value)

jsign/src/deb/data/usr/share/man/man1/jsign.1

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ Cloud key management systems:
9999
.br
100100
- ORACLECLOUD : Oracle Cloud Key Management Service
101101
.br
102+
- SIGNSERVER : Keyfactor SignServer
103+
.br
102104
- TRUSTEDSIGNING: Azure Trusted Signing
103105

104106
This option is not required for file based keystores (JKS, JCEKS and PKCS12).

0 commit comments

Comments
 (0)