@wishknish/knishio-client-js 0.9.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -507,6 +507,19 @@ const client = new KnishIOClient({
507
507
  Precedence: a query's own context (e.g. ContinuID's `network-only`, which always
508
508
  wins) > per-call `requestPolicy` > client `defaultRequestPolicy` > urql default.
509
509
 
510
+ ## Secret storage
511
+
512
+ Master secrets are stored at rest in the cross-SDK AES-256-GCM envelope (PBKDF2-HMAC-SHA256 ×100000, camelCase metadata; frozen in `sdks/shared-test-results/cross-platform-test-vectors.json`). Every SDK decrypts every other SDK's envelope.
513
+
514
+ | Provider | `providerType` | Custody (`hardwareBacked`) | Where the key lives | Recovery passphrase |
515
+ |---|---|---|---|---|
516
+ | `MemorySecretStorageProvider` | `memory` | Software (`false`) | Process memory | Optional |
517
+ | `WebCryptoSecretStorageProvider` | `webcrypto-aes-gcm` | Software (`false`) | Any `IStorageBackend` (`MemoryStorageBackend`, `FileStorageBackend` [0o600 Node-only], `WebStorageBackend`) | Optional |
518
+ | `NonExtractableKeySecretStorageProvider` | `webcrypto-nonextractable` | Software (`false`) | Non-extractable `CryptoKey` in IndexedDB (not hardware) | Required unless `allowUnrecoverable` |
519
+ | `WebAuthnPrfSecretStorageProvider` | `webauthn-prf` | Software (`false`) — PRF secret is authenticator-bound but custody is unattested | Platform authenticator via WebAuthn PRF extension | Required unless `allowUnrecoverable` |
520
+
521
+ `hardwareBacked` is derived by the provider from the platform, never accepted from the caller; software providers always report `false`. A hardware provider refuses to store without a recovery passphrase unless `allowUnrecoverable` is set — the recovery envelope (`knishio:recovery:<bundleHash>`, `providerType: "webcrypto-aes-gcm"`) is *software* custody whose strength is bounded by that passphrase: enforce passphrase entropy or keep it on a second device.
522
+
510
523
  ## Getting Help
511
524
 
512
525
  Knish.IO is under active development, and our team is ready to assist with integration questions. The best way to seek help is to stop by our [Telegram Support Channel](https://t.me/wishknish). You can also [send us a contact request](https://knish.io/contact) via our website.