Cross.PepperVault
1.0.0-dev.10
See the version list below for details.
dotnet add package Cross.PepperVault --version 1.0.0-dev.10
NuGet\Install-Package Cross.PepperVault -Version 1.0.0-dev.10
<PackageReference Include="Cross.PepperVault" Version="1.0.0-dev.10" />
<PackageVersion Include="Cross.PepperVault" Version="1.0.0-dev.10" />
<PackageReference Include="Cross.PepperVault" />
paket add Cross.PepperVault --version 1.0.0-dev.10
#r "nuget: Cross.PepperVault, 1.0.0-dev.10"
#:package Cross.PepperVault@1.0.0-dev.10
#addin nuget:?package=Cross.PepperVault&version=1.0.0-dev.10&prerelease
#tool nuget:?package=Cross.PepperVault&version=1.0.0-dev.10&prerelease
Cross.PepperVault
A set of .NET libraries for configurable loading of pepper values (secret strings used to harden password hashes and similar use cases), with support for multiple versions, a TTL cache, reload, and FluentValidation of options at startup. The core defines the IPepperVaultProvider contract and shared infrastructure; data sources live in separate NuGet packages.
Features
- Pepper versions — version dictionary, active current version, rotation without application downtime.
- Cache and TTL — providers built on
PepperProviderBasecache loads and refresh on timeout and when options change viaIOptionsMonitor. - Configuration —
Peppersection, binding viaAddPepperOptions,ValidateOnStart(), and composite FluentValidation validators. - Providers — environment, file, Azure Key Vault, AWS Secrets Manager, GCP Secret Manager, HashiCorp Vault, and more; reference only what you need.
- Extensibility — plug in your own source: inherit
PepperProviderBaseand registerIPepperVaultProviderin DI.
Target frameworks
All projects target netstandard2.1 and net6.0 through net10.0 (see .csproj).
Packages
Per-package NuGet download and latest-version badges. Issues: the core package row shows the repo-wide open-issue count; each provider row shows the count for a GitHub search scoped to this repository and the full NuGet package id (there are no per-package labels in this repo).
Target frameworks: libraries target netstandard2.1 and .NET 6 through .NET 10. Keep Cross.PepperVault and your provider packages on compatible NuGet versions (same release line); pin versions in production.
# Package Manager Console (Visual Studio) — install core + any providers you need
Install-Package Cross.PepperVault
Install-Package Cross.PepperVault.Env
Install-Package Cross.PepperVault.EnvJson
Install-Package Cross.PepperVault.FileJson
Install-Package Cross.PepperVault.AzureKvJson
Install-Package Cross.PepperVault.AzureKvVersioned
Install-Package Cross.PepperVault.AwsSecretsJson
Install-Package Cross.PepperVault.GcpSecretManagerJson
Install-Package Cross.PepperVault.HcvKv2Json
Then register AddPepperOptions (with your provider options and validator types) and IPepperVaultProvider in DI — see Quick start below.
Cross.PepperVault
Core library: options, validation, IPepperVaultProvider, PepperProviderBase.
Cross.PepperVault.Env
Pepper values from configuration (Pepper:ProviderOptions: current version and dictionary).
Cross.PepperVault.EnvJson
Versioned pepper JSON stored in an environment variable.
Cross.PepperVault.FileJson
Versioned pepper JSON loaded from a file.
Cross.PepperVault.AzureKvJson
Azure Key Vault secret whose payload is versioned JSON.
Cross.PepperVault.AzureKvVersioned
Multiple Key Vault secret versions mapped via tags.
Cross.PepperVault.AwsSecretsJson
AWS Secrets Manager secret containing versioned JSON.
Cross.PepperVault.GcpSecretManagerJson
Google Cloud Secret Manager as the source.
Cross.PepperVault.HcvKv2Json
HashiCorp Vault KV v2 via VaultSharp.
Quick start
- Add NuGet packages (example: core + Env):
dotnet add package Cross.PepperVault
dotnet add package Cross.PepperVault.Env
- Register options and the provider:
services.AddPepperOptions<EnvProviderOptions, EnvProviderOptionsValidator>(configuration);
services.AddSingleton<IPepperVaultProvider, EnvPepperProvider>();
- Sample configuration for Env:
{
"Pepper": {
"Provider": "Env",
"Ttl": "00:10:00",
"ProviderOptions": {
"Current": 1,
"Peppers": {
"1": "your-secret-pepper-v1",
"2": "your-secret-pepper-v2"
}
}
}
}
Provider names and ProviderOptions shape depend on the package you choose.
Build
dotnet build Cross.PepperVault.slnx -c Release
Packaging: config.nuspec in each project directory (after a Release build).
Unit tests
Tests follow the Given_When_Then naming convention:
- Given — context / preconditions.
- When — the action under test.
- Then — the expected outcome.
Example: Given_ExistingUser_When_RequestCode_Then_SendsCodeAndReturnsLastCode.
Tests live in the Cross.PepperVault.Tests project (Options, Providers, Extensions, and related folders).
See also
- LICENSE — license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- FluentValidation (>= 11.8.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
-
net10.0
- FluentValidation (>= 11.8.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.5)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.5)
-
net6.0
- FluentValidation (>= 11.8.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
-
net7.0
- FluentValidation (>= 11.8.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
-
net8.0
- FluentValidation (>= 11.8.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
-
net9.0
- FluentValidation (>= 11.8.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.14)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.14)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.14)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on Cross.PepperVault:
| Package | Downloads |
|---|---|
|
Cross.PepperVault.Env
Провайдер pepper из переменных окружения (Cross.PepperVault.Env). |
|
|
Cross.PepperVault.EnvJson
Провайдер pepper из JSON в переменной окружения (Cross.PepperVault.EnvJson). |
|
|
Cross.PepperVault.GcpSecretManagerJson
Провайдер pepper из Google Cloud Secret Manager (JSON) — Cross.PepperVault.GcpSecretManagerJson. |
|
|
Cross.PepperVault.HcvKv2Json
Провайдер pepper из HashiCorp Vault KV v2 (JSON) через VaultSharp — Cross.PepperVault.HcvKv2Json. |
|
|
Cross.PepperVault.AwsSecretsJson
Провайдер pepper из AWS Secrets Manager (JSON) — Cross.PepperVault.AwsSecretsJson. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 531 | 4/9/2026 |
| 1.0.0-dev.11 | 59 | 4/9/2026 |
| 1.0.0-dev.10 | 57 | 4/9/2026 |
| 1.0.0-dev.9 | 60 | 4/9/2026 |
| 1.0.0-dev.8 | 63 | 4/9/2026 |
Cross.PepperVault: ядро библиотеки pepper-провайдеров.