ToolUp.ArtefactSigning.AwsKms
0.39.2
Prefix Reserved
dotnet add package ToolUp.ArtefactSigning.AwsKms --version 0.39.2
NuGet\Install-Package ToolUp.ArtefactSigning.AwsKms -Version 0.39.2
<PackageReference Include="ToolUp.ArtefactSigning.AwsKms" Version="0.39.2" />
<PackageVersion Include="ToolUp.ArtefactSigning.AwsKms" Version="0.39.2" />
<PackageReference Include="ToolUp.ArtefactSigning.AwsKms" />
paket add ToolUp.ArtefactSigning.AwsKms --version 0.39.2
#r "nuget: ToolUp.ArtefactSigning.AwsKms, 0.39.2"
#:package ToolUp.ArtefactSigning.AwsKms@0.39.2
#addin nuget:?package=ToolUp.ArtefactSigning.AwsKms&version=0.39.2
#tool nuget:?package=ToolUp.ArtefactSigning.AwsKms&version=0.39.2
ToolUp.ArtefactSigning.AwsKms
AWS KMS-backed IArtefactSigner for ToolUp.ArtefactSigning (Phase 40 /
22a). Signs artefacts with an AWS KMS asymmetric ECDSA P-256
(ECC_NIST_P256) key — the private key never enters process memory. The
signer hashes the JWS signing input locally (SHA-256) and asks KMS to
sign the digest, then converts the DER signature KMS returns into the raw
r‖s shape JWS ES256 requires. The detached JWS is byte-identical to the
in-process DefaultArtefactSigner output, so the shipped
DefaultArtefactVerifier (or any JWS verifier holding the public key)
validates it.
GP 1 — the AWS SDK dependency is isolated to this companion; it never
reaches the ToolUp.ArtefactSigning substrate. Server-only companion.
Quick start
open Amazon.KeyManagementService
open ToolUp.ArtefactSigning.AwsKms
let kms = new AmazonKeyManagementServiceClient() // region + creds from the env
let signer = AwsKmsArtefactSigner.create kms "arn:aws:kms:eu-west-2:...:key/<asymmetric-ecc-key>"
let! result = signer.Sign artefactBytes // -> Ok ArtefactSignature
let! pubKey = signer.VerifyKey () // PEM + JWK for the verification endpoint
The produced ArtefactSignature verifies with the in-process
DefaultArtefactVerifier (the public key is served from KMS via
GetPublicKey; the JWS shape is identical).
ECDSA P-256 only
AWS KMS asymmetric signing offers RSA + ECC (P-256/384/521) + SM2 — not
Ed25519. The Phase 40 EdDSA flavour stays in-process
(DefaultArtefactSigner); this companion covers ES256, the JWS shape
compliance auditors expect for non-repudiation. The KMS key must be
created with KeySpec = ECC_NIST_P256 and KeyUsage = SIGN_VERIFY.
Verification
The signer requires a live KMS asymmetric key (no offline fake — KMS has
no local emulator and IAmazonKeyManagementService is not practically
mockable). Mirrors the env-gated live-arm convention of the AWS KMS
encryption resolver / AIProviders.Tests. Verify against a real key:
- Create an asymmetric
ECC_NIST_P256/SIGN_VERIFYKMS key; grant the deployment rolekms:Sign+kms:GetPublicKey. Signan artefact → verify the returnedArtefactSignaturewithDefaultArtefactVerifier(resolving the public key fromVerifyKey).- Tamper the artefact → verification fails (
VerificationError.Tampered).
The pure DER→P1363 conversion + JWS-assembly helpers
(JwsBuilder.derEcdsaToP1363 / assembleDetachedJws) are unit-tested
offline in ToolUp.ArtefactSigning.Tests.
License
Apache-2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- AWSSDK.Core (>= 4.0.102.1)
- AWSSDK.KeyManagementService (>= 4.0.4.4)
- FSharp.Core (>= 10.1.300)
- ToolUp.ArtefactSigning (>= 0.41.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.39.2 | 94 | 11/7/2026 |
| 0.39.1 | 93 | 11/6/2026 |
| 0.39.0 | 91 | 11/4/2026 |
| 0.38.1 | 101 | 11/1/2026 |
| 0.38.0 | 102 | 10/31/2026 |
| 0.37.0 | 96 | 10/29/2026 |
| 0.36.0 | 106 | 10/29/2026 |
| 0.35.0 | 101 | 10/28/2026 |
| 0.34.1 | 108 | 10/27/2026 |
| 0.34.0 | 105 | 10/26/2026 |
| 0.33.0 | 97 | 10/25/2026 |
| 0.32.0 | 101 | 10/24/2026 |
| 0.31.0 | 104 | 10/22/2026 |
| 0.30.0 | 103 | 10/20/2026 |
| 0.29.0 | 106 | 10/19/2026 |
| 0.28.0 | 104 | 10/19/2026 |
| 0.27.0 | 104 | 10/16/2026 |
| 0.26.0 | 100 | 10/12/2026 |
| 0.25.1 | 99 | 10/9/2026 |
| 0.24.1 | 109 | 10/6/2026 |