@private.me/xbind 1.3.0 → 2.3.4
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/LICENSES.md +212 -0
- package/README.md +388 -6
- package/dist-standalone/_deps/mldsa-wasm/dist/mldsa.js +1 -1920
- package/dist-standalone/_deps/shared/cjs/errors.js +1 -275
- package/dist-standalone/_deps/shared/cjs/index.js +1 -138
- package/dist-standalone/_deps/shared/cjs/types.js +1 -90
- package/dist-standalone/_deps/shared/errors.js +1 -262
- package/dist-standalone/_deps/shared/index.js +1 -77
- package/dist-standalone/_deps/shared/types.js +1 -91
- package/dist-standalone/_deps/ux-helpers/cjs/errors.js +1 -1
- package/dist-standalone/_deps/ux-helpers/cjs/index.js +1 -1
- package/dist-standalone/_deps/ux-helpers/cjs/pagination.js +1 -1
- package/dist-standalone/_deps/ux-helpers/cjs/progress.js +1 -1
- package/dist-standalone/_deps/ux-helpers/cjs/search.js +1 -1
- package/dist-standalone/_deps/ux-helpers/cjs/types.js +1 -1
- package/dist-standalone/_deps/ux-helpers/errors.js +1 -1
- package/dist-standalone/_deps/ux-helpers/index.js +1 -1
- package/dist-standalone/_deps/ux-helpers/pagination.js +1 -1
- package/dist-standalone/_deps/ux-helpers/progress.js +1 -1
- package/dist-standalone/_deps/ux-helpers/search.js +1 -1
- package/dist-standalone/_deps/xchange/auto-accept.js +1 -1
- package/dist-standalone/_deps/xchange/cjs/auto-accept.js +1 -1
- package/dist-standalone/_deps/xchange/cjs/errors.js +1 -1
- package/dist-standalone/_deps/xchange/cjs/index.js +1 -1
- package/dist-standalone/_deps/xchange/cjs/invite-client.js +1 -1
- package/dist-standalone/_deps/xchange/cjs/lazy-init.js +1 -1
- package/dist-standalone/_deps/xchange/cjs/trust-integration.js +1 -1
- package/dist-standalone/_deps/xchange/cjs/xchange.js +1 -1
- package/dist-standalone/_deps/xchange/errors.js +1 -1
- package/dist-standalone/_deps/xchange/index.js +1 -1
- package/dist-standalone/_deps/xchange/invite-client.js +1 -1
- package/dist-standalone/_deps/xchange/lazy-init.js +1 -1
- package/dist-standalone/_deps/xchange/trust-integration.js +1 -1
- package/dist-standalone/_deps/xchange/xchange.js +1 -1
- package/dist-standalone/_deps/xregistry/cjs/discovery.js +1 -1
- package/dist-standalone/_deps/xregistry/cjs/errors.js +1 -1
- package/dist-standalone/_deps/xregistry/cjs/index.js +1 -1
- package/dist-standalone/_deps/xregistry/cjs/registry.js +1 -1
- package/dist-standalone/_deps/xregistry/cjs/schema.js +1 -1
- package/dist-standalone/_deps/xregistry/cjs/types.js +1 -1
- package/dist-standalone/_deps/xregistry/discovery.js +1 -1
- package/dist-standalone/_deps/xregistry/errors.js +1 -1
- package/dist-standalone/_deps/xregistry/index.js +1 -1
- package/dist-standalone/_deps/xregistry/registry.js +1 -1
- package/dist-standalone/_deps/xregistry/schema.js +1 -1
- package/dist-standalone/_deps/xregistry/types.js +1 -1
- package/dist-standalone/agent-call.js +1 -642
- package/dist-standalone/agent-sdk.js +1 -328
- package/dist-standalone/agent.d.ts +95 -5
- package/dist-standalone/agent.js +1 -1545
- package/dist-standalone/approval.js +1 -193
- package/dist-standalone/async-iterators.d.ts +275 -0
- package/dist-standalone/async-iterators.js +1 -0
- package/dist-standalone/auth.js +1 -219
- package/dist-standalone/auto-accept.js +1 -229
- package/dist-standalone/backup-config.js +1 -201
- package/dist-standalone/backup.d.ts +114 -0
- package/dist-standalone/backup.js +1 -0
- package/dist-standalone/batch-operations.d.ts +297 -0
- package/dist-standalone/batch-operations.js +1 -0
- package/dist-standalone/cancellation.d.ts +301 -0
- package/dist-standalone/cancellation.js +1 -0
- package/dist-standalone/checkpoint.js +1 -186
- package/dist-standalone/circuit-breaker.d.ts +351 -0
- package/dist-standalone/circuit-breaker.js +1 -0
- package/dist-standalone/cjs/agent-call.js +1 -651
- package/dist-standalone/cjs/agent-sdk.js +1 -332
- package/dist-standalone/cjs/agent.js +1 -1582
- package/dist-standalone/cjs/approval.js +1 -199
- package/dist-standalone/cjs/async-iterators.js +1 -0
- package/dist-standalone/cjs/auth.js +1 -225
- package/dist-standalone/cjs/auto-accept.js +1 -233
- package/dist-standalone/cjs/backup-config.js +1 -207
- package/dist-standalone/cjs/backup.js +1 -0
- package/dist-standalone/cjs/batch-operations.js +1 -0
- package/dist-standalone/cjs/cancellation.js +1 -0
- package/dist-standalone/cjs/checkpoint.js +1 -193
- package/dist-standalone/cjs/circuit-breaker.js +1 -0
- package/dist-standalone/cjs/cli/init.js +1 -486
- package/dist-standalone/cjs/config-validation.js +1 -0
- package/dist-standalone/cjs/connect.js +1 -312
- package/dist-standalone/cjs/connection-pool.js +1 -0
- package/dist-standalone/cjs/correlation-id.js +1 -339
- package/dist-standalone/cjs/crypto-utils.js +1 -0
- package/dist-standalone/cjs/debug-mode.js +1 -0
- package/dist-standalone/cjs/did-document.js +1 -101
- package/dist-standalone/cjs/did-privateme.js +1 -130
- package/dist-standalone/cjs/did-web.js +1 -201
- package/dist-standalone/cjs/discovery.js +1 -462
- package/dist-standalone/cjs/dual-mode.js +1 -251
- package/dist-standalone/cjs/email-templates.js +1 -313
- package/dist-standalone/cjs/email-transport.js +1 -239
- package/dist-standalone/cjs/envelope.js +1 -510
- package/dist-standalone/cjs/errors.js +1 -826
- package/dist-standalone/cjs/event-emitter.js +1 -0
- package/dist-standalone/cjs/gateway-state.js +1 -55
- package/dist-standalone/cjs/gateway-transport.js +1 -120
- package/dist-standalone/cjs/graceful-degradation.js +1 -0
- package/dist-standalone/cjs/guardrails.js +1 -223
- package/dist-standalone/cjs/health-check.js +1 -0
- package/dist-standalone/cjs/http-compat.js +1 -272
- package/dist-standalone/cjs/http-status-map.js +1 -571
- package/dist-standalone/cjs/identity.js +1 -541
- package/dist-standalone/cjs/index.js +1 -237
- package/dist-standalone/cjs/invitation.js +1 -421
- package/dist-standalone/cjs/invite.js +1 -328
- package/dist-standalone/cjs/key-agreement.js +1 -246
- package/dist-standalone/cjs/lazy-init.js +1 -300
- package/dist-standalone/cjs/logger.js +1 -0
- package/dist-standalone/cjs/mdns-discovery.js +1 -202
- package/dist-standalone/cjs/nonce-store.js +1 -66
- package/dist-standalone/cjs/pairing-manager.js +1 -223
- package/dist-standalone/cjs/plugin-system.js +1 -0
- package/dist-standalone/cjs/plugins/logging.js +1 -0
- package/dist-standalone/cjs/plugins/metrics.js +1 -0
- package/dist-standalone/cjs/plugins/validation.js +1 -0
- package/dist-standalone/cjs/policy.js +1 -320
- package/dist-standalone/cjs/progress-callbacks.js +1 -0
- package/dist-standalone/cjs/redis-nonce-store.js +1 -76
- package/dist-standalone/cjs/registry-middleware.js +1 -50
- package/dist-standalone/cjs/retry-strategies.js +1 -0
- package/dist-standalone/cjs/retry-transport.js +1 -102
- package/dist-standalone/cjs/runtime/browser.js +1 -0
- package/dist-standalone/cjs/runtime/edge.js +1 -0
- package/dist-standalone/cjs/runtime/react-native.js +1 -0
- package/dist-standalone/cjs/security-policy.js +1 -245
- package/dist-standalone/cjs/serialization.js +1 -0
- package/dist-standalone/cjs/split-channel.js +1 -177
- package/dist-standalone/cjs/subscription-proof.js +1 -230
- package/dist-standalone/cjs/succession.js +1 -148
- package/dist-standalone/cjs/timeouts.js +1 -0
- package/dist-standalone/cjs/trace-context.js +1 -0
- package/dist-standalone/cjs/trace-spans.js +1 -0
- package/dist-standalone/cjs/transport.js +1 -63
- package/dist-standalone/cjs/trust-registry.js +1 -742
- package/dist-standalone/cjs/types/error-response.js +1 -56
- package/dist-standalone/cjs/vault-auth.js +1 -0
- package/dist-standalone/cjs/vault-store-loader.js +1 -0
- package/dist-standalone/cjs/verify.js +1 -25
- package/dist-standalone/cjs/version-info.js +1 -0
- package/dist-standalone/cjs/xfetch.js +1 -252
- package/dist-standalone/cli/init.js +1 -449
- package/dist-standalone/cli/setup.js +1 -514
- package/dist-standalone/cli/types.js +1 -27
- package/dist-standalone/cli/xbind.js +1 -148
- package/dist-standalone/config-validation.d.ts +185 -0
- package/dist-standalone/config-validation.js +1 -0
- package/dist-standalone/connect.js +1 -274
- package/dist-standalone/connection-pool.d.ts +251 -0
- package/dist-standalone/connection-pool.js +1 -0
- package/dist-standalone/correlation-id.js +1 -326
- package/dist-standalone/crypto-utils.d.ts +60 -0
- package/dist-standalone/crypto-utils.js +1 -0
- package/dist-standalone/debug-mode.d.ts +286 -0
- package/dist-standalone/debug-mode.js +1 -0
- package/dist-standalone/did-document.js +1 -96
- package/dist-standalone/did-privateme.js +1 -121
- package/dist-standalone/did-web.js +1 -196
- package/dist-standalone/discovery.js +1 -458
- package/dist-standalone/dual-mode.js +1 -247
- package/dist-standalone/email-templates.js +1 -309
- package/dist-standalone/email-transport.js +1 -232
- package/dist-standalone/envelope.d.ts +29 -1
- package/dist-standalone/envelope.js +1 -497
- package/dist-standalone/errors.d.ts +10 -0
- package/dist-standalone/errors.js +1 -811
- package/dist-standalone/event-emitter.d.ts +395 -0
- package/dist-standalone/event-emitter.js +1 -0
- package/dist-standalone/gateway-state.js +1 -51
- package/dist-standalone/gateway-transport.js +1 -116
- package/dist-standalone/graceful-degradation.d.ts +246 -0
- package/dist-standalone/graceful-degradation.js +1 -0
- package/dist-standalone/guardrails.js +1 -216
- package/dist-standalone/health-check.d.ts +150 -0
- package/dist-standalone/health-check.js +1 -0
- package/dist-standalone/http-compat.js +1 -267
- package/dist-standalone/http-status-map.js +1 -561
- package/dist-standalone/identity.d.ts +64 -1
- package/dist-standalone/identity.js +1 -516
- package/dist-standalone/index.d.ts +45 -3
- package/dist-standalone/index.js +1 -52
- package/dist-standalone/invitation.js +1 -415
- package/dist-standalone/invite.js +1 -324
- package/dist-standalone/key-agreement.d.ts +61 -13
- package/dist-standalone/key-agreement.js +1 -236
- package/dist-standalone/lazy-init.js +1 -295
- package/dist-standalone/logger.d.ts +77 -0
- package/dist-standalone/logger.js +1 -0
- package/dist-standalone/mdns-discovery.js +1 -195
- package/dist-standalone/nonce-store.d.ts +16 -3
- package/dist-standalone/nonce-store.js +1 -62
- package/dist-standalone/package.json +0 -1
- package/dist-standalone/pairing-manager.js +1 -219
- package/dist-standalone/plugin-system.d.ts +145 -0
- package/dist-standalone/plugin-system.js +1 -0
- package/dist-standalone/policy.js +1 -315
- package/dist-standalone/progress-callbacks.d.ts +394 -0
- package/dist-standalone/progress-callbacks.js +1 -0
- package/dist-standalone/redis-nonce-store.js +1 -72
- package/dist-standalone/registry-middleware.js +1 -47
- package/dist-standalone/retry-strategies.d.ts +382 -0
- package/dist-standalone/retry-strategies.js +1 -0
- package/dist-standalone/retry-transport.js +1 -98
- package/dist-standalone/security-policy.js +1 -239
- package/dist-standalone/serialization.d.ts +244 -0
- package/dist-standalone/serialization.js +1 -0
- package/dist-standalone/split-channel.d.ts +49 -1
- package/dist-standalone/split-channel.js +1 -171
- package/dist-standalone/subscription-proof.js +1 -224
- package/dist-standalone/succession.js +1 -142
- package/dist-standalone/timeouts.d.ts +275 -0
- package/dist-standalone/timeouts.js +1 -0
- package/dist-standalone/trace-context.d.ts +252 -0
- package/dist-standalone/trace-context.js +1 -0
- package/dist-standalone/trace-spans.d.ts +360 -0
- package/dist-standalone/trace-spans.js +1 -0
- package/dist-standalone/transport.js +1 -59
- package/dist-standalone/trust-registry.d.ts +106 -5
- package/dist-standalone/trust-registry.js +1 -702
- package/dist-standalone/vault-auth.d.ts +91 -0
- package/dist-standalone/vault-auth.js +1 -0
- package/dist-standalone/vault-store-loader.d.ts +110 -0
- package/dist-standalone/vault-store-loader.js +1 -0
- package/dist-standalone/verify.js +1 -16
- package/dist-standalone/version-info.d.ts +259 -0
- package/dist-standalone/version-info.js +1 -0
- package/dist-standalone/xfetch.js +1 -247
- package/llms.txt +1 -0
- package/package.json +66 -5
- package/share1.dat +0 -0
- package/dist-standalone/_deps/crypto/base64.d.ts +0 -29
- package/dist-standalone/_deps/crypto/base64.js +0 -209
- package/dist-standalone/_deps/crypto/cjs/base64.js +0 -103
- package/dist-standalone/_deps/crypto/cjs/errors.js +0 -119
- package/dist-standalone/_deps/crypto/cjs/hmac.js +0 -71
- package/dist-standalone/_deps/crypto/cjs/index.js +0 -86
- package/dist-standalone/_deps/crypto/cjs/padding.js +0 -57
- package/dist-standalone/_deps/crypto/cjs/share-header.js +0 -68
- package/dist-standalone/_deps/crypto/cjs/shares.js +0 -152
- package/dist-standalone/_deps/crypto/cjs/tlv.js +0 -199
- package/dist-standalone/_deps/crypto/cjs/uuid.js +0 -61
- package/dist-standalone/_deps/crypto/cjs/verify.js +0 -24
- package/dist-standalone/_deps/crypto/cjs/xorida.js +0 -221
- package/dist-standalone/_deps/crypto/errors.d.ts +0 -51
- package/dist-standalone/_deps/crypto/errors.js +0 -109
- package/dist-standalone/_deps/crypto/hmac.d.ts +0 -39
- package/dist-standalone/_deps/crypto/hmac.js +0 -66
- package/dist-standalone/_deps/crypto/index.d.ts +0 -20
- package/dist-standalone/_deps/crypto/index.js +0 -45
- package/dist-standalone/_deps/crypto/padding.d.ts +0 -19
- package/dist-standalone/_deps/crypto/padding.js +0 -53
- package/dist-standalone/_deps/crypto/share-header.d.ts +0 -44
- package/dist-standalone/_deps/crypto/share-header.js +0 -63
- package/dist-standalone/_deps/crypto/shares.d.ts +0 -27
- package/dist-standalone/_deps/crypto/shares.js +0 -148
- package/dist-standalone/_deps/crypto/tlv.d.ts +0 -26
- package/dist-standalone/_deps/crypto/tlv.js +0 -195
- package/dist-standalone/_deps/crypto/uuid.d.ts +0 -22
- package/dist-standalone/_deps/crypto/uuid.js +0 -56
- package/dist-standalone/_deps/crypto/verify.d.ts +0 -15
- package/dist-standalone/_deps/crypto/verify.js +0 -15
- package/dist-standalone/_deps/crypto/xorida.d.ts +0 -44
- package/dist-standalone/_deps/crypto/xorida.js +0 -215
- package/dist-standalone/_deps/shared/errors.d.ts.map +0 -1
- package/dist-standalone/_deps/shared/errors.js.map +0 -1
- package/dist-standalone/_deps/shared/index.d.ts.map +0 -1
- package/dist-standalone/_deps/shared/index.js.map +0 -1
- package/dist-standalone/_deps/shared/types.d.ts.map +0 -1
- package/dist-standalone/_deps/shared/types.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/errors.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/errors.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/index.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/index.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/pagination.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/pagination.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/progress.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/progress.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/search.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/search.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/types.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/cjs/types.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/errors.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/errors.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/index.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/index.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/pagination.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/pagination.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/progress.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/progress.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/search.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/search.js.map +0 -1
- package/dist-standalone/_deps/ux-helpers/types.d.ts.map +0 -1
- package/dist-standalone/_deps/ux-helpers/types.js.map +0 -1
- package/dist-standalone/_deps/xregistry/discovery.d.ts.map +0 -1
- package/dist-standalone/_deps/xregistry/discovery.js.map +0 -1
- package/dist-standalone/_deps/xregistry/errors.d.ts.map +0 -1
- package/dist-standalone/_deps/xregistry/errors.js.map +0 -1
- package/dist-standalone/_deps/xregistry/index.d.ts.map +0 -1
- package/dist-standalone/_deps/xregistry/index.js.map +0 -1
- package/dist-standalone/_deps/xregistry/registry.d.ts.map +0 -1
- package/dist-standalone/_deps/xregistry/registry.js.map +0 -1
- package/dist-standalone/_deps/xregistry/schema.d.ts.map +0 -1
- package/dist-standalone/_deps/xregistry/schema.js.map +0 -1
- package/dist-standalone/_deps/xregistry/types.d.ts.map +0 -1
- package/dist-standalone/_deps/xregistry/types.js.map +0 -1
package/LICENSES.md
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Third-Party Licenses
|
|
2
|
+
|
|
3
|
+
xBind (@private.me/xbind) incorporates cryptographic libraries from third-party open source projects. This document provides required attributions and license information.
|
|
4
|
+
|
|
5
|
+
## Summary
|
|
6
|
+
|
|
7
|
+
All third-party dependencies use permissive licenses (MIT, MIT-0) compatible with commercial use, modification, and redistribution. No GPL/AGPL dependencies exist in this package.
|
|
8
|
+
|
|
9
|
+
| Dependency | Version | License | Purpose |
|
|
10
|
+
|------------|---------|---------|---------|
|
|
11
|
+
| mlkem | 2.7.0 | MIT | ML-KEM-768 post-quantum key encapsulation |
|
|
12
|
+
| mldsa-wasm | 0.0.4 | MIT | ML-DSA post-quantum signatures (vendored) |
|
|
13
|
+
| bonjour-service | 1.3.0 | MIT | Zero-configuration networking (mDNS/DNS-SD) |
|
|
14
|
+
| nodemailer | 8.0.7 | MIT-0 | Email transport for magic link authentication |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## mlkem
|
|
19
|
+
|
|
20
|
+
**Version:** 2.7.0
|
|
21
|
+
**License:** MIT
|
|
22
|
+
**Repository:** https://github.com/dajiaji/crystals-kyber-js
|
|
23
|
+
**Purpose:** ML-KEM-768 (Module-Lattice-Based Key-Encapsulation Mechanism) implementation for hybrid post-quantum key agreement
|
|
24
|
+
|
|
25
|
+
### License Text
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
MIT License
|
|
29
|
+
|
|
30
|
+
Copyright (c) 2023 Ajitomi Daisuke
|
|
31
|
+
|
|
32
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
33
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
34
|
+
in the Software without restriction, including without limitation the rights
|
|
35
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
36
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
37
|
+
furnished to do so, subject to the following conditions:
|
|
38
|
+
|
|
39
|
+
The above copyright notice and this permission notice shall be included in all
|
|
40
|
+
copies or substantial portions of the Software.
|
|
41
|
+
|
|
42
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
43
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
44
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
45
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
46
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
47
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
48
|
+
SOFTWARE.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## mldsa-wasm
|
|
54
|
+
|
|
55
|
+
**Version:** 0.0.4
|
|
56
|
+
**License:** MIT
|
|
57
|
+
**Repository:** https://github.com/dchest/mldsa-wasm
|
|
58
|
+
**Purpose:** ML-DSA (Module-Lattice-Based Digital Signature Algorithm) implementation for post-quantum signatures
|
|
59
|
+
**Note:** Vendored in `dist-standalone/_deps/` per HARD RULE #3 (L3 dependency fix)
|
|
60
|
+
|
|
61
|
+
### License Text
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
MIT License
|
|
65
|
+
|
|
66
|
+
Copyright (c) Dmitry Chestnykh
|
|
67
|
+
|
|
68
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
69
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
70
|
+
in the Software without restriction, including without limitation the rights
|
|
71
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
72
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
73
|
+
furnished to do so, subject to the following conditions:
|
|
74
|
+
|
|
75
|
+
The above copyright notice and this permission notice shall be included in all
|
|
76
|
+
copies or substantial portions of the Software.
|
|
77
|
+
|
|
78
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
79
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
80
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
81
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
82
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
83
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
84
|
+
SOFTWARE.
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## bonjour-service
|
|
90
|
+
|
|
91
|
+
**Version:** 1.3.0
|
|
92
|
+
**License:** MIT
|
|
93
|
+
**Repository:** https://github.com/onlxltd/bonjour-service
|
|
94
|
+
**Purpose:** Zero-configuration networking for service discovery (mDNS/DNS-SD)
|
|
95
|
+
|
|
96
|
+
### License Text
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
MIT License
|
|
100
|
+
|
|
101
|
+
Copyright (c) 2024 ONL
|
|
102
|
+
|
|
103
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
104
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
105
|
+
in the Software without restriction, including without limitation the rights
|
|
106
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
107
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
108
|
+
furnished to do so, subject to the following conditions:
|
|
109
|
+
|
|
110
|
+
The above copyright notice and this permission notice shall be included in all
|
|
111
|
+
copies or substantial portions of the Software.
|
|
112
|
+
|
|
113
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
114
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
115
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
116
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
117
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
118
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
119
|
+
SOFTWARE.
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## nodemailer
|
|
125
|
+
|
|
126
|
+
**Version:** 8.0.7
|
|
127
|
+
**License:** MIT-0 (MIT No Attribution)
|
|
128
|
+
**Repository:** https://github.com/nodemailer/nodemailer
|
|
129
|
+
**Purpose:** Email transport layer for passwordless authentication (magic links)
|
|
130
|
+
|
|
131
|
+
### License Text
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
MIT No Attribution License
|
|
135
|
+
|
|
136
|
+
Copyright (c) 2011-2019 Andris Reinman
|
|
137
|
+
|
|
138
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
139
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
140
|
+
in the Software without restriction, including without limitation the rights
|
|
141
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
142
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
143
|
+
furnished to do so.
|
|
144
|
+
|
|
145
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
146
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
147
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
148
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
149
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
150
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
151
|
+
SOFTWARE.
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Web Crypto API
|
|
157
|
+
|
|
158
|
+
xBind uses the **Web Crypto API** (native browser/Node.js API) for core cryptographic operations:
|
|
159
|
+
|
|
160
|
+
- **AES-256-GCM** symmetric encryption
|
|
161
|
+
- **Ed25519** signatures (identity verification)
|
|
162
|
+
- **X25519** key agreement (ECDH forward secrecy)
|
|
163
|
+
- **HKDF** key derivation
|
|
164
|
+
- **SHA-256** hashing
|
|
165
|
+
- **HMAC-SHA256** message authentication
|
|
166
|
+
|
|
167
|
+
The Web Crypto API is a W3C standard implemented natively in all modern JavaScript runtimes (browsers, Node.js 18+, Deno, Bun). No third-party library is used for these operations.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Internal Dependencies (Private.Me Workspace)
|
|
172
|
+
|
|
173
|
+
xBind depends on two internal workspace packages (not third-party):
|
|
174
|
+
|
|
175
|
+
### @private.me/shared
|
|
176
|
+
|
|
177
|
+
- **License:** Proprietary (Standard Clouds, Inc. dba PRIVATE.ME)
|
|
178
|
+
- **Purpose:** Shared TypeScript types and utilities (Result<T, E>, UUID generation)
|
|
179
|
+
- **Dependencies:** Zero npm dependencies
|
|
180
|
+
|
|
181
|
+
### @private.me/crypto
|
|
182
|
+
|
|
183
|
+
- **License:** Proprietary (Standard Clouds, Inc. dba PRIVATE.ME)
|
|
184
|
+
- **Purpose:** XorIDA threshold secret sharing, HMAC verification, serialization
|
|
185
|
+
- **Dependencies:** Zero npm dependencies (Web Crypto API only)
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## License Compatibility
|
|
190
|
+
|
|
191
|
+
All third-party licenses (MIT, MIT-0) permit:
|
|
192
|
+
|
|
193
|
+
✅ Commercial use
|
|
194
|
+
✅ Modification
|
|
195
|
+
✅ Distribution
|
|
196
|
+
✅ Private use
|
|
197
|
+
✅ Sublicensing
|
|
198
|
+
|
|
199
|
+
All licenses require:
|
|
200
|
+
|
|
201
|
+
📄 License and copyright notice preservation
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Security Audit Trail
|
|
206
|
+
|
|
207
|
+
**Last Verified:** 2026-05-28
|
|
208
|
+
**Verification Method:** Automated license scan via `scripts/check-crypto-licenses.sh`
|
|
209
|
+
**Result:** 4/4 dependencies use permissive licenses (MIT/MIT-0)
|
|
210
|
+
**GPL/AGPL Check:** PASS (no copyleft dependencies found)
|
|
211
|
+
|
|
212
|
+
For security disclosures, contact: security@private.me
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @private.me/xbind
|
|
2
2
|
|
|
3
3
|

|
|
4
|
-

|
|
5
|
+

|
|
6
6
|

|
|
7
7
|

|
|
8
8
|
|
|
@@ -12,7 +12,7 @@ Build AI agents that communicate securely using ML-DSA-65 DID identity, ML-KEM-7
|
|
|
12
12
|
|
|
13
13
|
Part of the **Private.Me** platform—where APIs have keys, but ACIs have identity.
|
|
14
14
|
|
|
15
|
-
**Version
|
|
15
|
+
**Version 2.3.4** — **Major Features:** Full Control IP Protection (PLAN-13) - Vault Store architecture with payment-gated algorithm delivery. Store Front (npm) contains Share 1 only, Vault Store (EC2) contains Share 2 (payment-gated). Runtime crypto loading, 4-layer security (DID auth + usage quotas + rate limiting + audit logging). Usage-based model: Free tier 100K ops/month (includes vault access), Pro tier unlimited. Previous v1.4.2: Runtime compatibility, API enhancements. Previous v1.3.5: ML-KEM deterministic key generation fix.
|
|
16
16
|
|
|
17
17
|
## Install
|
|
18
18
|
|
|
@@ -42,6 +42,175 @@ pip install private-me-xbind
|
|
|
42
42
|
|
|
43
43
|
For production deployments requiring formal cryptographic assurance, please contact contact@private.me for enterprise options.
|
|
44
44
|
|
|
45
|
+
## Secure Key Storage
|
|
46
|
+
|
|
47
|
+
**⚠️ CRITICAL SECURITY WARNING:** All post-quantum cryptography in xBind is undermined if seeds/keys are stored in plaintext.
|
|
48
|
+
|
|
49
|
+
### ❌ NEVER Store Keys in Plaintext
|
|
50
|
+
|
|
51
|
+
**Dangerous practices that expose your identity:**
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
// ❌ WRONG: Plaintext file storage
|
|
55
|
+
const seed = agent.exportSeeds();
|
|
56
|
+
fs.writeFileSync('seed.txt', seed); // Readable by any process
|
|
57
|
+
fs.writeFileSync('.env', `XBIND_SEED=${seed}`); // Committed to git by accident
|
|
58
|
+
localStorage.setItem('seed', seed); // Accessible to XSS attacks
|
|
59
|
+
|
|
60
|
+
// ❌ WRONG: Hardcoded in source code
|
|
61
|
+
const agent = await Agent.fromSeed('0123456789abcdef...'); // Visible in repository
|
|
62
|
+
|
|
63
|
+
// ❌ WRONG: Unencrypted database
|
|
64
|
+
await db.run('INSERT INTO config VALUES (?, ?)', ['seed', seed]); // SQL injection risk
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Why this is critical:**
|
|
68
|
+
- **Identity Theft**: Attacker gains your DID and can impersonate your agent
|
|
69
|
+
- **Message Decryption**: All past and future messages can be decrypted
|
|
70
|
+
- **Billing Fraud**: Attacker can exhaust your quota or make unauthorized charges
|
|
71
|
+
- **Post-Quantum Broken**: ML-KEM and ML-DSA offer no protection if seed is leaked
|
|
72
|
+
|
|
73
|
+
### ✅ Use OS-Level Keystore APIs
|
|
74
|
+
|
|
75
|
+
**Recommended secure storage by platform:**
|
|
76
|
+
|
|
77
|
+
#### macOS: Keychain Services
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
import { exec } from 'node:child_process';
|
|
81
|
+
import { promisify } from 'node:util';
|
|
82
|
+
const execAsync = promisify(exec);
|
|
83
|
+
|
|
84
|
+
// Store seed in macOS Keychain
|
|
85
|
+
async function storeSeed(seed: string): Promise<void> {
|
|
86
|
+
await execAsync(
|
|
87
|
+
`security add-generic-password -a xbind -s "xBind Agent Seed" -w "${seed}" -U`
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Retrieve seed from macOS Keychain
|
|
92
|
+
async function getSeed(): Promise<string> {
|
|
93
|
+
const { stdout } = await execAsync(
|
|
94
|
+
'security find-generic-password -a xbind -s "xBind Agent Seed" -w'
|
|
95
|
+
);
|
|
96
|
+
return stdout.trim();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Create agent from keychain
|
|
100
|
+
const seed = await getSeed();
|
|
101
|
+
const agent = await Agent.fromSeed(seed);
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### Windows: Credential Manager (DPAPI)
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
// Using keytar package for cross-platform keychain access
|
|
108
|
+
import keytar from 'keytar';
|
|
109
|
+
|
|
110
|
+
// Store seed in Windows Credential Manager
|
|
111
|
+
await keytar.setPassword('xbind', 'agent-seed', seed);
|
|
112
|
+
|
|
113
|
+
// Retrieve seed from Windows Credential Manager
|
|
114
|
+
const seed = await keytar.getPassword('xbind', 'agent-seed');
|
|
115
|
+
if (!seed) throw new Error('Seed not found in credential store');
|
|
116
|
+
|
|
117
|
+
const agent = await Agent.fromSeed(seed);
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
#### Linux: Secret Service API (gnome-keyring, KWallet)
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
import keytar from 'keytar';
|
|
124
|
+
|
|
125
|
+
// Store seed in Secret Service (libsecret)
|
|
126
|
+
await keytar.setPassword('xbind', 'agent-seed', seed);
|
|
127
|
+
|
|
128
|
+
// Retrieve seed from Secret Service
|
|
129
|
+
const seed = await keytar.getPassword('xbind', 'agent-seed');
|
|
130
|
+
if (!seed) throw new Error('Seed not found in Secret Service');
|
|
131
|
+
|
|
132
|
+
const agent = await Agent.fromSeed(seed);
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Cross-platform library:**
|
|
136
|
+
```bash
|
|
137
|
+
npm install keytar # Unified API for macOS/Windows/Linux keystores
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 🏢 Production: Hardware Security Modules (HSM)
|
|
141
|
+
|
|
142
|
+
For production deployments with compliance requirements (PCI-DSS, HIPAA, SOC 2):
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
// Using AWS CloudHSM or Azure Key Vault
|
|
146
|
+
import { KMSClient, DecryptCommand } from '@aws-sdk/client-kms';
|
|
147
|
+
|
|
148
|
+
const kms = new KMSClient({ region: 'us-west-2' });
|
|
149
|
+
|
|
150
|
+
// Encrypt seed with KMS (one-time setup)
|
|
151
|
+
const encryptedSeed = await kms.send(new EncryptCommand({
|
|
152
|
+
KeyId: 'arn:aws:kms:us-west-2:...',
|
|
153
|
+
Plaintext: Buffer.from(seed)
|
|
154
|
+
}));
|
|
155
|
+
|
|
156
|
+
// Store encrypted seed in database (safe)
|
|
157
|
+
await db.run('INSERT INTO config VALUES (?, ?)', ['seed', encryptedSeed.CiphertextBlob]);
|
|
158
|
+
|
|
159
|
+
// Decrypt seed with KMS at runtime
|
|
160
|
+
const decryptedSeed = await kms.send(new DecryptCommand({
|
|
161
|
+
CiphertextBlob: encryptedSeedFromDB
|
|
162
|
+
}));
|
|
163
|
+
|
|
164
|
+
const agent = await Agent.fromSeed(decryptedSeed.Plaintext.toString());
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**HSM Benefits:**
|
|
168
|
+
- **FIPS 140-2 Level 3** certified hardware
|
|
169
|
+
- **Tamper-evident**: Keys destroyed if physical breach detected
|
|
170
|
+
- **Audit logging**: All key access operations logged
|
|
171
|
+
- **Access control**: IAM policies restrict who can decrypt
|
|
172
|
+
|
|
173
|
+
### 📋 Key Storage Best Practices
|
|
174
|
+
|
|
175
|
+
1. **Encrypt at Rest**: If storing in database/filesystem, use AES-256-GCM with a separate encryption key
|
|
176
|
+
2. **Least Privilege**: Only the agent process should have access to the seed
|
|
177
|
+
3. **Rotation**: Plan for key rotation (see Succession API section)
|
|
178
|
+
4. **Backup**: Encrypted backups to separate storage (3-2-1 rule)
|
|
179
|
+
5. **Monitoring**: Alert on unauthorized seed access attempts
|
|
180
|
+
6. **Destruction**: Securely wipe seeds when decommissioning agents
|
|
181
|
+
|
|
182
|
+
### 🔒 Environment Variable Security
|
|
183
|
+
|
|
184
|
+
If you MUST use environment variables (not recommended):
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# ✅ Better: Encrypted environment variable (AWS Secrets Manager)
|
|
188
|
+
export XBIND_SEED=$(aws secretsmanager get-secret-value --secret-id xbind-seed --query SecretString --output text)
|
|
189
|
+
|
|
190
|
+
# ❌ Avoid: Plaintext in shell history
|
|
191
|
+
export XBIND_SEED="0123456789abcdef..." # Visible in ~/.bash_history
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Limitations of environment variables:**
|
|
195
|
+
- Visible to all processes (ps, /proc/PID/environ)
|
|
196
|
+
- Logged by process managers (systemd, Docker logs)
|
|
197
|
+
- Inherited by child processes
|
|
198
|
+
- Difficult to rotate without restart
|
|
199
|
+
|
|
200
|
+
### 🚨 Incident Response
|
|
201
|
+
|
|
202
|
+
**If your seed is compromised:**
|
|
203
|
+
|
|
204
|
+
1. **Revoke immediately**: Use the Succession API to rotate to a new identity
|
|
205
|
+
2. **Audit access**: Check all messages sent/received during exposure window
|
|
206
|
+
3. **Notify recipients**: Inform peers to distrust the old DID
|
|
207
|
+
4. **Update registry**: Register new DID, revoke old DID
|
|
208
|
+
5. **Forensics**: Determine how seed was leaked to prevent recurrence
|
|
209
|
+
|
|
210
|
+
**Contact contact@private.me for incident assistance** (24-hour SLA for Pro/VIP tiers).
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
45
214
|
## Dependencies
|
|
46
215
|
|
|
47
216
|
xBind requires the following runtime dependencies for cryptographic operations and network communication:
|
|
@@ -319,7 +488,114 @@ Zero key management, zero cascade failures, zero bearer credentials. Cryptograph
|
|
|
319
488
|
|
|
320
489
|
## Features
|
|
321
490
|
|
|
322
|
-
**Zero-config JITR:** Just-in-Time Registration auto-registers agents with trust registry on first use (AWS IoT JITR, OAuth DCR, MCP 2025 standards).
|
|
491
|
+
**Zero-config JITR:** Just-in-Time Registration auto-registers agents with trust registry on first use (AWS IoT JITR, OAuth DCR, MCP 2025 standards).
|
|
492
|
+
|
|
493
|
+
### Core Security
|
|
494
|
+
- **Post-quantum cryptography:** ML-KEM-768 key encapsulation, ML-DSA-65 digital signatures (FIPS 203/204)
|
|
495
|
+
- **Hybrid key agreement:** X-Wing combiner (IETF draft-10) with 6-parameter domain separation
|
|
496
|
+
- **XorIDA split-channel delivery:** Information-theoretic threshold sharing (2-of-2, 2-of-3, 3-of-5)
|
|
497
|
+
- **Cryptographic request signing:** Ed25519 signatures prevent DID header forgery
|
|
498
|
+
- **Key rotation:** ML-KEM + X25519 rotation with fallback decryption (10 rotation history)
|
|
499
|
+
- **Proof-of-Possession:** Ed25519 signature verification prevents DID spoofing
|
|
500
|
+
- **Share-aware nonce deduplication:** Prevents replay attacks with composite keys
|
|
501
|
+
|
|
502
|
+
### Runtime Compatibility (4 Platforms)
|
|
503
|
+
- **Browser:** WebCrypto API, IndexedDB/localStorage adapters, WASM support, service workers
|
|
504
|
+
- **React Native:** AsyncStorage, Buffer polyfills, crypto detection, iOS/Android platform support
|
|
505
|
+
- **Edge Runtime:** Cloudflare Workers, Vercel Edge, Deno Deploy, KV storage, <1MB optimization
|
|
506
|
+
- **Node.js:** Native crypto module, filesystem storage, full feature set
|
|
507
|
+
|
|
508
|
+
### Operations Patterns
|
|
509
|
+
- **Health checks:** Startup/liveness/readiness probes, Kubernetes-compatible, Express/Fastify middleware
|
|
510
|
+
- **Circuit breakers:** 3-state machine (closed/open/half-open), registry/gateway/S3 presets, automatic recovery
|
|
511
|
+
- **Graceful degradation:** QoS tiers, intelligent caching, service health tracking, fallback strategies
|
|
512
|
+
- **Performance benchmarks:** Latency histograms with baselines for key ops (ML-KEM, ML-DSA, encryption)
|
|
513
|
+
- **Structured logging:** 4 levels (DEBUG/INFO/WARN/ERROR), automatic sensitive data redaction, correlation IDs
|
|
514
|
+
- **Telemetry:** Prometheus-compatible metrics (counters, histograms, gauges), operation latency tracking
|
|
515
|
+
|
|
516
|
+
### Security Audit Preparation
|
|
517
|
+
- **STRIDE threat modeling:** 66 threats analyzed across 6 categories
|
|
518
|
+
- **Crypto claims documentation:** 41 cryptographic claims documented with evidence
|
|
519
|
+
- **Known limitations disclosure:** 24 limitations disclosed for auditor transparency
|
|
520
|
+
- **Audit-ready:** NCC Group / Trail of Bits preparation ($100K-$150K, 12-week timeline)
|
|
521
|
+
|
|
522
|
+
### API Enhancements
|
|
523
|
+
- **Batch operations:** 6-8x speedup for parallel operations with single network round-trip
|
|
524
|
+
- **Async iterators:** `for await...of` syntax support for streaming message processing
|
|
525
|
+
- **Plugin/middleware system:** 6-phase lifecycle hooks with 3 built-in plugins
|
|
526
|
+
- **Event emitters:** Type-safe events with 5 event types, priority execution, bubbling
|
|
527
|
+
- **Cancellation tokens:** AbortController integration with timeout support
|
|
528
|
+
- **Progress callbacks:** 4 specialized trackers (operation, transfer, share, encryption)
|
|
529
|
+
- **Retry strategies:** 4 strategies (exponential, linear, immediate, jittered) + circuit breaker integration
|
|
530
|
+
- **Request timeouts:** Per-operation config with inheritance and cancellation
|
|
531
|
+
- **Connection pooling:** 60-70% latency reduction with keep-alive and metrics
|
|
532
|
+
- **Serialization formats:** JSON/MessagePack/CBOR support with auto-detection and negotiation
|
|
533
|
+
- **Configuration validation:** Comprehensive validation with clear error messages
|
|
534
|
+
- **Debug mode:** Performance profiling, network/crypto tracing, state inspection
|
|
535
|
+
- **SDK version info:** Capability detection, deprecation warnings, compatibility checking
|
|
536
|
+
|
|
537
|
+
### Developer Experience
|
|
538
|
+
- **Type safety:** `Result<T, E>` error handling with 96+ error codes
|
|
539
|
+
- **TypeScript strict mode:** Zero type errors, complete type coverage
|
|
540
|
+
- **Python SDK:** Complete bindings for identity, messaging, and encryption
|
|
541
|
+
- **User-friendly errors:** 75+ errors with actionable recovery hints
|
|
542
|
+
- **Complete API docs:** 2,587 lines with 50+ usage examples
|
|
543
|
+
- **CHANGELOG generation:** Automated Keep a Changelog format with semver discipline
|
|
544
|
+
- **Dependency audit:** Weekly Dependabot scans, 5-layer vulnerability scanning
|
|
545
|
+
- **Crypto license compliance:** Automated MIT/MIT-0 validation with GPL/AGPL detection
|
|
546
|
+
|
|
547
|
+
### Enterprise Features
|
|
548
|
+
- **Version negotiation:** Explicit SDK version fields prevent "404 Route not found" in mixed fleets
|
|
549
|
+
- **Multi-device session resume:** AES-256-GCM encrypted session state sync with PBKDF2 (100k iterations)
|
|
550
|
+
- **Encrypted backup/restore:** Password-protected identity export with PBKDF2-SHA256 (310k iterations)
|
|
551
|
+
- **Offline sync:** Message queueing for offline devices (max 1000 messages, 24-hour TTL)
|
|
552
|
+
- **Registry expiration:** TTL support with cleanup (default 7 days)
|
|
553
|
+
- **Server-side spending limits:** Redis-backed enforcement with deployment-level aggregation
|
|
554
|
+
- **Rate limiting:** Three-tier protection (per-DID, per-IP, global)
|
|
555
|
+
- **Full Control IP protection:** Store Front (npm) + Vault Store (EC2) with payment verification
|
|
556
|
+
|
|
557
|
+
### Testing & Quality
|
|
558
|
+
- **2,762 tests:** Comprehensive coverage (96.6% passing)
|
|
559
|
+
- **End-to-end integration:** Full message flow tests (Agent A → Gateway → Agent B)
|
|
560
|
+
- **Gateway concurrency:** 100 concurrent sends, race condition detection
|
|
561
|
+
- **Network partition recovery:** Disconnect/reconnect cycles with retry logic
|
|
562
|
+
- **PLAN-3 hybrid signatures:** Bilateral authorization with composite verification
|
|
563
|
+
|
|
564
|
+
## Bundle Size Optimization (Tree-Shaking)
|
|
565
|
+
|
|
566
|
+
**New in v2.3.4:** Full Control IP Protection - cryptographic algorithms delivered via payment-gated Vault Store. Share 1 in npm (useless alone), Share 2 in EC2 (completes algorithm). Information-theoretic security for proprietary IP.
|
|
567
|
+
|
|
568
|
+
### Full Import (Convenience)
|
|
569
|
+
|
|
570
|
+
```typescript
|
|
571
|
+
import { Agent, generateIdentity } from '@private.me/xbind';
|
|
572
|
+
|
|
573
|
+
// Bundle size: ~450 KB
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
### Granular Import (Optimized)
|
|
577
|
+
|
|
578
|
+
```typescript
|
|
579
|
+
import { Agent } from '@private.me/xbind/agent';
|
|
580
|
+
import { generateIdentity } from '@private.me/xbind/identity';
|
|
581
|
+
|
|
582
|
+
// Bundle size: ~180 KB (60% reduction)
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
### Available Entry Points
|
|
586
|
+
|
|
587
|
+
| Entry Point | Exports | Bundle Impact |
|
|
588
|
+
|-------------|---------|---------------|
|
|
589
|
+
| `@private.me/xbind` | All exports | Full package (~450 KB) |
|
|
590
|
+
| `@private.me/xbind/agent` | `Agent`, `AgentOptions` | ~180 KB |
|
|
591
|
+
| `@private.me/xbind/identity` | `generateIdentity`, `Identity` | ~120 KB |
|
|
592
|
+
| `@private.me/xbind/trust-registry` | Registry classes | ~200 KB |
|
|
593
|
+
| `@private.me/xbind/key-agreement` | Key exchange functions | ~90 KB |
|
|
594
|
+
| `@private.me/xbind/errors` | Error types | 0 KB (types only) |
|
|
595
|
+
|
|
596
|
+
**Bundler Support:** Works with webpack 5+, Rollup, esbuild, and Vite. Tree-shaking is automatic in production mode.
|
|
597
|
+
|
|
598
|
+
**See:** [Tree-Shaking Guide](./docs/packaging/tree-shaking.md) for detailed usage and configuration.
|
|
323
599
|
|
|
324
600
|
## Automatic XorIDA Split-Channel Protection
|
|
325
601
|
|
|
@@ -508,9 +784,115 @@ pnpm test:coverage # Coverage report
|
|
|
508
784
|
pnpm test:watch # Watch mode
|
|
509
785
|
```
|
|
510
786
|
|
|
511
|
-
## IP Protection
|
|
787
|
+
## Full Control IP Protection
|
|
788
|
+
|
|
789
|
+
xBind uses **Full Control** (2-share XorIDA) to protect proprietary cryptographic algorithms while maintaining a seamless developer experience.
|
|
790
|
+
|
|
791
|
+
### Architecture: Store Front + Vault Store
|
|
792
|
+
|
|
793
|
+
**Store Front (npm registry):**
|
|
794
|
+
- Contains wrapper code, types, and non-proprietary utilities
|
|
795
|
+
- Includes Share 1 (`share1.dat`) — useless alone, safe to distribute publicly
|
|
796
|
+
- Installed via standard `npm install @private.me/xbind`
|
|
797
|
+
|
|
798
|
+
**Vault Store (private.me gateway):**
|
|
799
|
+
- Contains Share 2 (encrypted, payment-gated)
|
|
800
|
+
- Delivered via `/api/vault-store/crypto` endpoint
|
|
801
|
+
- Requires xBind DID authentication + usage quota verification
|
|
802
|
+
- AES-256-GCM encrypted with `FULL_CONTROL_MASTER_KEY`
|
|
803
|
+
|
|
804
|
+
When combined, Share 1 + Share 2 reconstruct the complete XorIDA algorithm at runtime.
|
|
805
|
+
|
|
806
|
+
### Usage-Based Access Model
|
|
807
|
+
|
|
808
|
+
**IMPORTANT:** Full Control uses **usage-based metering**, NOT feature-gating.
|
|
809
|
+
|
|
810
|
+
**All tiers** can access the Vault Store (crypto algorithms + Share 2) **within their usage quota**:
|
|
811
|
+
|
|
812
|
+
- **Free Tier:** 100,000 operations/month
|
|
813
|
+
- Grace buffer: 120,000 hard cap (includes 20% overage)
|
|
814
|
+
- Email verification required
|
|
815
|
+
- Vault access included (no additional payment needed)
|
|
816
|
+
- At 120K ops: 402 Quota Exceeded → Upgrade prompt
|
|
817
|
+
|
|
818
|
+
- **Pro Tier:** Unlimited operations
|
|
819
|
+
- $5 per 100,000 operations (after first 100K free)
|
|
820
|
+
- No quota checks
|
|
821
|
+
- Vault access unlimited
|
|
822
|
+
- Example: 400K ops = $15/month (100K free + 300K @ $5/100K)
|
|
823
|
+
|
|
824
|
+
- **VIP Tier:** Custom limits per account
|
|
825
|
+
- Bronze: 200K, Silver: 500K, Gold: 1M, Platinum: Unlimited
|
|
826
|
+
- Vault access within custom quota
|
|
827
|
+
|
|
828
|
+
### Upgrade to Pro
|
|
829
|
+
|
|
830
|
+
If you exceed the free tier quota, upgrade to Pro for unlimited operations:
|
|
831
|
+
|
|
832
|
+
```bash
|
|
833
|
+
# Visit the upgrade page
|
|
834
|
+
https://private.me/subscribe?product=xbind&tier=pro
|
|
835
|
+
|
|
836
|
+
# Or upgrade programmatically via xBind API
|
|
837
|
+
const result = await agent.send({
|
|
838
|
+
to: 'did:key:z6MkBillingService...',
|
|
839
|
+
payload: { action: 'upgradeTier', tier: 'pro' }
|
|
840
|
+
});
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
### 4-Layer Security
|
|
844
|
+
|
|
845
|
+
1. **DID Authentication:** Ed25519 signature verification (cryptographic proof of identity)
|
|
846
|
+
2. **Usage Quota Verification:** Monthly operation count checked against tier limits
|
|
847
|
+
3. **Rate Limiting:** Free: 100 req/hour, Pro: 1000 req/hour, VIP: 5000 req/hour
|
|
848
|
+
4. **Audit Logging:** Every vault access logged with DID, timestamp, IP, and success status
|
|
849
|
+
|
|
850
|
+
### Runtime Flow
|
|
851
|
+
|
|
852
|
+
```typescript
|
|
853
|
+
// 1. Install package (includes Share 1)
|
|
854
|
+
// npm install @private.me/xbind
|
|
855
|
+
|
|
856
|
+
// 2. Create agent (auto-fetches Share 2 on first use)
|
|
857
|
+
const agent = await Agent.create(seed);
|
|
858
|
+
|
|
859
|
+
// 3. Vault Store loader detects missing crypto
|
|
860
|
+
// 4. POST /api/vault-store/crypto
|
|
861
|
+
// - Auth: DID signature
|
|
862
|
+
// - Verify: Usage quota (Free: <120K, Pro: unlimited)
|
|
863
|
+
// - Response: { cryptoBundle, share2, version }
|
|
864
|
+
|
|
865
|
+
// 5. Load crypto dynamically (Share 1 + Share 2 = complete algorithm)
|
|
866
|
+
// 6. Cache in memory (session-only, 7-day expiration)
|
|
867
|
+
// 7. Use reconstructed XorIDA algorithm
|
|
868
|
+
|
|
869
|
+
await agent.send({
|
|
870
|
+
to: recipientDid,
|
|
871
|
+
payload: { amount: 100, currency: 'BTC' },
|
|
872
|
+
security: 'high' // Uses XorIDA (2-of-3 threshold)
|
|
873
|
+
});
|
|
874
|
+
```
|
|
875
|
+
|
|
876
|
+
### Why This Matters
|
|
877
|
+
|
|
878
|
+
**Without Full Control:**
|
|
879
|
+
- Complete XorIDA algorithm exposed in npm tarball
|
|
880
|
+
- Anyone can download and use without payment
|
|
881
|
+
- Patent protection (US 11,972,000) defeated
|
|
882
|
+
- Revenue model bypassed
|
|
883
|
+
|
|
884
|
+
**With Full Control:**
|
|
885
|
+
- Share 1 alone is mathematically useless (information-theoretic security)
|
|
886
|
+
- Share 2 requires usage-based quota verification
|
|
887
|
+
- Patent-protected algorithms delivered only to paying users (or within free tier quota)
|
|
888
|
+
- Reverse engineering requires breaking AES-256-GCM encryption
|
|
889
|
+
|
|
890
|
+
**Revenue Protection:**
|
|
891
|
+
- Free tier: 100K ops/month (generous for experimentation)
|
|
892
|
+
- Pro tier: Usage-based billing scales with value delivered
|
|
893
|
+
- DeploymentID tracking prevents quota reset attacks (DID rotation doesn't bypass limits)
|
|
512
894
|
|
|
513
|
-
|
|
895
|
+
See [IP Protection Documentation](./docs/ip-protection.md) for complete technical details.
|
|
514
896
|
|
|
515
897
|
## Data Collection
|
|
516
898
|
|