From fb90da8a3d99f98f6be9dce7a7403c227ec648d1 Mon Sep 17 00:00:00 2001 From: "Jeromy Statia (from Dev Box)" Date: Fri, 30 May 2025 08:57:47 -0700 Subject: [PATCH 1/2] Add optional header extender support to IndirectSignatureFactory methods --- .../IndirectSignatureFactory.Stream.cs | 112 +++++++++++++----- 1 file changed, 80 insertions(+), 32 deletions(-) diff --git a/CoseIndirectSignature/IndirectSignatureFactory.Stream.cs b/CoseIndirectSignature/IndirectSignatureFactory.Stream.cs index 0f310762..cdd4e48c 100644 --- a/CoseIndirectSignature/IndirectSignatureFactory.Stream.cs +++ b/CoseIndirectSignature/IndirectSignatureFactory.Stream.cs @@ -17,13 +17,15 @@ public sealed partial class IndirectSignatureFactory /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// True to use the older format - CoseHashV, False to use CoseHashEnvelope format (default). + /// Optional header extender to add custom headers to the COSE message. /// A Task which can be awaited which will return a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null public CoseSign1Message CreateIndirectSignature( Stream payload, ICoseSigningKeyProvider signingKeyProvider, string contentType, - bool useOldFormat = false) => + bool useOldFormat = false, + ICoseHeaderExtender? coseHeaderExtender = null) => CreateIndirectSignature( payload: payload, signingKeyProvider: signingKeyProvider, @@ -33,7 +35,8 @@ public CoseSign1Message CreateIndirectSignature( #pragma warning disable CS0618 // Type or member is obsolete ? IndirectSignatureVersion.CoseHashV #pragma warning restore CS0618 // Type or member is obsolete - : IndirectSignatureVersion.CoseHashEnvelope); + : IndirectSignatureVersion.CoseHashEnvelope, + coseHeaderExtender: coseHeaderExtender); /// /// Creates a Indirect signature of the payload given a hash of the payload returned as a following the rules in this class description. @@ -42,6 +45,7 @@ public CoseSign1Message CreateIndirectSignature( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// True to use the older format - CoseHashV, False to use CoseHashEnvelope format (default). + /// Optional header extender to add custom headers to the COSE message. /// A CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null /// Hash size does not correspond to any known hash algorithms @@ -49,7 +53,8 @@ public CoseSign1Message CreateIndirectSignatureFromHash( Stream rawHash, ICoseSigningKeyProvider signingKeyProvider, string contentType, - bool useOldFormat = false) => + bool useOldFormat = false, + ICoseHeaderExtender? coseHeaderExtender = null) => CreateIndirectSignatureFromHash( rawHash: rawHash, signingKeyProvider: signingKeyProvider, @@ -59,7 +64,8 @@ public CoseSign1Message CreateIndirectSignatureFromHash( #pragma warning disable CS0618 // Type or member is obsolete ? IndirectSignatureVersion.CoseHashV #pragma warning restore CS0618 // Type or member is obsolete - : IndirectSignatureVersion.CoseHashEnvelope); + : IndirectSignatureVersion.CoseHashEnvelope, + coseHeaderExtender: coseHeaderExtender); /// /// Creates a Indirect signature of the specified payload returned as a following the rules in this class description. @@ -68,13 +74,15 @@ public CoseSign1Message CreateIndirectSignatureFromHash( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// True to use the older format - CoseHashV, False to use CoseHashEnvelope format (default). + /// Optional header extender to add custom headers to the COSE message. /// A Task which can be awaited which will return a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null public Task CreateIndirectSignatureAsync( Stream payload, ICoseSigningKeyProvider signingKeyProvider, string contentType, - bool useOldFormat = false) => + bool useOldFormat = false, + ICoseHeaderExtender? coseHeaderExtender = null) => CreateIndirectSignatureAsync( payload: payload, signingKeyProvider: signingKeyProvider, @@ -84,7 +92,8 @@ public Task CreateIndirectSignatureAsync( #pragma warning disable CS0618 // Type or member is obsolete ? IndirectSignatureVersion.CoseHashV #pragma warning restore CS0618 // Type or member is obsolete - : IndirectSignatureVersion.CoseHashEnvelope); + : IndirectSignatureVersion.CoseHashEnvelope, + coseHeaderExtender: coseHeaderExtender); /// /// Creates a Indirect signature of the payload given a hash of the payload returned as a following the rules in this class description. @@ -93,6 +102,7 @@ public Task CreateIndirectSignatureAsync( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// True to use the older format - CoseHashV, False to use CoseHashEnvelope format (default). + /// Optional header extender to add custom headers to the COSE message. /// A CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null /// Hash size does not correspond to any known hash algorithms @@ -100,7 +110,8 @@ public Task CreateIndirectSignatureFromHashAsync( Stream rawHash, ICoseSigningKeyProvider signingKeyProvider, string contentType, - bool useOldFormat = false) => + bool useOldFormat = false, + ICoseHeaderExtender? coseHeaderExtender = null) => CreateIndirectSignatureFromHashAsync( rawHash: rawHash, signingKeyProvider: signingKeyProvider, @@ -110,7 +121,8 @@ public Task CreateIndirectSignatureFromHashAsync( #pragma warning disable CS0618 // Type or member is obsolete ? IndirectSignatureVersion.CoseHashV #pragma warning restore CS0618 // Type or member is obsolete - : IndirectSignatureVersion.CoseHashEnvelope); + : IndirectSignatureVersion.CoseHashEnvelope, + coseHeaderExtender: coseHeaderExtender); #endregion #region new sync signature /// @@ -120,19 +132,22 @@ public Task CreateIndirectSignatureFromHashAsync( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// The this factory should create. + /// Optional header extender to add custom headers to the COSE message. /// A Task which can be awaited which will return a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null public CoseSign1Message CreateIndirectSignature( Stream payload, ICoseSigningKeyProvider signingKeyProvider, string contentType, - IndirectSignatureVersion signatureVersion) => + IndirectSignatureVersion signatureVersion, + ICoseHeaderExtender? coseHeaderExtender = null) => (CoseSign1Message)CreateIndirectSignatureWithChecksInternal( returnBytes: false, signingKeyProvider: signingKeyProvider, contentType: contentType, streamPayload: payload, - signatureVersion: signatureVersion); + signatureVersion: signatureVersion, + headerExtender: coseHeaderExtender); /// /// Creates a Indirect signature of the payload given a hash of the payload returned as a following the rules in this class description. @@ -141,6 +156,7 @@ public CoseSign1Message CreateIndirectSignature( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// The this factory should create. + /// Optional header extender to add custom headers to the COSE message. /// A CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null /// Hash size does not correspond to any known hash algorithms @@ -148,14 +164,16 @@ public CoseSign1Message CreateIndirectSignatureFromHash( Stream rawHash, ICoseSigningKeyProvider signingKeyProvider, string contentType, - IndirectSignatureVersion signatureVersion) => + IndirectSignatureVersion signatureVersion, + ICoseHeaderExtender? coseHeaderExtender = null) => (CoseSign1Message)CreateIndirectSignatureWithChecksInternal( returnBytes: false, signingKeyProvider: signingKeyProvider, contentType: contentType, streamPayload: rawHash, payloadHashed: true, - signatureVersion: signatureVersion); + signatureVersion: signatureVersion, + headerExtender: coseHeaderExtender); #endregion #region new async signature /// @@ -165,20 +183,23 @@ public CoseSign1Message CreateIndirectSignatureFromHash( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// The this factory should create. + /// Optional header extender to add custom headers to the COSE message. /// A Task which can be awaited which will return a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null public Task CreateIndirectSignatureAsync( Stream payload, ICoseSigningKeyProvider signingKeyProvider, string contentType, - IndirectSignatureVersion signatureVersion) => + IndirectSignatureVersion signatureVersion, + ICoseHeaderExtender? coseHeaderExtender = null) => Task.FromResult( (CoseSign1Message)CreateIndirectSignatureWithChecksInternal( returnBytes: false, signingKeyProvider: signingKeyProvider, contentType: contentType, streamPayload: payload, - signatureVersion: signatureVersion)); + signatureVersion: signatureVersion, + headerExtender: coseHeaderExtender)); /// /// Creates a Indirect signature of the payload given a hash of the payload returned as a following the rules in this class description. @@ -187,6 +208,7 @@ public Task CreateIndirectSignatureAsync( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// The this factory should create. + /// Optional header extender to add custom headers to the COSE message. /// A CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null /// Hash size does not correspond to any known hash algorithms @@ -194,7 +216,8 @@ public Task CreateIndirectSignatureFromHashAsync( Stream rawHash, ICoseSigningKeyProvider signingKeyProvider, string contentType, - IndirectSignatureVersion signatureVersion) => + IndirectSignatureVersion signatureVersion, + ICoseHeaderExtender? coseHeaderExtender = null) => Task.FromResult( (CoseSign1Message)CreateIndirectSignatureWithChecksInternal( returnBytes: false, @@ -202,7 +225,8 @@ public Task CreateIndirectSignatureFromHashAsync( contentType: contentType, streamPayload: rawHash, payloadHashed: true, - signatureVersion: signatureVersion)); + signatureVersion: signatureVersion, + headerExtender: coseHeaderExtender)); #endregion #endregion @@ -215,13 +239,15 @@ public Task CreateIndirectSignatureFromHashAsync( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// True to use the older format - CoseHashV, False to use CoseHashEnvelope format (default). + /// Optional header extender to add custom headers to the COSE message. /// A byte[] representation of a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null public ReadOnlyMemory CreateIndirectSignatureBytes( Stream payload, ICoseSigningKeyProvider signingKeyProvider, string contentType, - bool useOldFormat = false) => + bool useOldFormat = false, + ICoseHeaderExtender? coseHeaderExtender = null) => CreateIndirectSignatureBytes( payload: payload, signingKeyProvider: signingKeyProvider, @@ -231,7 +257,8 @@ public ReadOnlyMemory CreateIndirectSignatureBytes( #pragma warning disable CS0618 // Type or member is obsolete ? IndirectSignatureVersion.CoseHashV #pragma warning restore CS0618 // Type or member is obsolete - : IndirectSignatureVersion.CoseHashEnvelope); + : IndirectSignatureVersion.CoseHashEnvelope, + coseHeaderExtender: coseHeaderExtender); /// /// Creates a Indirect signature of the payload given a hash of the payload returned as a following the rules in this class description. @@ -240,6 +267,7 @@ public ReadOnlyMemory CreateIndirectSignatureBytes( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// True to use the older format - CoseHashV, False to use CoseHashEnvelope format (default). + /// Optional header extender to add custom headers to the COSE message. /// A byte[] representation of a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null /// Hash size does not correspond to any known hash algorithms @@ -247,7 +275,8 @@ public ReadOnlyMemory CreateIndirectSignatureBytesFromHash( Stream rawHash, ICoseSigningKeyProvider signingKeyProvider, string contentType, - bool useOldFormat = false) => + bool useOldFormat = false, + ICoseHeaderExtender? coseHeaderExtender = null) => CreateIndirectSignatureBytesFromHash( rawHash: rawHash, signingKeyProvider: signingKeyProvider, @@ -257,7 +286,8 @@ public ReadOnlyMemory CreateIndirectSignatureBytesFromHash( #pragma warning disable CS0618 // Type or member is obsolete ? IndirectSignatureVersion.CoseHashV #pragma warning restore CS0618 // Type or member is obsolete - : IndirectSignatureVersion.CoseHashEnvelope); + : IndirectSignatureVersion.CoseHashEnvelope, + coseHeaderExtender: coseHeaderExtender); #endregion #region async old signature - backwards compatibility /// @@ -267,13 +297,15 @@ public ReadOnlyMemory CreateIndirectSignatureBytesFromHash( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// True to use the older format - CoseHashV, False to use CoseHashEnvelope format (default). + /// Optional header extender to add custom headers to the COSE message. /// A Task which when completed returns a byte[] representation of a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null public Task> CreateIndirectSignatureBytesAsync( Stream payload, ICoseSigningKeyProvider signingKeyProvider, string contentType, - bool useOldFormat = false) => + bool useOldFormat = false, + ICoseHeaderExtender? coseHeaderExtender = null) => CreateIndirectSignatureBytesAsync( payload: payload, signingKeyProvider: signingKeyProvider, @@ -283,7 +315,8 @@ public Task> CreateIndirectSignatureBytesAsync( #pragma warning disable CS0618 // Type or member is obsolete ? IndirectSignatureVersion.CoseHashV #pragma warning restore CS0618 // Type or member is obsolete - : IndirectSignatureVersion.CoseHashEnvelope); + : IndirectSignatureVersion.CoseHashEnvelope, + coseHeaderExtender: coseHeaderExtender); /// /// Creates a Indirect signature of the payload given a hash of the payload returned as a following the rules in this class description. @@ -292,6 +325,7 @@ public Task> CreateIndirectSignatureBytesAsync( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// True to use the older format - CoseHashV, False to use CoseHashEnvelope format (default). + /// Optional header extender to add custom headers to the COSE message. /// A Task which when completed returns a byte[] representation of a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null /// Hash size does not correspond to any known hash algorithms @@ -299,7 +333,8 @@ public Task> CreateIndirectSignatureBytesFromHashAsync( Stream rawHash, ICoseSigningKeyProvider signingKeyProvider, string contentType, - bool useOldFormat = false) => + bool useOldFormat = false, + ICoseHeaderExtender? coseHeaderExtender = null) => CreateIndirectSignatureBytesFromHashAsync( rawHash: rawHash, signingKeyProvider: signingKeyProvider, @@ -309,7 +344,8 @@ public Task> CreateIndirectSignatureBytesFromHashAsync( #pragma warning disable CS0618 // Type or member is obsolete ? IndirectSignatureVersion.CoseHashV #pragma warning restore CS0618 // Type or member is obsolete - : IndirectSignatureVersion.CoseHashEnvelope); + : IndirectSignatureVersion.CoseHashEnvelope, + coseHeaderExtender: coseHeaderExtender); #endregion #region new sync signature /// @@ -319,20 +355,23 @@ public Task> CreateIndirectSignatureBytesFromHashAsync( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// The this factory should create. + /// Optional header extender to add custom headers to the COSE message. /// A byte[] representation of a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null public ReadOnlyMemory CreateIndirectSignatureBytes( Stream payload, ICoseSigningKeyProvider signingKeyProvider, string contentType, - IndirectSignatureVersion signatureVersion) => + IndirectSignatureVersion signatureVersion, + ICoseHeaderExtender? coseHeaderExtender = null) => (ReadOnlyMemory)CreateIndirectSignatureWithChecksInternal( returnBytes: true, signingKeyProvider: signingKeyProvider, contentType: contentType, streamPayload: payload, payloadHashed: false, - signatureVersion: signatureVersion); + signatureVersion: signatureVersion, + headerExtender: coseHeaderExtender); /// /// Creates a Indirect signature of the payload given a hash of the payload returned as a following the rules in this class description. @@ -341,6 +380,7 @@ public ReadOnlyMemory CreateIndirectSignatureBytes( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// The this factory should create. + /// Optional header extender to add custom headers to the COSE message. /// A byte[] representation of a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null /// Hash size does not correspond to any known hash algorithms @@ -348,14 +388,16 @@ public ReadOnlyMemory CreateIndirectSignatureBytesFromHash( Stream rawHash, ICoseSigningKeyProvider signingKeyProvider, string contentType, - IndirectSignatureVersion signatureVersion) => + IndirectSignatureVersion signatureVersion, + ICoseHeaderExtender? coseHeaderExtender = null) => (ReadOnlyMemory)CreateIndirectSignatureWithChecksInternal( returnBytes: true, signingKeyProvider: signingKeyProvider, contentType: contentType, streamPayload: rawHash, payloadHashed: true, - signatureVersion: signatureVersion); + signatureVersion: signatureVersion, + headerExtender: coseHeaderExtender); #endregion #region new async signature /// @@ -365,13 +407,15 @@ public ReadOnlyMemory CreateIndirectSignatureBytesFromHash( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// The this factory should create. + /// Optional header extender to add custom headers to the COSE message. /// A Task which when completed returns a byte[] representation of a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null public Task> CreateIndirectSignatureBytesAsync( Stream payload, ICoseSigningKeyProvider signingKeyProvider, string contentType, - IndirectSignatureVersion signatureVersion) => + IndirectSignatureVersion signatureVersion, + ICoseHeaderExtender? coseHeaderExtender = null) => Task.FromResult( (ReadOnlyMemory)CreateIndirectSignatureWithChecksInternal( returnBytes: true, @@ -379,7 +423,8 @@ public Task> CreateIndirectSignatureBytesAsync( contentType: contentType, streamPayload: payload, payloadHashed: false, - signatureVersion: signatureVersion)); + signatureVersion: signatureVersion, + headerExtender: coseHeaderExtender)); /// /// Creates a Indirect signature of the payload given a hash of the payload returned as a following the rules in this class description. @@ -388,6 +433,7 @@ public Task> CreateIndirectSignatureBytesAsync( /// The COSE signing key provider to be used for the signing operation within the . /// A media type string following https://datatracker.ietf.org/doc/html/rfc6838. /// The this factory should create. + /// Optional header extender to add custom headers to the COSE message. /// A Task which when completed returns a byte[] representation of a CoseSign1Message which can be used as a Indirect signature validation of the payload. /// The contentType parameter was empty or null /// Hash size does not correspond to any known hash algorithms @@ -395,7 +441,8 @@ public Task> CreateIndirectSignatureBytesFromHashAsync( Stream rawHash, ICoseSigningKeyProvider signingKeyProvider, string contentType, - IndirectSignatureVersion signatureVersion) => + IndirectSignatureVersion signatureVersion, + ICoseHeaderExtender? coseHeaderExtender = null) => Task.FromResult( (ReadOnlyMemory)CreateIndirectSignatureWithChecksInternal( returnBytes: true, @@ -403,7 +450,8 @@ public Task> CreateIndirectSignatureBytesFromHashAsync( contentType: contentType, streamPayload: rawHash, payloadHashed: true, - signatureVersion: signatureVersion)); + signatureVersion: signatureVersion, + headerExtender: coseHeaderExtender)); #endregion #endregion } From 708ec350ed149580e91e0ee14e21830285c39cf5 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 30 May 2025 16:06:25 +0000 Subject: [PATCH 2/2] Update changelog for release --- CHANGELOG.md | 124 ++++++++++++++++++++++++++++----------------------- 1 file changed, 68 insertions(+), 56 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a942b06..1186dd62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,36 +1,48 @@ # Changelog +## [v1.5.1-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.5.1-pre1) (2025-05-29) + +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.5.2...v1.5.1-pre1) + +## [v1.5.2](https://github.com/microsoft/CoseSignTool/tree/v1.5.2) (2025-05-29) + +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.5.0-pre1...v1.5.2) + +**Merged pull requests:** + +- feat: Add header extender support to IndirectSignatureFactory [\#130](https://github.com/microsoft/CoseSignTool/pull/130) ([JeromySt](https://github.com/JeromySt)) + ## [v1.5.0-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.5.0-pre1) (2025-05-07) [Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.5.1...v1.5.0-pre1) ## [v1.5.1](https://github.com/microsoft/CoseSignTool/tree/v1.5.1) (2025-05-07) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.4.0-pre1...v1.5.1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.5.0...v1.5.1) **Merged pull requests:** - Allow beta version of Azure.Security.CodeTransparency [\#129](https://github.com/microsoft/CoseSignTool/pull/129) ([lemccomb](https://github.com/lemccomb)) -## [v1.4.0-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.4.0-pre1) (2025-04-28) +## [v1.5.0](https://github.com/microsoft/CoseSignTool/tree/v1.5.0) (2025-04-28) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.5.0...v1.4.0-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.4.0-pre1...v1.5.0) -## [v1.5.0](https://github.com/microsoft/CoseSignTool/tree/v1.5.0) (2025-04-28) +## [v1.4.0-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.4.0-pre1) (2025-04-28) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.4.0...v1.5.0) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.3.0-pre5...v1.4.0-pre1) **Merged pull requests:** - Added support for Transparency to CoseSign1 libraries to leverage services such as Azure Code Transparency Service [\#127](https://github.com/microsoft/CoseSignTool/pull/127) ([JeromySt](https://github.com/JeromySt)) -## [v1.4.0](https://github.com/microsoft/CoseSignTool/tree/v1.4.0) (2025-03-18) +## [v1.3.0-pre5](https://github.com/microsoft/CoseSignTool/tree/v1.3.0-pre5) (2025-03-18) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.3.0-pre5...v1.4.0) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.4.0...v1.3.0-pre5) -## [v1.3.0-pre5](https://github.com/microsoft/CoseSignTool/tree/v1.3.0-pre5) (2025-03-18) +## [v1.4.0](https://github.com/microsoft/CoseSignTool/tree/v1.4.0) (2025-03-18) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.3.0-pre4...v1.3.0-pre5) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.3.0-pre4...v1.4.0) **Merged pull requests:** @@ -252,19 +264,19 @@ ## [v1.2.3-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.2.3-pre1) (2024-05-31) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.3...v1.2.3-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.2-pre1...v1.2.3-pre1) **Merged pull requests:** - upgrade to .NET 8, add docs to package, add retry loop for revocation server [\#89](https://github.com/microsoft/CoseSignTool/pull/89) ([lemccomb](https://github.com/lemccomb)) -## [v1.2.3](https://github.com/microsoft/CoseSignTool/tree/v1.2.3) (2024-03-20) +## [v1.2.2-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.2.2-pre1) (2024-03-20) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.2-pre1...v1.2.3) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.3...v1.2.2-pre1) -## [v1.2.2-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.2.2-pre1) (2024-03-20) +## [v1.2.3](https://github.com/microsoft/CoseSignTool/tree/v1.2.3) (2024-03-20) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.1-pre2...v1.2.2-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.1-pre2...v1.2.3) **Merged pull requests:** @@ -284,19 +296,19 @@ ## [v1.2.2](https://github.com/microsoft/CoseSignTool/tree/v1.2.2) (2024-03-12) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.0-pre1...v1.2.2) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.1...v1.2.2) **Merged pull requests:** - Revert "Add .exe to CoseSignTool NuGet" [\#83](https://github.com/microsoft/CoseSignTool/pull/83) ([elantiguamsft](https://github.com/elantiguamsft)) -## [v1.2.0-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.2.0-pre1) (2024-03-07) +## [v1.2.1](https://github.com/microsoft/CoseSignTool/tree/v1.2.1) (2024-03-07) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.1...v1.2.0-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.0-pre1...v1.2.1) -## [v1.2.1](https://github.com/microsoft/CoseSignTool/tree/v1.2.1) (2024-03-07) +## [v1.2.0-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.2.0-pre1) (2024-03-07) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.exeTest...v1.2.1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.2.exeTest...v1.2.0-pre1) **Merged pull requests:** @@ -312,19 +324,19 @@ ## [v1.1.8-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.8-pre1) (2024-03-04) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.7-pre3...v1.1.8-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.8...v1.1.8-pre1) **Merged pull requests:** - Update Nuspec for CoseIndirectSignature [\#80](https://github.com/microsoft/CoseSignTool/pull/80) ([elantiguamsft](https://github.com/elantiguamsft)) -## [v1.1.7-pre3](https://github.com/microsoft/CoseSignTool/tree/v1.1.7-pre3) (2024-03-02) +## [v1.1.8](https://github.com/microsoft/CoseSignTool/tree/v1.1.8) (2024-03-02) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.8...v1.1.7-pre3) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.7-pre3...v1.1.8) -## [v1.1.8](https://github.com/microsoft/CoseSignTool/tree/v1.1.8) (2024-03-02) +## [v1.1.7-pre3](https://github.com/microsoft/CoseSignTool/tree/v1.1.7-pre3) (2024-03-02) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.7-pre2...v1.1.8) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.7-pre2...v1.1.7-pre3) **Merged pull requests:** @@ -340,19 +352,19 @@ ## [v1.1.7-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.7-pre1) (2024-02-14) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.7...v1.1.7-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.6-pre1...v1.1.7-pre1) **Merged pull requests:** - Command Line Validation of Indirect Signatures [\#78](https://github.com/microsoft/CoseSignTool/pull/78) ([elantiguamsft](https://github.com/elantiguamsft)) -## [v1.1.7](https://github.com/microsoft/CoseSignTool/tree/v1.1.7) (2024-02-07) +## [v1.1.6-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.6-pre1) (2024-02-07) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.6-pre1...v1.1.7) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.7...v1.1.6-pre1) -## [v1.1.6-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.6-pre1) (2024-02-07) +## [v1.1.7](https://github.com/microsoft/CoseSignTool/tree/v1.1.7) (2024-02-07) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.6...v1.1.6-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.6...v1.1.7) **Merged pull requests:** @@ -372,43 +384,43 @@ ## [v1.1.4-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.4-pre1) (2024-01-31) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.4...v1.1.4-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.3-pre1...v1.1.4-pre1) **Merged pull requests:** - write validation output to standard out [\#74](https://github.com/microsoft/CoseSignTool/pull/74) ([elantiguamsft](https://github.com/elantiguamsft)) -## [v1.1.4](https://github.com/microsoft/CoseSignTool/tree/v1.1.4) (2024-01-26) +## [v1.1.3-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.3-pre1) (2024-01-26) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.3-pre1...v1.1.4) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.4...v1.1.3-pre1) -## [v1.1.3-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.3-pre1) (2024-01-26) +## [v1.1.4](https://github.com/microsoft/CoseSignTool/tree/v1.1.4) (2024-01-26) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.2-pre1...v1.1.3-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.3...v1.1.4) **Merged pull requests:** - Adding Validation Option to Output Certificate Chain [\#73](https://github.com/microsoft/CoseSignTool/pull/73) ([elantiguamsft](https://github.com/elantiguamsft)) -## [v1.1.2-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.2-pre1) (2024-01-24) +## [v1.1.3](https://github.com/microsoft/CoseSignTool/tree/v1.1.3) (2024-01-24) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.3...v1.1.2-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.2-pre1...v1.1.3) -## [v1.1.3](https://github.com/microsoft/CoseSignTool/tree/v1.1.3) (2024-01-24) +## [v1.1.2-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.2-pre1) (2024-01-24) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.1-pre2...v1.1.3) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.2...v1.1.2-pre1) **Merged pull requests:** - Updating snk for internal package compatibility [\#72](https://github.com/microsoft/CoseSignTool/pull/72) ([elantiguamsft](https://github.com/elantiguamsft)) -## [v1.1.1-pre2](https://github.com/microsoft/CoseSignTool/tree/v1.1.1-pre2) (2024-01-18) +## [v1.1.2](https://github.com/microsoft/CoseSignTool/tree/v1.1.2) (2024-01-18) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.2...v1.1.1-pre2) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.1-pre2...v1.1.2) -## [v1.1.2](https://github.com/microsoft/CoseSignTool/tree/v1.1.2) (2024-01-18) +## [v1.1.1-pre2](https://github.com/microsoft/CoseSignTool/tree/v1.1.1-pre2) (2024-01-18) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.1-pre1...v1.1.2) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.1-pre1...v1.1.1-pre2) **Merged pull requests:** @@ -416,19 +428,19 @@ ## [v1.1.1-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.1-pre1) (2024-01-17) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.0-pre7...v1.1.1-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.1...v1.1.1-pre1) **Merged pull requests:** - Move CreateChangelog to after build in PR build [\#70](https://github.com/microsoft/CoseSignTool/pull/70) ([lemccomb](https://github.com/lemccomb)) -## [v1.1.0-pre7](https://github.com/microsoft/CoseSignTool/tree/v1.1.0-pre7) (2024-01-12) +## [v1.1.1](https://github.com/microsoft/CoseSignTool/tree/v1.1.1) (2024-01-12) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.1...v1.1.0-pre7) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.0-pre7...v1.1.1) -## [v1.1.1](https://github.com/microsoft/CoseSignTool/tree/v1.1.1) (2024-01-12) +## [v1.1.0-pre7](https://github.com/microsoft/CoseSignTool/tree/v1.1.0-pre7) (2024-01-12) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.0-pre6...v1.1.1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.0-pre6...v1.1.0-pre7) **Merged pull requests:** @@ -477,7 +489,7 @@ ## [v1.1.0-pre1](https://github.com/microsoft/CoseSignTool/tree/v1.1.0-pre1) (2023-11-03) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v0.3.1-pre.10...v1.1.0-pre1) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.0...v1.1.0-pre1) **Merged pull requests:** @@ -487,13 +499,13 @@ - DetachedSignatureFactory accepts pre-hashed content as payload [\#53](https://github.com/microsoft/CoseSignTool/pull/53) ([elantiguamsft](https://github.com/elantiguamsft)) - Add password support for certificate files [\#52](https://github.com/microsoft/CoseSignTool/pull/52) ([lemccomb](https://github.com/lemccomb)) -## [v0.3.1-pre.10](https://github.com/microsoft/CoseSignTool/tree/v0.3.1-pre.10) (2023-10-10) +## [v1.1.0](https://github.com/microsoft/CoseSignTool/tree/v1.1.0) (2023-10-10) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v1.1.0...v0.3.1-pre.10) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v0.3.1-pre.10...v1.1.0) -## [v1.1.0](https://github.com/microsoft/CoseSignTool/tree/v1.1.0) (2023-10-10) +## [v0.3.1-pre.10](https://github.com/microsoft/CoseSignTool/tree/v0.3.1-pre.10) (2023-10-10) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v0.3.1-pre.9...v1.1.0) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v0.3.2...v0.3.1-pre.10) **Merged pull requests:** @@ -503,13 +515,13 @@ - Port changes from ADO repo to GitHub repo [\#46](https://github.com/microsoft/CoseSignTool/pull/46) ([lemccomb](https://github.com/lemccomb)) - Re-enable CodeQL [\#45](https://github.com/microsoft/CoseSignTool/pull/45) ([lemccomb](https://github.com/lemccomb)) -## [v0.3.1-pre.9](https://github.com/microsoft/CoseSignTool/tree/v0.3.1-pre.9) (2023-09-28) +## [v0.3.2](https://github.com/microsoft/CoseSignTool/tree/v0.3.2) (2023-09-28) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v0.3.2...v0.3.1-pre.9) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v0.3.1-pre.9...v0.3.2) -## [v0.3.2](https://github.com/microsoft/CoseSignTool/tree/v0.3.2) (2023-09-28) +## [v0.3.1-pre.9](https://github.com/microsoft/CoseSignTool/tree/v0.3.1-pre.9) (2023-09-28) -[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v0.3.1-pre.8...v0.3.2) +[Full Changelog](https://github.com/microsoft/CoseSignTool/compare/v0.3.1-pre.8...v0.3.1-pre.9) **Merged pull requests:**