PostQuantum.DataProtection.Aws
0.1.0-preview.7
dotnet add package PostQuantum.DataProtection.Aws --version 0.1.0-preview.7
NuGet\Install-Package PostQuantum.DataProtection.Aws -Version 0.1.0-preview.7
<PackageReference Include="PostQuantum.DataProtection.Aws" Version="0.1.0-preview.7" />
<PackageVersion Include="PostQuantum.DataProtection.Aws" Version="0.1.0-preview.7" />
<PackageReference Include="PostQuantum.DataProtection.Aws" />
paket add PostQuantum.DataProtection.Aws --version 0.1.0-preview.7
#r "nuget: PostQuantum.DataProtection.Aws, 0.1.0-preview.7"
#:package PostQuantum.DataProtection.Aws@0.1.0-preview.7
#addin nuget:?package=PostQuantum.DataProtection.Aws&version=0.1.0-preview.7&prerelease
#tool nuget:?package=PostQuantum.DataProtection.Aws&version=0.1.0-preview.7&prerelease
PostQuantum.DataProtection.Aws
AWS Secrets Manager-backed IPostQuantumKeyStore for
PostQuantum.DataProtection.
⚠️ Preview (
0.1.0-preview.4). Tracks the core preview cadence.
Install
dotnet add package PostQuantum.DataProtection.Aws --prerelease
Wire it up
using Amazon;
builder.Services.AddPostQuantumKeyManagement(...);
builder.Services
.AddDataProtection()
.ProtectKeysWithPostQuantum(o =>
{
o.KeyStorePath = "keys/unused-pq-keystore.txt"; // ignored when AWS store is registered
});
// Replace the file store with AWS Secrets Manager.
builder.Services.AddPostQuantumDataProtectionAws(o =>
{
o.Region = RegionEndpoint.USEast1;
// o.Credentials = ... // optional; defaults to the AWS SDK credential chain
// o.SecretPrefix = "pq-dp-prod"; // optional; defaults to "pq-dataprotection"
});
Or, with the AWS SDK default credential / region resolution:
builder.Services.AddPostQuantumDataProtectionAws();
What goes into Secrets Manager
| Secret name | Contents |
|---|---|
pq-dataprotection-{keyId} |
The PostQuantumKeyPair.Encode() token |
pq-dataprotection-active |
The active keypair id |
The PQ secret key is wrapped under the host KEK before it reaches AWS — AWS sees opaque bytes.
Required IAM permissions
The credential principal needs:
secretsmanager:GetSecretValuesecretsmanager:ListSecretssecretsmanager:PutSecretValuesecretsmanager:CreateSecret
Scope to the secret name pattern (pq-dataprotection-* by default).
The store never deletes or updates secret metadata; pruning historical keypairs is a deliberate
operator action. See KNOWN-GAPS.md §5.
Cost
- Startup: 1 List + N Get calls. With 100 keypairs that is 101 API calls.
- Rotation: 2 Put/Create calls per rotation.
- Steady state: zero — the store caches in memory after first load.
Secrets Manager pricing in us-east-1 at the time of writing is $0.40 per secret per month plus
$0.05 per 10 000 API calls. Even a fleet with rapid rotation (daily) and a 100-replica cold start
matrix sits comfortably below $5/month per ring.
To God be the glory — 1 Corinthians 10:31.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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.SecretsManager (>= 4.0.5)
- PostQuantum.DataProtection (>= 0.1.0-preview.7)
-
net8.0
- AWSSDK.SecretsManager (>= 4.0.5)
- PostQuantum.DataProtection (>= 0.1.0-preview.7)
-
net9.0
- AWSSDK.SecretsManager (>= 4.0.5)
- PostQuantum.DataProtection (>= 0.1.0-preview.7)
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.1.0-preview.7 | 55 | 6/4/2026 |
| 0.1.0-preview.6 | 51 | 6/4/2026 |
| 0.1.0-preview.5 | 59 | 6/4/2026 |
| 0.1.0-preview.4 | 52 | 6/4/2026 |
0.1.0-preview.4: First public preview. AWS Secrets Manager-backed IPostQuantumKeyStore for PostQuantum.DataProtection. Parallel structure to PostQuantum.DataProtection.AzureKeyVault — same secret-prefix model, same crash-safe write order (keypair secret before active-pointer secret), same narrow ISecretsManagerClient seam for unit tests.