|
3 | 3 | LaunchDarkly uses the [SLSA framework](https://slsa.dev/spec/v1.0/about) (Supply-chain Levels for Software Artifacts) to help developers make their supply chain more secure by ensuring the authenticity and build integrity of our published SDK packages.
|
4 | 4 |
|
5 | 5 | As part of [SLSA requirements for level 3 compliance](https://slsa.dev/spec/v1.0/requirements), LaunchDarkly publishes provenance about our SDK package builds using [GitHub's generic SLSA3 provenance generator](https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/generic/README.md#generation-of-slsa3-provenance-for-arbitrary-projects) for distribution alongside our packages. These attestations are available for download from the GitHub release page for the release version under Assets > `multiple.intoto.jsonl`.
|
| 6 | + |
| 7 | +To verify SLSA provenance attestations, we recommend using [slsa-verifier](https://github.com/slsa-framework/slsa-verifier). Example usage for verifying SDK packages is included below: |
| 8 | + |
| 9 | +<!-- x-release-please-start-version --> |
| 10 | +``` |
| 11 | +# Set the version of the SDK to verify |
| 12 | +SDK_VERSION=4.0.4 |
| 13 | +``` |
| 14 | +<!-- x-release-please-end --> |
| 15 | + |
| 16 | + |
| 17 | +``` |
| 18 | +# Download package from Hackage |
| 19 | +$ curl -O https://hackage.haskell.org/package/launchdarkly-server-sdk-${SDK_VERSION}/launchdarkly-server-sdk-${SDK_VERSION}.tar.gz |
| 20 | +
|
| 21 | +# Download provenance from Github release into same directory |
| 22 | +$ curl --location -O \ |
| 23 | + https://github.com/launchdarkly/haskell-server-sdk/releases/download/${SDK_VERSION}/launchdarkly-server-sdk-${SDK_VERSION}.tar.gz.intoto.jsonl |
| 24 | +
|
| 25 | +# Run slsa-verifier to verify provenance against package artifacts |
| 26 | +$ slsa-verifier verify-artifact \ |
| 27 | +--provenance-path launchdarkly-server-sdk-${SDK_VERSION}.tar.gz.intoto.jsonl \ |
| 28 | +--source-uri github.com/launchdarkly/haskell-server-sdk \ |
| 29 | +launchdarkly-server-sdk-${SDK_VERSION}.tar.gz |
| 30 | +``` |
| 31 | + |
| 32 | +Below is a sample of expected output. |
| 33 | +``` |
| 34 | +Verified signature against tlog entry index 76419919 at URL: https://rekor.sigstore.dev/api/v1/log/entries/24296fb24b8ad77a56491ff79d66537ddc16157d7ba7f31d59f0929cc6ce75ed98a0efed7fd3272a |
| 35 | +Verified build using builder "https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@refs/tags/v1.7.0" at commit dcf5e4be8e0c176c875919dcd5877193fac4f634 |
| 36 | +Verifying artifact launchdarkly-server-sdk-4.0.4.tar.gz: PASSED |
| 37 | +
|
| 38 | +PASSED: Verified SLSA provenance |
| 39 | +``` |
| 40 | + |
| 41 | +Alternatively, to verify the provenance manually, the SLSA framework specifies [recommendations for verifying build artifacts](https://slsa.dev/spec/v1.0/verifying-artifacts) in their documentation. |
| 42 | + |
| 43 | +**Note:** These instructions do not apply when building our SDKs from source. |
0 commit comments