OutWit.Shared.Secrets.Provider.MacOS 1.0.0

dotnet add package OutWit.Shared.Secrets.Provider.MacOS --version 1.0.0
                    
NuGet\Install-Package OutWit.Shared.Secrets.Provider.MacOS -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OutWit.Shared.Secrets.Provider.MacOS" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OutWit.Shared.Secrets.Provider.MacOS" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="OutWit.Shared.Secrets.Provider.MacOS" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OutWit.Shared.Secrets.Provider.MacOS --version 1.0.0
                    
#r "nuget: OutWit.Shared.Secrets.Provider.MacOS, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OutWit.Shared.Secrets.Provider.MacOS@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OutWit.Shared.Secrets.Provider.MacOS&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=OutWit.Shared.Secrets.Provider.MacOS&version=1.0.0
                    
Install as a Cake Tool

OutWit.Shared.Secrets.Provider.MacOS

macOS Keychain provider for OutWit.Shared.Secrets.Providers: generic passwords in the login keychain, service com.outwit.secrets, account = the key. Payloads are binary-safe; an existing item is replaced in place (SecKeychainItemModifyAttributesAndData) — there is no delete-then-add window in which a crash leaves nothing.

A support engineer finds entries in Keychain Access → login, searching for com.outwit.secrets.

The ACL, stated prominently

The keychain names the binary that created an item. An item added by one binary and read by another prompts the user — and a prompt in a service is a hang. Keep the storing and the reading binary the same (the normal case: the application stores its own credential), or expect the prompt after an update that changes the binary's identity — sign the app so the identity survives updates.

This provider is for user-facing applications and uses the login keychain. A daemon belongs in the System keychain with an ACL story of its own; that is a separate provider when somebody needs it, not a mode of this one.

Use

services.AddSingleton<ISecretStore>(new SecretStoreKeychain());
// or, for a cross-platform desktop app: OutWit.Shared.Secrets.Desktop
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on OutWit.Shared.Secrets.Provider.MacOS:

Package Downloads
OutWit.Shared.Secrets.Desktop

The composite desktop package for OutWit.Shared.Secrets: references the Windows, macOS and Linux providers and exposes SecretStoreDesktop.ForCurrentPlatform(), so a cross-platform desktop application takes one reference and writes one line. Selecting among the operating-system providers by runtime platform is not silent degradation — on each desktop platform exactly one OS store is right, and all three protect the same way. Falling back to the File provider stays a deliberate, configured choice.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 131 8/31/2026