From 765d796a756997c09f756300f2e1d53039800a1a Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Fri, 6 Mar 2026 12:49:37 -0500 Subject: [PATCH 1/4] Rename DeleteAsync.md --- docs/ZeroStorage/{DeleteAsnyc.md => DeleteAsync.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/ZeroStorage/{DeleteAsnyc.md => DeleteAsync.md} (100%) diff --git a/docs/ZeroStorage/DeleteAsnyc.md b/docs/ZeroStorage/DeleteAsync.md similarity index 100% rename from docs/ZeroStorage/DeleteAsnyc.md rename to docs/ZeroStorage/DeleteAsync.md From 01d899a10becbe574803532fa4a767659ca6e264 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Fri, 6 Mar 2026 12:50:41 -0500 Subject: [PATCH 2/4] Fixed DisposeAsync description --- docs/ZeroStorage/ZeroStorage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ZeroStorage/ZeroStorage.md b/docs/ZeroStorage/ZeroStorage.md index 50c63bb..433f2c4 100644 --- a/docs/ZeroStorage/ZeroStorage.md +++ b/docs/ZeroStorage/ZeroStorage.md @@ -32,7 +32,7 @@ public sealed class ZeroStorage : IAsyncDisposable | [SetAsync\(string, T, CancellationToken)](/docs/ZeroStorage/SetAsync.md) | Stores a value associated with the specified key. | | [GetAsync\(string, CancellationToken)](/docs/ZeroStorage/GetAsync.md) | Retrieves a value associated with the specified key. | | [DeleteAsync(string, CancellationToken)](/docs/ZeroStorage/DeleteAsync.md) | Deletes the value associated with the specified key. | -| [DisposeAsync()](/docs/ZeroStorage/DisposeAsync.md) | Disposes the by locking and releasing any resources. | +| [DisposeAsync()](/docs/ZeroStorage/DisposeAsync.md) | Disposes the [ZeroStorage](/docs/ZeroStorage/ZeroStorage.md) instance by locking and releasing any resources. | ## Events From 4fad210b98ff757124dcec23d43dc6ccd3866b35 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Fri, 6 Mar 2026 12:57:28 -0500 Subject: [PATCH 3/4] Sorted features list, clarified links --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a268896..41cf931 100644 --- a/README.md +++ b/README.md @@ -21,13 +21,13 @@ A secure, zero-storage, zero-knowledge encrypted storage solution for Blazor app - **Stateless**: The library holds no persistent state. Once ZeroStorage is locked or the browser tab closes, the key is wiped from memory. --- - **Authenticated Encryption**: Utilizes [AES-GCM](https://en.wikipedia.org/wiki/Galois/Counter_Mode) with 256-bit keys, guaranteeing both data confidentiality and integrity. -- **Hardware-Bound Entropy**: Utilizes the [WebAuthn](https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API) [PRF](https://en.wikipedia.org/wiki/Pseudorandom_function_family) (Pseudo-Random Function) extension to extract cryptographically secure 256-bit encryption keys directly from the user's hardware passkey. -- **Per-Item Key Derivation**: Uses [HKDF](https://en.wikipedia.org/wiki/HKDF) (HMAC-based Extract-and-Expand Key Derivation Function) to generate a unique encryption key for every single record, isolating any potential compromise to a single item. -- **Cryptographic Blinding**: Database lookup keys are deterministically hashed via [HMAC](https://en.wikipedia.org/wiki/HMAC) (Hash-based Message Authentication Code), making it impossible for an attacker to read logical keys or infer relationships between records. -- **Metadata Obfuscation**: Supports uniform cryptographic padding to mask the true byte-size of payloads, preventing attackers from guessing content based on payload length. -- **Stateless Recovery**: Allows exporting the raw encryption key as a typo-resistant [Base58](https://en.wikipedia.org/wiki/Base58) string. This enables complete recovery without storing any fallback mechanisms or backup hashes in the database. +- **Cryptographic Blinding**: Database lookup keys are deterministically hashed via [Hash-based Message Authentication Code (HMAC)](https://en.wikipedia.org/wiki/HMAC), making it impossible for an attacker to read logical keys or infer relationships between records. - **Cryptographic Sandboxing (Multi-User)**: Supports multiple users on the same device. Lookup keys are derived from the user's specific key, so a user's data exists in a mathematically isolated, invisible partition. +- **Hardware-Bound Entropy**: Utilizes the [WebAuthn](https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API) [Pseudo-Random Function (PRF)](https://en.wikipedia.org/wiki/Pseudorandom_function_family) extension to extract cryptographically secure 256-bit encryption keys directly from the user's hardware passkey. +- **Metadata Obfuscation**: Supports uniform cryptographic padding to mask the true byte-size of payloads, preventing attackers from guessing content based on payload length. +- **Per-Item Key Derivation**: Uses [HMAC-based Extract-and-Expand Key Derivation Function (HKDF)](https://en.wikipedia.org/wiki/HKDF) to generate a unique encryption key for every single record, isolating any potential compromise to a single item. - **Same-Origin Isolation**: Built on top of the browser's native [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API), guaranteeing that the encrypted data is inaccessible to other domains or websites. +- **Stateless Recovery**: Allows exporting the raw encryption key as a typo-resistant [Base58](https://en.wikipedia.org/wiki/Base58) string. This enables complete recovery without storing any fallback mechanisms or backup hashes in the database. ## Installation From 9cac09fb3df2f3e45ac0a7472b8afac385c88caf Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Fri, 6 Mar 2026 12:57:42 -0500 Subject: [PATCH 4/4] Increment patch --- Blazor.ZeroStorage/Blazor.ZeroStorage.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blazor.ZeroStorage/Blazor.ZeroStorage.csproj b/Blazor.ZeroStorage/Blazor.ZeroStorage.csproj index 98a2849..405e3d8 100644 --- a/Blazor.ZeroStorage/Blazor.ZeroStorage.csproj +++ b/Blazor.ZeroStorage/Blazor.ZeroStorage.csproj @@ -10,7 +10,7 @@ Blazor.ZeroStorage Blazor.ZeroStorage A secure, zero-storage, zero-knowledge encrypted storage solution for Blazor applications. - 1.0.1 + 1.0.2 README.md LICENSE