Skip to content

Conversation

@emaloney
Copy link

@emaloney emaloney commented Dec 4, 2025

Motivation:

We had a need to generate CMS structures with an embedded trusted timestamp that indicates the time at which a signing operation was performed, and discovered that this was not supported by the existing Swift Certificates implementation.

Modifications:

To address this need, we adapted existing functionality, adding several functions allowing the signing time to be embedded in a CMS structure.

In order to make this work, we also needed to add public access to several entities in the code.

Result:

This new CMS SPI allows Swift Certificates to be used for generating trusted timestamp signatures from CMS structures that embed the signing time, such as those for codesigning.

We have been using this exact same code in a high-volume production environment for several months, and can confirm that the CMS structures generated by this are usable for creating valid signatures.

Motivation:

We had a need to generate CMS structures with an embedded
trusted timestamp that indicates the time at which a signing
operation was performed, and discovered that this was not
supported by the existing Swift Certificates implementation.

Modifications:

To address this need, we adapted existing functionality,
adding several functions allowing the signing time to be
embedded in a CMS structure.

In order to make this work, we also needed to add public
access to several entities in the code.

Result:

This new CMS SPI allows Swift Certificates to be used for
generating trusted timestamp signatures from CMS structures
that embed the signing time, such as those for codesigning.

We have been using this exact same code in a high-volume
production environment for several months, and can confirm
that the CMS structures generated by this are usable for
creating valid signatures.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant