- Overview
- Reference Guide
- Setup & Architecture
- Release Notes
- API Reference
-
Integration Guides
-
Signing Capabilities
- Supported Formats and Platforms
- Timestamping
- Windows Signing - SignTool
- Apple Signing
- AppX & MSIX Signing
- Visual Studio ClickOnce
- Jar Signing
- Sign HLK/HCK using CodeSign Secure
- NuGet Signing
- Mage Signing
- Sign OVA/OVF using Encryption Consulting’s Utility Tool
- Utility Tool for code signing
- Container Signing
- PKCS11 Wrapper
- Reproducible Build
- CI/CD Integration
-
Signing Capabilities
Supported Formats and Platforms
Which file types CodeSign Secure can sign, with which tool and client, and on which operating systems.
Signing formats
| Format or file type | Signing tool | CodeSign Secure client | Client OS in the guide | Verify with | Guide |
|---|---|---|---|---|---|
| Authenticode: any file SignTool can sign, for example .exe, .dll, .sys, .msi, .cab, .cat, .ps1 | SignTool | Windows KSP | Windows | signtool verify /pa | SignTool signing |
| Office VBA macros, for example .xlsm | SignTool with the Office VBA SIP installed | Windows KSP | Windows | Office Trust Center or signtool verify | Macro Signing |
| AppX and MSIX packages | SignTool | Windows KSP | Windows | signtool verify /pa | AppX & MSIX |
| ClickOnce applications | Visual Studio publish | Windows KSP and ECGetCert.exe | Windows | Visual Studio / Mage | Visual Studio ClickOnce |
| ClickOnce manifests (.application, .manifest) | Mage | Windows KSP | Windows | mage -Verify | Mage Signing |
| NuGet packages (.nupkg) | NuGet CLI or Utility Tool | Windows KSP | Windows | nuget verify -Signatures | NuGet Signing |
| JAR files | jarsigner with the Windows-MY keystore | Windows KSP | Windows | jarsigner -verify | Jar Signing |
| HLK/HCK packages | HLK Studio or custom utility | Windows KSP | Windows | HLK Studio | HLK/HCK Signing |
| OVA/OVF appliances | Utility Tool | Utility Tool | Windows | See the guide | OVA/OVF Signing |
| Files signed interactively, single or in bulk | Utility Tool | Utility Tool | Windows | Native tool for the format | Utility Tool |
| Container images | cosign | ec-signer | Container build host | cosign verify | Container Signing |
| Android APK | apksigner | PKCS#11 Wrapper | Linux, macOS, Windows | apksigner verify | APK Signing |
| Raw signatures of any file | OpenSSL | PKCS#11 Wrapper | Linux, Windows | openssl dgst -verify | OpenSSL Signing |
| XML documents | XML signing tool | PKCS#11 Wrapper | Linux, macOS | See the guide | XML Signing |
| Authenticode from Java (.exe, .dll, .msi, .ps1 and more) | JSign | PKCS#11 Wrapper | Linux, macOS, Windows | signtool verify or PowerShell | JSign Signing |
| JAR files | jarsigner | PKCS#11 Wrapper | Linux, macOS, Windows | jarsigner -verify | Jarsigner Signing |
| Detached GPG signatures, Debian packages, RPM packages | GnuPG, dpkg-sig, rpm | PKCS#11 Wrapper | Linux (Ubuntu) | gpg --verify, rpm -K | GPG2, Debian & RPM |
| macOS apps and binaries | codesign | EC KSP for Mac | macOS | codesign --verify | Apple Signing |
Key algorithms
| Algorithm | Key sizes or curves |
|---|---|
| RSA | 2048, 3072, 4096 bits |
| ECDSA | P-256, P-384, P-521 |
The signing tool chooses the digest algorithm. The guides use SHA-256, for example SignTool /fd SHA256 and jarsigner -sigalg SHA256withRSA. With an ECDSA key, use the matching ECDSA algorithm name, for example SHA256withECDSA for jarsigner.
Supported HSMs
| HSM | Firmware | Software | Notes |
|---|---|---|---|
| Entrust nShield | 13.8.0 or later | 13.7.3 or later | FIPS 140-2 Level 3. High-availability configurations supported. |
| Thales Luna | 10.7.1-125 or later | 7.3.0 or later | FIPS 140-2 Level 3. High-availability configurations supported. |
| Securosys Primus HSM | 2.8.21 or later | Primus PKCS#11 provider for your firmware version | FIPS 140-2 Level 3 (X- and E-Series on firmware 2.8.21). X2- and E2-Series run firmware 3.x. |
| Utimaco SecurityServer Se Gen2 | 4.32.0 or later | SecurityServer PKCS#11 client for your firmware version | FIPS 140-2 Level 3 (CryptoServer Se-Series Gen2 on firmware 4.32.0). |
Use the listed versions or later. For other HSMs, contact Encryption Consulting before you deploy.
Server platform
| Component | Requirement |
|---|---|
| Operating system | Windows Server 2022 |
| Python | 3.10.11 or later |
| MongoDB | 6.0 or later |
| Deployment | Single server, or a cluster behind a load balancer |
Client platforms
| Client | Operating systems |
|---|---|
| Windows KSP | Windows 10 and Windows 11 (tested) |
| EC KSP for Mac | macOS |
| PKCS#11 Wrapper | Windows, Linux and macOS |
| Utility Tool | Windows |
| ec-signer | Container build host with Python and Docker |
Tool versions used in the guides
The guides were written with these third-party tool versions. Newer versions usually work, but these are the ones shown in the examples.
| Tool | Version in the guides |
|---|---|
| Windows SDK (SignTool) | 10.0.26100.0 |
| Java (for apksigner, jarsigner, JSign) | JDK 8 on Linux, JDK 17 on macOS, JDK 22 on Windows in the APK guide; JDK 17 or 21 in other guides |
| Android build-tools (apksigner) | 34.0.0 |
| JSign | 7.0 |
| GnuPG | 2.5.4 |
| cosign | 2.0.0 |