Cross.PepperVault
1.0.0-dev.8
See the version list below for details.
dotnet add package Cross.PepperVault --version 1.0.0-dev.8
NuGet\Install-Package Cross.PepperVault -Version 1.0.0-dev.8
<PackageReference Include="Cross.PepperVault" Version="1.0.0-dev.8" />
<PackageVersion Include="Cross.PepperVault" Version="1.0.0-dev.8" />
<PackageReference Include="Cross.PepperVault" />
paket add Cross.PepperVault --version 1.0.0-dev.8
#r "nuget: Cross.PepperVault, 1.0.0-dev.8"
#:package Cross.PepperVault@1.0.0-dev.8
#addin nuget:?package=Cross.PepperVault&version=1.0.0-dev.8&prerelease
#tool nuget:?package=Cross.PepperVault&version=1.0.0-dev.8&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).
Quick start
- Install the packages, for example:
Cross.PepperVault+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-провайдеров.