Skip to content

Commit af6baa8

Browse files
authored
Merge pull request #51 from SignPath/SP1.212
Add change logs for 1.212 and docs for jsf-sign
2 parents da5e8f7 + 742a5a9 commit af6baa8

7 files changed

Lines changed: 77 additions & 19 deletions

File tree

docs/_data/changelog.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
- date: '2026-05-26'
2+
updates:
3+
application:
4+
version: 1.212.1
5+
new_features:
6+
- text: |-
7+
New [`<jsf-sign>`](/artifact-configuration/reference#jsf-sign) directive to sign JSON files using JSON Signature Format (JSF).
8+
issues: [SIGN-8481, SIGN-8483]
9+
bug_fixes:
10+
- text: |-
11+
Fixed in REST API: requests with a non-JSON `Accept` header now return the correct HTTP error response (for example, 400 Bad Request) instead of triggering a subsequent status 500 error.
12+
issues: [SIGN-8228]
13+
- text: |-
14+
Fixed in REST API: routes called with an empty GUID ID now return 400 Bad Request instead of status 500 errors.
15+
issues: [SIGN-8519]
16+
self_hosted_installations:
17+
version: 1.212.1
18+
improvements:
19+
- text: |-
20+
`signpath-signservice-<type>` Helm chart Pods are automatically restarted on Helm chart upgrades (as previously implemented for `signpath-application` chart Pods.) This can be opted out via `chartSettings.disableDeploymentRestartOnHelmUpgrade` for both charts.
21+
issues: [SIGN-6933]
122
- date: '2026-05-07'
223
updates:
324
application:

docs/_data/editions.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
deb: false
2929
office_macros: false
3030
xml: false
31+
jsf: false
3132
docker: false
3233
sbom: false
3334
dsse: false
@@ -101,6 +102,7 @@
101102
deb: false
102103
office_macros: false
103104
xml: false
105+
jsf: false
104106
docker: false
105107
sbom: false
106108
dsse: false
@@ -169,6 +171,7 @@
169171
deb: true
170172
office_macros: true
171173
xml: true
174+
jsf: true
172175
docker: true
173176
sbom: true
174177
dsse: true
@@ -294,6 +297,7 @@
294297
deb: false
295298
office_macros: false
296299
xml: false
300+
jsf: true
297301
docker: true
298302
sbom: false
299303
dsse: false

docs/_data/featuregroups.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
href: '/product/editions-explained#ci-pipelines'
3232

3333

34-
### !! The following feature data is outdated and currently unused (previously used on th "editions" page) !!
34+
### !! The following feature data is outdated and currently unused (previously used on the "editions" page) !!
3535

3636
- name: file_based_signing
3737
title: 'Signing methods and file types'

docs/_data/tables/artifact-configuration.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,12 @@ signing-file-elements:
106106
isComposite: "No"
107107
directive: "[`<xml-sign>`](#xml-sign)"
108108
extensions: ".xml"
109-
description: "Use this directive to sign XML files using [XMLDSIG](https://www.w3.org/TR/xmldsig-core1/) (available for Advanced Code Signing). File size limit: 2 MB."
109+
description: "Sign XML files using [XMLDSIG](https://www.w3.org/TR/xmldsig-core1/) (available for Advanced Code Signing). File size limit: 2 MB."
110+
- element: "`<json-file>`"
111+
isComposite: "No"
112+
directive: "[`<jsf-sign>`](#jsf-sign)"
113+
extensions: ".json"
114+
description: "Sign JSON files using [JSON Signature Format (JSF)](https://cyberphone.github.io/doc/security/jsf.html?)."
110115
- element: "`<oci-image-layout-archive-file>`"
111116
isComposite: "No"
112117
directive: |
@@ -158,6 +163,7 @@ signing-method-categories:
158163
[`<apk-sign>`](#apk-sign),
159164
[`<office-macro-sign>`](#office-macro-sign),
160165
[`<xml-sign>`](#xml-sign),
166+
[`<jsf-sign>`](#jsf-sign),
161167
[`<notation-sign>`](#notation-sign),
162168
[`<cosign-sign>`](#cosign-sign)
163169
- category: "[Enveloped](#enveloped-signing-methods)"

docs/_sass/resources.scss

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ main > section.resources-section {
225225
font-weight: 800;
226226
}
227227
}
228-
228+
229229
&.info {
230230
background-color: $light-grey-background-color;
231231
& > p:first-child::before,
@@ -272,7 +272,6 @@ main > section.resources-section {
272272
background-color: $grey-border-color;
273273
margin: 0px;
274274
padding: 5px 10px;
275-
font-weight: bold;
276275
font-size: 1em;
277276
margin-left: -20px;
278277
margin-right: -20px;

docs/artifact-configuration/reference.md

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Signing directives are available for several code signing methods. There are thr
3737

3838
These signing methods add signatures to existing files. Several platforms including Windows, Apple, and Java provide a variety of file formats that support embedded signatures.
3939

40-
Since the file's format does not change, the unsigned files are not needed anymore. SignPath will only return the signed files in Signing Requests.
40+
Since the file's format does not change, the unsigned files are not needed anymore. SignPath only returns the signed files in Signing Requests.
4141

4242
#### Supported embedded formats
4343

@@ -50,7 +50,8 @@ Since the file's format does not change, the unsigned files are not needed anymo
5050
* [`<rpm-sign>`: RPM Package Manager](#rpm-sign)
5151
* [`<debsigs-sign>`: Debian packages](#debsigs-sign)
5252
* [`<xml-sign>`: XML Digital Signature](#xml-sign)
53-
* [`<notation-sign>`](#notation-sign),
53+
* [`<jsf-sign>`: JSON Signature Format](#jsf-sign)
54+
* [`<notation-sign>`](#notation-sign)
5455
* [`<cosign-sign>`](#cosign-sign)
5556

5657
The general syntax for embedded signing methods is: `<`_format_`-sign />`
@@ -192,7 +193,7 @@ Note that not all OPC-based formats use OPC signatures:
192193

193194
##### Verification {#jar-sign-verification}
194195

195-
* **Java** always verifies signatures for client components. For server components, you will need to create a policy. Please consult the documentation of your application server or [Oracle's documentation](https://docs.oracle.com/javase/tutorial/security/toolsign/receiver.html).
196+
* **Java** always verifies signatures for client components. For server components, you need to create a policy. Please consult the documentation of your application server or [Oracle's documentation](https://docs.oracle.com/javase/tutorial/security/toolsign/receiver.html).
196197
* **Android** always verifies App signatures, but current Android versions require signing schemes v2 or v3.
197198
* If you sign **ZIP files**, the receiver needs to manually check the signature before unpacking the file.
198199

@@ -306,11 +307,19 @@ The `dpkg` command internally uses [`debsig-verify`]. You can also use this tool
306307

307308
{% include editions.md feature="file_based_signing.xml" %}
308309

310+
{:.panel.tip}
311+
> XMLDSIG can be used to sign CycloneDX XML SBOMs.
312+
309313
{%- include_relative render-ac-directive-table.inc directive="xml-sign" -%}
310314

311315
Sign XML files with [XMLDSIG](https://www.w3.org/TR/xmldsig-core1/).
312316

313-
This will create an _enveloped signature_ for the entire document.
317+
This creates an _XMLDSIG enveloped signature_ for the entire document: a `<ds:Signature>` element is added to the existing root element.
318+
319+
{:.panel.info}
320+
> **Terminology**
321+
>
322+
> XMLDSIG terminology names this method [_enveloped signature_](https://www.w3.org/TR/xmldsig-core1/#def-SignatureEnveloped) although it does not create an envelope. Since it preserves the existing XML document and structure, it can be treated as an _embedded signature_ for most purpuses. However, the new element might break the root element's schema if signing is not expected by the target schema.
314323
315324
The result is a `Signature` element added to the root element (after all existing children) with the following properties:
316325

@@ -335,13 +344,33 @@ See also:
335344

336345
* Use [metadata restrictions](#metadata-restrictions) for `<xml-file>` to restrict root element and namespace.
337346

347+
#### `<jsf-sign>`: JSON Signature Format {#jsf-sign}
348+
349+
{% include editions.md feature="file_based_signing.jsf" %}
350+
351+
{:.panel.tip}
352+
> JSF can be used to sign CycloneDX v1.x JSON SBOMs.
353+
354+
{%- include_relative render-ac-directive-table.inc directive="jsf-sign" -%}
355+
356+
Sign JSON files with [JSON Signature Format (JSF)](https://cyberphone.github.io/doc/security/jsf.html).
357+
358+
This creates signature of the whole document: a `signature` property is added at the root level. Note that a JSON object is expected, JSON arrays are not supported at the root level.
359+
360+
**Supported options:**
361+
362+
| Parameter | Default value | Available values | Description
363+
|--------------------|---------------------------|------------------------------|-------------------------------------------------
364+
| `hash-algorithm` | `sha256` | `sha256`, `sha384`, `sha512` | Hash algorithm used to create the signature.
365+
| `rsa-padding` | (mandatory for RSA keys) | `pkcs1`, `pss` | Padding algorithm (ignored for non-RSA keys).
366+
338367
#### `<notation-sign>`: Notary (Notation) container signature {#notation-sign}
339368

340369
Sign container images using [Notation (Notary)](/signing-containers#notary).
341370

342371
{%- include_relative render-ac-directive-table.inc directive="notation-sign" -%}
343372

344-
This will place the signature at the right place within the OCI layout and add relevant references.
373+
This places the signature at the right place within the OCI layout and add relevant references.
345374

346375
**Supported options:**
347376

@@ -367,7 +396,7 @@ Sign container images using [Sigstore Cosign](/signing-containers#cosign).
367396

368397
{%- include_relative render-ac-directive-table.inc directive="cosign-sign" -%}
369398

370-
This will place the signature at the right place within the OCI layout and add relevant references.
399+
This places the signature at the right place within the OCI layout and add relevant references.
371400

372401
**Supported options:**
373402

@@ -391,7 +420,7 @@ _Note: You can create both [Notary](#notation-sign) and Cosign signatures for th
391420

392421
These signing methods create new files that contain both the original file and the signature. Enveloped signatures are available for all file types using the `<file>` element. Since the signed file is _added_, this `<file>` element must be contained in a `<zip-file>` element.
393422

394-
While the original file is still available, it often needs to be extracted from the enveloped file in order to be used, ideally after sucessful signature verification. SignPath will preserve the original files in Signing Requests.
423+
While the original file is still available, it often needs to be extracted from the enveloped file in order to be used, ideally after sucessful signature verification. SignPath preserves the original files in Signing Requests.
395424

396425
#### Supported enveloped formats
397426

@@ -441,8 +470,7 @@ This example signs SLSA Verification Summary Attestations using DSSE:
441470
</artifact-configuration>
442471
~~~
443472

444-
The resulting artifact will contain both the original file `slsa-vsa.json` and the enveloped signature`slsa-vsa.dsse`.
445-
473+
The resulting artifact contains both the original file `slsa-vsa.json` and the enveloped signature`slsa-vsa.dsse`.
446474

447475
#### `<smime-sign>`: S/MIME signing {#smime-sign}
448476

@@ -505,7 +533,7 @@ openssl smime -verify -purpose codesign -in "hashes.txt.msg" -out "hashes.txt"
505533

506534
These signing methods create new files that contain the signature and a cryptographic hash code of the original file. Detached signatures are available for all file types using the `<file>` element. Since the signature file is _added_, this `<file>` element must be contained in a `<zip-file>` element.
507535

508-
For signature verification, both the original file and the detached signature must be present. SignPath will preserve the original files in Signing Requests.
536+
For signature verification, both the original file and the detached signature must be present. SignPath preserves the original files in Signing Requests.
509537

510538
#### Supported detached formats
511539

@@ -552,7 +580,7 @@ The `create-cms-signature` directive supports the following parameters:
552580
</artifact-configuration>
553581
~~~
554582

555-
The resulting artifact will contain both the original file `myfile.bin` and the detached signature in `myfile.bin.cms.pem`.
583+
The resulting artifact contains both the original file `myfile.bin` and the detached signature in `myfile.bin.cms.pem`.
556584

557585
##### CMS signature verification
558586

@@ -592,7 +620,7 @@ The `create-gpg-signature` directive supports the following parameters:
592620
| `output-file-name` | (mandatory) | | Name of the output file containing the signature. Use `${file.name}` to reference the source file name.
593621
| `output-encoding` | `ascii-armored` | `ascii-armored`, `binary` | The encoding of the output file containing the signature. Either [ASCII armored, i.e. text-only](https://datatracker.ietf.org/doc/html/rfc4880#section-6.2) (default) or the binary OpenPGP packet format.
594622
| `hash-algorithm` | `sha256` | `sha256`, `sha384`, `sha512` | Hash algorithm used to create the signature.
595-
| `version` | `4` | `4` | Specifies the [signature version](https://datatracker.ietf.org/doc/html/rfc4880#section-5.2). Currently only `4` is supported, the attribute is intended to allow to fixate the version in case the default version will be changed in the future.
623+
| `version` | `4` | `4` | Specifies the [signature version](https://datatracker.ietf.org/doc/html/rfc4880#section-5.2). Currently only `4` is supported, the attribute is intended to allow pinning the version in case the default version changes in the future.
596624

597625
##### Example
598626

@@ -606,7 +634,7 @@ The `create-gpg-signature` directive supports the following parameters:
606634
</artifact-configuration>
607635
~~~
608636

609-
The resulting artifact will contain both the original file `myfile.bin` and the detached signature in `myfile.bin.asc`.
637+
The resulting artifact contains both the original file `myfile.bin` and the detached signature in `myfile.bin.asc`.
610638

611639
##### GPG signature verification
612640

@@ -658,7 +686,7 @@ The `create-raw-signature` directive supports the following parameters:
658686
</artifact-configuration>
659687
~~~
660688

661-
The resulting artifact will contain both the original file `myfile.bin` and the detached signature in `myfile.bin.sig`.
689+
The resulting artifact contains both the original file `myfile.bin` and the detached signature in `myfile.bin.sig`.
662690

663691
##### Raw signature verification
664692

docs/artifact-configuration/syntax.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ If wildcards are used, optional `max-matches` and `min-matches` parameters can b
198198

199199
## File and directory sets {#file-and-directory-sets}
200200

201-
If multiple files or directories should be handled in the same way, you can enumerate them using one of the following file or directory set elements: `<directory-set>`, `<pe-file-set>`, `<powershell-file-set>`, `<windows-script-file-set>`, `<msi-file-set>`, `<cab-file-set>`, `<catalog-file-set>`, `<appx-file-set>`, `<msix-file-set>`, `<opc-file-set>`, `<nupkg-file-set>`, `<jar-file-set>`, `<zip-file-set>`, `<office-oxml-file-set>`, `<office-binary-file-set>`, `<xml-file-set>`, `<file-set>`
201+
If multiple files or directories should be handled in the same way, you can enumerate them using one of the following file or directory set elements: `<directory-set>`, `<pe-file-set>`, `<powershell-file-set>`, `<windows-script-file-set>`, `<msi-file-set>`, `<cab-file-set>`, `<catalog-file-set>`, `<appx-file-set>`, `<msix-file-set>`, `<opc-file-set>`, `<nupkg-file-set>`, `<jar-file-set>`, `<zip-file-set>`, `<office-oxml-file-set>`, `<office-binary-file-set>`, `<xml-file-set>`, `<json-file-set>`, `<file-set>`
202202

203203
Each set element contains:
204204

0 commit comments

Comments
 (0)