diff --git a/.github/workflows/publish-packages-1.0.yml b/.github/workflows/publish-packages-1.0.yml index b616483dfdc..6643090fb94 100644 --- a/.github/workflows/publish-packages-1.0.yml +++ b/.github/workflows/publish-packages-1.0.yml @@ -51,7 +51,7 @@ jobs: uses: actions/setup-dotnet@d4c94342e560b34958eacfc5d055d21461ed1c5d # v5.0.0 - name: Install Cosign - uses: sigstore/cosign-installer@7e8b541eb2e61bf99390e1afd4be13a184e9ebc5 # v3.10.1 + uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0 - name: dotnet restore run: dotnet restore ./build/OpenTelemetry.proj -p:RunningDotNetPack=true @@ -72,7 +72,7 @@ jobs: $fileFullPath = $_.FullName Write-Output "Signing $fileFullPath" - cosign.exe sign-blob $fileFullPath --yes --output-signature $fileFullPath-keyless.sig --output-certificate $fileFullPath-keyless.pem + cosign.exe sign-blob --yes --bundle "$fileFullPath.sigstore.json" $fileFullPath } } @@ -146,10 +146,10 @@ jobs: $dllFilePath = $dllFile.FullName Write-Output "Verifying $dllFilePath" cosign.exe verify-blob ` - --signature $dllFilePath-keyless.sig ` - --certificate $dllFilePath-keyless.pem ` + --bundle "$dllFilePath.sigstore.json" ` --certificate-identity "${env:GITHUB_SERVER_URL}/${env:GITHUB_REPOSITORY}/.github/workflows/publish-packages-1.0.yml@${env:GITHUB_REF}" ` --certificate-oidc-issuer "https://token.actions.githubusercontent.com" ` + --use-signed-timestamps ` $dllFilePath if ($LASTEXITCODE -ne 0) { Write-Output "::error::Signature verification failed for $dllFilePath." diff --git a/README.md b/README.md index 956f7d58c02..7458239b067 100644 --- a/README.md +++ b/README.md @@ -188,18 +188,36 @@ and can be installed using the Starting with the `1.10.0` release the DLLs included in the packages pushed to NuGet are digitally signed using [Sigstore](https://www.sigstore.dev/). Within -each NuGet package the digital signature and its corresponding certificate file -are placed alongside the shipped DLL(s) in the `/lib` folder. When a project -targets multiple frameworks each target outputs a dedicated DLL and signing -artifacts into a sub folder based on the -[TFM](https://learn.microsoft.com/dotnet/standard/frameworks). +each NuGet package the digital signature artifacts are placed alongside the +shipped DLL(s) in the `/lib` folder. When a project targets multiple frameworks +each target outputs a dedicated DLL and signing artifacts into a sub folder +based on the [TFM](https://learn.microsoft.com/dotnet/standard/frameworks). -The digital signature and certificate files share the same name prefix as the -DLL to ensure easy identification and association. +The digital signature files share the same name prefix as the DLL to ensure +easy identification and association. To verify the integrity of a DLL inside a NuGet package use the [cosign](https://github.com/sigstore/cosign) tool from Sigstore: +#### Version 1.14.0 and later + +These versions are using bundle format known from cosign 3.0+. + +```bash +$TAG="core-1.14.0" +cosign verify-blob \ + --bundle OpenTelemetry.dll.sigstore.json \ + --certificate-identity "https://github.com/open-telemetry/opentelemetry-dotnet/.github/workflows/publish-packages-1.0.yml@refs/tags/$TAG" \ + --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \ + --use-signed-timestamps \ + OpenTelemetry.dll +``` + +#### Versions 1.10.0 - 1.14.0-rc.1 + +These versions are using separate signature and certificate files format known +from cosign 2.x. + ```bash $TAG="core-1.12.0" cosign verify-blob \ diff --git a/build/Common.prod.props b/build/Common.prod.props index 25c953de043..8df4738d963 100644 --- a/build/Common.prod.props +++ b/build/Common.prod.props @@ -54,17 +54,12 @@ - - + - + $([System.String]::Copy('%(RecursiveDir)').Replace(`$(Configuration.ToLower())_`, '')) - - - $([System.String]::Copy('%(RecursiveDir)').Replace(`$(Configuration.ToLower())_`, '')) - - - + + diff --git a/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md b/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md index 50e36008d99..85c0ec42ada 100644 --- a/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md +++ b/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md @@ -7,6 +7,13 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.14.0-rc.1 Released 2025-Oct-21 diff --git a/src/OpenTelemetry.Api/CHANGELOG.md b/src/OpenTelemetry.Api/CHANGELOG.md index 6c63133196b..79bf3536cd8 100644 --- a/src/OpenTelemetry.Api/CHANGELOG.md +++ b/src/OpenTelemetry.Api/CHANGELOG.md @@ -6,6 +6,13 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.14.0-rc.1 Released 2025-Oct-21 diff --git a/src/OpenTelemetry.Exporter.Console/CHANGELOG.md b/src/OpenTelemetry.Exporter.Console/CHANGELOG.md index a2fa1216fdc..51d181ca6ef 100644 --- a/src/OpenTelemetry.Exporter.Console/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Console/CHANGELOG.md @@ -6,6 +6,13 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.14.0-rc.1 Released 2025-Oct-21 diff --git a/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md b/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md index f2b337e7dc1..e341fae9d9d 100644 --- a/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md @@ -6,6 +6,13 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.14.0-rc.1 Released 2025-Oct-21 diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md index ae7aa8ba337..49edeb4fdf6 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md @@ -7,6 +7,13 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.14.0-rc.1 Released 2025-Oct-21 diff --git a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md index d3ea63867f3..7e9a9cf203d 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.AspNetCore/CHANGELOG.md @@ -19,6 +19,13 @@ Notes](../../RELEASENOTES.md). * Added the possibility to disable timestamps via the `PrometheusAspNetCoreOptions`. ([#6600](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6600)) +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.13.1-beta.1 Released 2025-Oct-10 diff --git a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md index 2830243c935..7013803835b 100644 --- a/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Prometheus.HttpListener/CHANGELOG.md @@ -19,6 +19,13 @@ Notes](../../RELEASENOTES.md). * Added the possibility to disable timestamps via the `PrometheusHttpListenerOptions`. ([#6600](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6600)) +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.13.1-beta.1 Released 2025-Oct-10 diff --git a/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md b/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md index 8b6856e4f2a..ceb47664c97 100644 --- a/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md @@ -6,6 +6,13 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.14.0-rc.1 Released 2025-Oct-21 diff --git a/src/OpenTelemetry.Extensions.Hosting/CHANGELOG.md b/src/OpenTelemetry.Extensions.Hosting/CHANGELOG.md index 370435c0175..df46e92f861 100644 --- a/src/OpenTelemetry.Extensions.Hosting/CHANGELOG.md +++ b/src/OpenTelemetry.Extensions.Hosting/CHANGELOG.md @@ -6,6 +6,13 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.14.0-rc.1 Released 2025-Oct-21 diff --git a/src/OpenTelemetry.Extensions.Propagators/CHANGELOG.md b/src/OpenTelemetry.Extensions.Propagators/CHANGELOG.md index 19f4feec7bd..9395fcf32dd 100644 --- a/src/OpenTelemetry.Extensions.Propagators/CHANGELOG.md +++ b/src/OpenTelemetry.Extensions.Propagators/CHANGELOG.md @@ -6,6 +6,13 @@ covering all components see: [Release Notes](../../RELEASENOTES.md). ## Unreleased +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.14.0-rc.1 Released 2025-Oct-21 diff --git a/src/OpenTelemetry.Shims.OpenTracing/CHANGELOG.md b/src/OpenTelemetry.Shims.OpenTracing/CHANGELOG.md index 2cb9af6019e..386b025a980 100644 --- a/src/OpenTelemetry.Shims.OpenTracing/CHANGELOG.md +++ b/src/OpenTelemetry.Shims.OpenTracing/CHANGELOG.md @@ -9,6 +9,13 @@ Notes](../../RELEASENOTES.md). * Add support for .NET 10.0. ([#6307](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6307)) +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.13.1-beta.1 Released 2025-Oct-10 diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 70e4848f464..7a7356c0989 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -6,6 +6,13 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* **Breaking Change** NuGet packages now use the Sigstore bundle format + (`.sigstore.json`) for digital signatures instead of separate signature + (`.sig`) and certificate (`.pem`) files. This requires cosign 3.0 or later + for verification. See the [Digital signing + section](../../README.md#digital-signing) for updated verification instructions. + ([#6623](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6623)) + ## 1.14.0-rc.1 Released 2025-Oct-21