Java implementation of Microsoft Authenticode for signing Windows executables, installers & scripts
See the codeJsign is a code signing tool that allows you to sign and timestamp Windows executable files, installer packages and scripts. Jsign is platform independent and provides an alternative to native tools like signtool on Windows or the Mono development tools on Unix systems. It's particularly well-suited for signing executable wrappers and installers generated by tools such as NSIS, msitools, install4j, exe4j or launch4j. It emphasizes on seamless integration with cloud key management systems and hardware tokens.
Jsign is available as a command line tool for Linux, macOS and Windows, as a task/plugin for various build systems (Maven, Gradle, Ant, GitHub Actions), and as a Java library.
Jsign is free to use and licensed under the Apache License version 2.0.
See https://ebourg.github.io/jsign for more information.
verify command to verify the signatures of a file and display a diagnostic of the issues foundshow command to display the signatures of a file (contributed by Daniel Schaefer)--nonProxyHosts parameter allows to specify hosts that should bypass the HTTP proxy--lazy signing parameter skips files that are already signedremove command can now filter signatures by digest algorithm and certificate name--storepass <tenantId>|<clientId>|<clientSecret>
or with the AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET environment variables--tsmode and --alg parameters/opt/homebrew/lib/)
used on Apple Silicon and on DYLD_LIBRARY_PATH (contributed by ye4241)CRYPTOCERTUM storetype (no PKCS#11 module required)--version displays the version of Jsigncertfile parameter is specifiedSignable.setSignatures(List<CMSSignedData>) method to set multiple signatures (nesting is handled automatically)SignatureUtils.getSignatures() now removes the nested signatures from the first signature in the listkeystore parameter can now be specified with the ETOKEN storetype to distinguish between multiple connected devicestimestamp and tag commands have been fixed for MSI, catalog and script files--debug, --verbose and --quiet parameters now work for all commandstimestamp: timestamps the signatures of a filetag: adds unsigned data (such as user identification data) to signed filesextract: extracts the signature from a signed file, in DER or PEM formatremove: removes the signature from a signed file@ are now supported with the command line tool to sign multiple files--debug, --verbose and --quiet parameters control the verbosity of the output messagesPIV storetype (for Yubikeys with firmware version 5.7 or higher)[Content_Types].old entrystoretype parameter is now case insensitivekeystore parameterAWS_USE_FIPS_ENDPOINT environment variable is now supported to use the AWS KMS FIPS endpoints (contributed by Sebastian Müller)YUBIKEY storetype no longer triggers a CKR_USER_NOT_LOGGED_IN error--certfile parameter can now be used to replace the certificate chain from the keystorejsign-crypto modulenet.jsign loggerSignable implementations are now discovered dynamically using the ServiceLoader mechanismSignable.createContentInfo() has been replaced with Signable.createSignedContent()PIV storetypeETOKEN storetypecertfile parameter can now be in any orderkeystore parameter can now be specified with the OPENPGP storetype to distinguish between multiple connected devicesJSIGN_OPTS environment variablenet.jsign.jca.JsignJcaProvider JCA security provider to be used with other signing tools such as jarsignerSignable objectSignable.computeDigest(MessageDigest) has been replaced by Signable.computeDigest(DigestAlgorithm)http.agent system property is now appended to the User-Agent header when calling REST servicesAuthenticodeSigner sets the security provider automatically if the keystore used is backed by a PKCS#11 token or a cloud serviceAmazonSigningService now supports dynamic credentialsNITROKEY storetypeOPENSC storetypeOPENPGP storetypeHASHICORPVAULT storetype (contributed by Maria Merkel)-Djava.security.debug=sunpkcs11 with the YUBIKEY storetype no longer triggers an errorKeyStoreUtils class has been replaced by KeyStoreBuilderstorepass and keypass parameters can now be read from a file or from an environment variable<skip> configuration element, or the jsign.skip property)YUBIKEY storetype can be specified to sign with a YubiKey (the SunPKCS11 provider is automatically configured)alias parameter is now optional if the keystore contains only one entry (contributed by Michele Locati)storetype parameter is no longer required for JCEKS keystoresCMSAlgorithmProtection attribute is no longer added to the signature (contributed by Yegor Yarko)RSA instead of sha*RSA when using SHA-2 digests (contributed by Yegor Yarko)package phasepesign to jsignsignexe to jsignsigningTime attribute has been removed)Java
97.3%
Roff
2.2%
Java implementation of Microsoft Authenticode for signing Windows executables, installers & scripts
See the codeJsign is a code signing tool that allows you to sign and timestamp Windows executable files, installer packages and scripts. Jsign is platform independent and provides an alternative to native tools like signtool on Windows or the Mono development tools on Unix systems. It's particularly well-suited for signing executable wrappers and installers generated by tools such as NSIS, msitools, install4j, exe4j or launch4j. It emphasizes on seamless integration with cloud key management systems and hardware tokens.
Jsign is available as a command line tool for Linux, macOS and Windows, as a task/plugin for various build systems (Maven, Gradle, Ant, GitHub Actions), and as a Java library.
Jsign is free to use and licensed under the Apache License version 2.0.
See https://ebourg.github.io/jsign for more information.
verify command to verify the signatures of a file and display a diagnostic of the issues foundshow command to display the signatures of a file (contributed by Daniel Schaefer)--nonProxyHosts parameter allows to specify hosts that should bypass the HTTP proxy--lazy signing parameter skips files that are already signedremove command can now filter signatures by digest algorithm and certificate name--storepass <tenantId>|<clientId>|<clientSecret>
or with the AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET environment variables--tsmode and --alg parameters/opt/homebrew/lib/)
used on Apple Silicon and on DYLD_LIBRARY_PATH (contributed by ye4241)CRYPTOCERTUM storetype (no PKCS#11 module required)--version displays the version of Jsigncertfile parameter is specifiedSignable.setSignatures(List<CMSSignedData>) method to set multiple signatures (nesting is handled automatically)SignatureUtils.getSignatures() now removes the nested signatures from the first signature in the listkeystore parameter can now be specified with the ETOKEN storetype to distinguish between multiple connected devicestimestamp and tag commands have been fixed for MSI, catalog and script files--debug, --verbose and --quiet parameters now work for all commandstimestamp: timestamps the signatures of a filetag: adds unsigned data (such as user identification data) to signed filesextract: extracts the signature from a signed file, in DER or PEM formatremove: removes the signature from a signed file@ are now supported with the command line tool to sign multiple files--debug, --verbose and --quiet parameters control the verbosity of the output messagesPIV storetype (for Yubikeys with firmware version 5.7 or higher)[Content_Types].old entrystoretype parameter is now case insensitivekeystore parameterAWS_USE_FIPS_ENDPOINT environment variable is now supported to use the AWS KMS FIPS endpoints (contributed by Sebastian Müller)YUBIKEY storetype no longer triggers a CKR_USER_NOT_LOGGED_IN error--certfile parameter can now be used to replace the certificate chain from the keystorejsign-crypto modulenet.jsign loggerSignable implementations are now discovered dynamically using the ServiceLoader mechanismSignable.createContentInfo() has been replaced with Signable.createSignedContent()PIV storetypeETOKEN storetypecertfile parameter can now be in any orderkeystore parameter can now be specified with the OPENPGP storetype to distinguish between multiple connected devicesJSIGN_OPTS environment variablenet.jsign.jca.JsignJcaProvider JCA security provider to be used with other signing tools such as jarsignerSignable objectSignable.computeDigest(MessageDigest) has been replaced by Signable.computeDigest(DigestAlgorithm)http.agent system property is now appended to the User-Agent header when calling REST servicesAuthenticodeSigner sets the security provider automatically if the keystore used is backed by a PKCS#11 token or a cloud serviceAmazonSigningService now supports dynamic credentialsNITROKEY storetypeOPENSC storetypeOPENPGP storetypeHASHICORPVAULT storetype (contributed by Maria Merkel)-Djava.security.debug=sunpkcs11 with the YUBIKEY storetype no longer triggers an errorKeyStoreUtils class has been replaced by KeyStoreBuilderstorepass and keypass parameters can now be read from a file or from an environment variable<skip> configuration element, or the jsign.skip property)YUBIKEY storetype can be specified to sign with a YubiKey (the SunPKCS11 provider is automatically configured)alias parameter is now optional if the keystore contains only one entry (contributed by Michele Locati)storetype parameter is no longer required for JCEKS keystoresCMSAlgorithmProtection attribute is no longer added to the signature (contributed by Yegor Yarko)RSA instead of sha*RSA when using SHA-2 digests (contributed by Yegor Yarko)package phasepesign to jsignsignexe to jsignsigningTime attribute has been removed)Java
97.3%
Roff
2.2%