PenguinConverters.Keyra.KeyStorageProvider.AesGcm.xml
|
<?xml version="1.0"?>
<doc> <assembly> <name>PenguinConverters.Keyra.KeyStorageProvider.AesGcm</name> </assembly> <members> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.AesGcmKeyProtection"> <summary> Password-based key protection — a thin delegate to the Rust engine's portable password scheme (Argon2id KEK + AES-256-GCM). Cross-platform; the engine owns the cryptography and hands back the parameters (salt, recipe) for the caller to record in the key's provider block. Nothing is embedded in the ciphertext, so nothing here parses a blob. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.AesGcmKeyProtection.ProtectKey(System.Byte[],System.Security.SecureString,System.Boolean)"> <summary> Protects an AES key with a credential, produced entirely by the native engine (CLAUDE.md Architecture Rule 8 — no managed crypto). Returns the raw ciphertext together with the salt and recipe the caller must record in the key's provider block; without them the key cannot be read back. </summary> <param name="aesKey">The key material to protect.</param> <param name="password">The credential to protect with.</param> <param name="credentialFree"> True when the caller has explicitly asked for a credential-free key (see <see cref="T:PenguinConverters.Keyra.Core.KeyStorageProvider.ICredentialFreeKeyProvider"/>), which permits <paramref name="password"/> to be null and substitutes the compiled-in constant. </param> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.AesGcmKeyProtection.UnprotectKey(System.Byte[],System.Security.SecureString,System.Byte[],System.String,System.Boolean)"> <summary> Recovers the AES key from raw <paramref name="ciphertext"/> using the credential plus the salt and recipe recorded in the key's provider block. </summary> <param name="ciphertext">The protected key material.</param> <param name="password">The credential the key was protected with.</param> <param name="salt">The salt recorded in the key's provider block.</param> <param name="kdfRecipeJson">The KDF recipe recorded in the key's provider block.</param> <param name="credentialFree"> True when the caller has explicitly asked to open a credential-free key, which permits <paramref name="password"/> to be null and substitutes the compiled-in constant. </param> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.AesGcmKeyProtection.CredentialBytes(System.Security.SecureString,System.Boolean)"> <summary> The UTF-8 credential bytes the engine's password scheme consumes: the supplied password, or the compiled-in constant when the caller has asked for a credential-free key and there is no password. <para> A missing password is substituted <b>only</b> when <paramref name="credentialFree"/> says the caller meant it. Otherwise the callers above reject it, because a null credential is far more often a mistake than a decision — creating a vault with no chain and no password is a defect, not a request for an unprotected vault. </para> </summary> <param name="password">The credential, or null when credential-free.</param> <param name="credentialFree">Whether the caller explicitly asked for no credential.</param> <returns>A fresh buffer the caller must zero after use.</returns> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.AesGcmKeyProtection.ComputeVerificationHash(System.Byte[],System.String)"> <summary> Computes a verification hash for an AES key stored in <paramref name="context"/>. </summary> <remarks> Delegates to the engine rather than hashing here. It used to compose <c>SHA256(key || salt)</c> in .NET, which put a second implementation of a crypto primitive beside the Rust one (architecture rule 8) and left the two free to drift - exactly what would have happened at the v1 -> v2 change. </remarks> <param name="aesKey">The raw key.</param> <param name="context">The container the key is stored in.</param> <returns>The Base64 hash.</returns> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.AesGcmKeyProtection.VerifyKey(System.Byte[],System.String,System.String)"> <summary> Verifies a decrypted key against a stored verification hash, for <paramref name="context"/>. A key stamped for another container does not match. </summary> <param name="aesKey">The raw key.</param> <param name="storedHash">The recorded hash; absent means nothing to check.</param> <param name="context">The container the key is stored in.</param> <returns>True when the key matches, or when no hash was recorded.</returns> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.AesGcmKeyProtection.ToUtf8PasswordBytes(System.Security.SecureString)"> <summary> Extracts the UTF-8 bytes of a <see cref="T:System.Security.SecureString"/> password. The caller owns the returned buffer and must zero it after use. </summary> </member> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Configuration"> <summary> Configuration for the AES-GCM Key Storage Provider. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Configuration.KeyGeneratorTypeName"> <summary> Optional key generator type name for JSON deserialization. Defaults to RandomKeyGenerator if not specified. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Configuration.KeyGenerator"> <summary> Key generator instance (not serialized, resolved from type name). </summary> </member> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.CredentialFreeProtection"> <summary> The credential this provider uses when a key is protected without user input. <para> Some keys must open with nothing typed. On Windows that is the DPAPI-NG provider's job: it implements <c>IIdentityBoundKeyProvider</c> and binds the key to the OS identity. This provider is deliberately platform-neutral and has no identity to bind to, so where it must protect a key with no user credential it substitutes the constant below. </para> <para> <b>This provides no confidentiality against local file access, and is not meant to.</b> The constant is compiled into the product, so anyone who can read the key document can reconstruct the key-encryption key and recover the key material. A credential-free key is protected by the file system permissions on the directory holding it and by nothing else - the same posture as an unencrypted SSH private key. It exists to make a key openable without a prompt, not to withstand an attacker who already has the file. </para> <para> The constant is used as the <em>credential</em>, not as a key-encryption key: it is handed to the engine's ordinary password scheme, so the KEK remains <c>Argon2id(constant, per-key random salt)</c> and the salt is still freshly generated for every key. Two installations therefore never share a KEK, and two keys never share a ciphertext. Nothing about a credential-free key's on-disk format differs from any other <c>aes-gcm</c> key. </para> <para> The value is versioned because it is load-bearing forever: changing it makes every existing credential-free key unreadable, so a change means a new version plus a re-protect migration, never an edit in place. </para> </summary> </member> <member name="F:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.CredentialFreeProtection.Credential"> <summary> The compiled-in credential. Deliberately self-describing: it is not a secret, and anyone auditing the binary should be able to see exactly what it is rather than mistake it for key material. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.CredentialFreeProtection.CredentialBytes"> <summary> The credential as the UTF-8 bytes the engine's password scheme consumes. Returns a fresh buffer on every call; the caller owns it and zeroes it after use, exactly as it would a real password (the value is public, but the handling stays uniform so no call site has to reason about which kind of credential it holds). </summary> </member> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Generators.RandomKeyGenerator"> <summary> Generates cryptographically secure random AES-256 keys. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Generators.RandomKeyGenerator.DisplayName"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Generators.RandomKeyGenerator.Description"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Generators.RandomKeyGenerator.RequiresUserInput"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Generators.RandomKeyGenerator.KeySizeBytes"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Generators.RandomKeyGenerator.Algorithm"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Generators.RandomKeyGenerator.GenerateKey"> <inheritdoc/> </member> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key"> <summary> AES-256-GCM key for encrypting/decrypting vault secrets. Uses <see cref="T:PenguinConverters.CandyStore.AesGcmCrypto"/> for all encryption operations. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Cipher"> <summary> The native cipher holding this key's material, for the provider in this assembly. The raw key never crosses the managed boundary; operations on it run inside the engine. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.KeyNext"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.KeyStorageProvider"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.KeyStorageProviderEscrow"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.MaxSecretSize"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Algorithm"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.KeyEncipherment"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Identifier"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Password"> <summary> Password from authenticator chain (write-only for security). </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.#ctor"> <summary> Default constructor. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.#ctor(PenguinConverters.CandyStore.KeyraSecretCipher,System.String)"> <summary> Constructor with a native value cipher and identifier. The cipher holds the master key inside the Rust engine; this key takes ownership and disposes it. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Decrypt(System.String)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Encrypt(System.Security.SecureString)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.EncryptBytes(System.Byte[])"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.DecryptBytes(System.String)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.OpenCipher"> <summary> Opens the native-engine-backed value cipher (a non-owning view over this key's Rust cipher handle). Overrides the <see cref="M:PenguinConverters.Keyra.Core.KeyStorageProvider.IKey.OpenCipher"/> default so consumers get native-buffer decryption (<see cref="M:PenguinConverters.Keyra.Core.KeyStorageProvider.ISecretCipher.DecryptToBuffer(System.String)"/>) end-to-end. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.GetMetadata"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Delete"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Export(PenguinConverters.Keyra.Core.Package@,System.String,System.Security.SecureString)"> <summary> Exports the key to a package using the unified <c>.key</c> format. The AES key is re-protected with the supplied password so the export is fully portable (the protection blob is self-describing and embeds its own salt). </summary> <param name="package">Archive to reference for export.</param> <param name="path">Path inside the archive to use for exporting.</param> <param name="password"> Password used to protect the exported key. Required — AES-GCM keys are always password-protected and cannot be exported portably without one. </param> <exception cref="T:System.InvalidOperationException"> Thrown when the key is not initialized (vault locked) or no password is supplied. </exception> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Dispose(System.Boolean)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Key.Dispose"> <inheritdoc/> </member> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.KeyMetadata"> <summary> Metadata for stored AES-GCM protected keys. Serialized to .key files as JSON. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.KeyMetadata.KeyId"> <summary> Unique key identifier (e.g., "keyra.a1b2c3d4..."). </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.KeyMetadata.ProtectedBlob"> <summary> Password-protected key blob (Base64 encoded). </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.KeyMetadata.CreatedUtc"> <summary> Key creation timestamp (UTC). </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.KeyMetadata.Algorithm"> <summary> Encryption algorithm used. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.KeyMetadata.Version"> <summary> Metadata format version. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.KeyMetadata.ProviderTypeId"> <summary> Provider type identifier for unified .key format. Used to determine which provider should load this key file. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.KeyMetadata.KeyVerificationHash"> <summary> Key verification hash (Base64). SHA256(key || "KeyraVerification.v2" || context), where context names the container the key is stored in. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.KeyMetadata.Provider"> <summary> How this key is protected: the provider that owns it plus that provider's own parameters (salt and KDF recipe for the portable password scheme). This is the ONLY description of the derivation - there is no second, summarized copy that could drift from the recipe that ran. </summary> </member> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata"> <summary> Metadata for the cross-platform AES-GCM Key Storage Provider. Key protection relies on the authenticator chain (password, YubiKey). No OS-level binding — portable across Windows, macOS, and Linux. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata.ProviderTypeId"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata.DisplayName"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata.Description"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata.SupportedKeySizes"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata.DefaultKeySize"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata.SupportsKeyExpiration"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata.DefaultExpiration"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata.SupportsAuthenticatorChain"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Metadata.SupportedAuthenticators"> <inheritdoc/> </member> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.NativeSecretCipher"> <summary> The AES-GCM key's native-engine-backed <see cref="T:PenguinConverters.Keyra.Core.KeyStorageProvider.ISecretCipher"/>: a non-owning view over the key's Rust cipher handle (the master key lives only in Rust). Decryption can stay native end-to-end via <see cref="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.NativeSecretCipher.DecryptToBuffer(System.String)"/> — the plaintext never touches the managed heap. The key owns the underlying cipher's lifetime; <see cref="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.NativeSecretCipher.Dispose"/> is a no-op. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.NativeSecretCipher.KeyId"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.NativeSecretCipher.Algorithm"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.NativeSecretCipher.Encrypt(System.Byte[])"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.NativeSecretCipher.Decrypt(System.String)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.NativeSecretCipher.DecryptToBuffer(System.String)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.NativeSecretCipher.Dispose"> <summary>No-op: this cipher is a view over the key; the key's owner disposes it.</summary> </member> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider"> <summary> Cross-platform AES-GCM Key Storage Provider. Protects vault master keys using password-derived AES-GCM encryption. No OS-level binding — works on Windows, macOS, and Linux. </summary> </member> <member name="F:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.PROVIDER_TYPE_ID"> <summary>This provider's id - the sole discriminator for the keys it owns.</summary> </member> <member name="F:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider._credentialFree"> <summary> Whether this instance protects and opens keys with no credential, substituting the compiled-in constant. Set only by <see cref="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.ApplyCredentialFreeProtection"/>, so it is always a caller's stated intent and never inferred from a missing password. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.Configuration"> <summary> Provider configuration. </summary> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.Identifier"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.MaxSecretSize"> <inheritdoc/> </member> <member name="P:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.Namespace"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.#ctor"> <summary> Default constructor. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.#ctor(PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Configuration)"> <summary> Constructor with configuration. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.ApplyCredentialFreeProtection"> <inheritdoc/> <remarks> This provider has no OS identity to bind to, so "no credential" means it supplies one: <see cref="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.CredentialFreeProtection"/>, fed to the ordinary password scheme so the key stays an unremarkable <c>aes-gcm</c> key with its own random salt. Read that class before calling this — what it does not protect against is the point of it. </remarks> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.GenerateKey"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.GenerateKey(System.Security.SecureString)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.GenerateKey(System.Security.SecureString,System.Byte[])"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.FindKeyByIdentifier(System.String,System.Security.SecureString)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.ReprotectEntry(PenguinConverters.CandyStore.KeyraSecretCipher,System.Security.SecureString,System.Boolean,System.String,System.String)"> <summary> Rust-only <c>.key</c> load into a native cipher: the engine parses the on-disk metadata JSON, Base64-decodes + unprotects the blob with <paramref name="password"/>, and verifies the stored hash — the recovered key stays inside Rust (throws on bad password / corrupt file / hash mismatch). A null <paramref name="password"/> is permitted only in credential-free mode. </summary> <summary> Re-protects <paramref name="cipher"/>'s key for <paramref name="context"/> and returns the key entry to store. The engine's key storage provider does the work and authors the entry, so what comes back is already the document shape; this side reads it rather than reassembling one from parts, which is how two writers of the same entry used to drift. The raw key never crosses the boundary. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.DeleteKey(System.String)"> <summary> Deletes a key file by identifier. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.Delete"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.CreateKeyEntry(System.Security.SecureString,System.Byte[],System.String)"> <inheritdoc/> <remarks> Nothing is written here: the entry carries the ciphertext plus the salt and recipe needed to read it back, and Core persists the document. </remarks> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.ReprotectKeyEntry(PenguinConverters.Keyra.Core.KeyStorageProvider.IKey,System.Security.SecureString,System.String)"> <inheritdoc/> <remarks> The re-protect happens inside the native engine: the raw key stays in Rust and only the new ciphertext, its verification hash and the provider block cross the boundary. The block carries a fresh salt and the recipe used, so the result is portable to any head with this provider. </remarks> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.OpenKeyEntry(PenguinConverters.Keyra.Core.SecretStorageProvider.VaultKeyEntry,System.Security.SecureString,System.String)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.BuildProviderBlock(PenguinConverters.CandyStore.KeyraNativeCrypto.ProtectedKeyResult)"> <summary> Builds this provider's block for a freshly protected key: the id that routes the key back here, plus the salt and recipe the engine actually used. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.Dispose(System.Boolean)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Provider.Dispose"> <inheritdoc/> </member> <member name="T:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.ProviderBuilder"> <summary> Builder for creating AES-GCM Key Storage Provider instances. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.ProviderBuilder.AddVaultIdentifier(System.String)"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.ProviderBuilder.AddConfiguration(System.Byte[])"> <inheritdoc/> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.ProviderBuilder.AddConfiguration(PenguinConverters.Keyra.KeyStorageProvider.AesGcm.Configuration)"> <summary> Sets the provider configuration directly. </summary> </member> <member name="M:PenguinConverters.Keyra.KeyStorageProvider.AesGcm.ProviderBuilder.Build"> <inheritdoc/> </member> </members> </doc> |