@thenewlabs/entangle-crypto 1.0.0 → 2.0.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/dist/index.d.ts CHANGED
@@ -2,6 +2,15 @@ export interface DerivedKeys {
2
2
  K_enc: Uint8Array;
3
3
  K_auth: Uint8Array;
4
4
  }
5
+ /**
6
+ * AEAD direction discriminator. Bound into the AAD of every frame so a
7
+ * ciphertext produced for one direction can never be reflected back and
8
+ * accepted in the other direction (both peers share the same K_enc).
9
+ */
10
+ export declare enum AeadDir {
11
+ ServerToClient = 1,// agent -> invoker
12
+ ClientToServer = 2
13
+ }
5
14
  export declare function initCrypto(): Promise<void>;
6
15
  export declare function extractSaltFromCapId(capId: string): Uint8Array;
7
16
  export declare function generateCapId(): {
@@ -9,16 +18,55 @@ export declare function generateCapId(): {
9
18
  saltCap: Uint8Array;
10
19
  };
11
20
  export declare function generateSecret(): string;
21
+ /**
22
+ * Derive the root key material from the capability secret. This is the
23
+ * expensive Argon2id step; callers should run it once per connection and
24
+ * reuse the returned `K_raw` for both bootstrap and session key derivation.
25
+ */
26
+ export declare function deriveKeyMaterial(S: Uint8Array | string, saltCap: Uint8Array): Promise<Uint8Array>;
27
+ /**
28
+ * Bootstrap keys — derived purely from the capability secret, identical for
29
+ * every session. Used ONLY to authenticate AUTH1 and to protect the AUTH2
30
+ * handshake message that carries the fresh session nonces. Never used for
31
+ * command data.
32
+ */
33
+ export declare function deriveBootstrapKeys(K_raw: Uint8Array): DerivedKeys;
34
+ /**
35
+ * Per-session keys — bound to the fresh handshake nonces (nonceB from the
36
+ * client, nonceC from the agent). Because both nonces are random per
37
+ * connection, every session gets distinct K_enc/K_auth, so ciphertext
38
+ * captured from one session cannot be replayed into another (each side's
39
+ * counters also reset per session). This is what actually defeats the
40
+ * cross-session replay / stale-output-injection attack.
41
+ */
42
+ export declare function deriveSessionKeys(K_raw: Uint8Array, nonceB: string, nonceC: string): DerivedKeys;
43
+ /**
44
+ * Convenience: bootstrap keys directly from the secret. Kept for callers that
45
+ * only need the capability-static keys (e.g. AUTH1 HMAC before nonces exist).
46
+ */
12
47
  export declare function deriveKeys(S: Uint8Array | string, saltCap: Uint8Array): Promise<DerivedKeys>;
13
48
  export interface AeadEncResult {
14
49
  nonce: Uint8Array;
15
50
  cipher: Uint8Array;
16
51
  }
17
- export declare function aeadEncrypt(K_enc: Uint8Array, type: number, ctr: number, plaintext: any): AeadEncResult;
18
- export declare function aeadDecrypt(K_enc: Uint8Array, type: number, nonce: Uint8Array, cipher: Uint8Array): {
52
+ /**
53
+ * Canonical AAD for a frame: binds both the frame type and the direction so
54
+ * a peer can never accept its own ciphertext reflected back.
55
+ */
56
+ export declare function frameAad(type: number, dir: AeadDir): Uint8Array;
57
+ export declare function aeadEncrypt(K_enc: Uint8Array, type: number, ctr: number, plaintext: any, dir: AeadDir): AeadEncResult;
58
+ export declare function aeadDecrypt(K_enc: Uint8Array, type: number, nonce: Uint8Array, cipher: Uint8Array, dir: AeadDir): {
19
59
  ctr: number;
20
60
  msg: any;
21
61
  };
62
+ /**
63
+ * Password hashing for the optional second-factor. Uses Argon2id with a
64
+ * random salt (via libsodium's crypto_pwhash_str), so the stored value is not
65
+ * a password-equivalent secret and cracking a leaked value is expensive.
66
+ */
67
+ export declare function hashPassword(password: string): Promise<string>;
68
+ /** Constant-time verification of a password against a stored Argon2id hash. */
69
+ export declare function verifyPassword(storedHash: string, password: string): Promise<boolean>;
22
70
  export declare function computeHmac(K_auth: Uint8Array, data: Uint8Array): Uint8Array;
23
71
  export declare function verifyHmac(K_auth: Uint8Array, data: Uint8Array, mac: Uint8Array): boolean;
24
72
  export declare function sha256Hex(text: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACpB;AAID,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAY9D;AAED,wBAAgB,aAAa,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAUtE;AAED,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA0BlG;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,GAAG,GACb,aAAa,CAcf;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,UAAU,GACjB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAa3B;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAE5E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAGzF;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAUxD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAcvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAI9C;AAED,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;;GAIG;AACH,oBAAY,OAAO;IACjB,cAAc,IAAI,CAAE,mBAAmB;IACvC,cAAc,IAAI;CACnB;AAID,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAY9D;AAED,wBAAgB,aAAa,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAUtE;AAED,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAaxG;AAUD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAGhG;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAGlG;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,UAAU,CAE/D;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,GAAG,EACd,GAAG,EAAE,OAAO,GACX,aAAa,CAcf;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,OAAO,GACX;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAa3B;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOpE;AAED,+EAA+E;AAC/E,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3F;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAE5E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAGzF;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAUxD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAcvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAI9C;AAED,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,16 @@ import { sha256 } from '@noble/hashes/sha256';
4
4
  import { hmac } from '@noble/hashes/hmac';
5
5
  import { encode, decode } from 'cborg';
6
6
  import { CRYPTO_PARAMS } from '@thenewlabs/entangle-protocol';
7
+ /**
8
+ * AEAD direction discriminator. Bound into the AAD of every frame so a
9
+ * ciphertext produced for one direction can never be reflected back and
10
+ * accepted in the other direction (both peers share the same K_enc).
11
+ */
12
+ export var AeadDir;
13
+ (function (AeadDir) {
14
+ AeadDir[AeadDir["ServerToClient"] = 1] = "ServerToClient";
15
+ AeadDir[AeadDir["ClientToServer"] = 2] = "ClientToServer";
16
+ })(AeadDir || (AeadDir = {}));
7
17
  let sodiumReady = false;
8
18
  export async function initCrypto() {
9
19
  if (!sodiumReady) {
@@ -39,29 +49,91 @@ export function generateSecret() {
39
49
  const secret = sodium.randombytes_buf(32);
40
50
  return base64UrlEncode(secret);
41
51
  }
42
- export async function deriveKeys(S, saltCap) {
52
+ /**
53
+ * Derive the root key material from the capability secret. This is the
54
+ * expensive Argon2id step; callers should run it once per connection and
55
+ * reuse the returned `K_raw` for both bootstrap and session key derivation.
56
+ */
57
+ export async function deriveKeyMaterial(S, saltCap) {
43
58
  await initCrypto();
44
59
  const secretBytes = typeof S === 'string' ? base64UrlDecode(S) : S;
45
- const K_raw = sodium.crypto_pwhash(32, secretBytes, saltCap, sodium.crypto_pwhash_OPSLIMIT_INTERACTIVE, sodium.crypto_pwhash_MEMLIMIT_INTERACTIVE, sodium.crypto_pwhash_ALG_ARGON2ID13);
46
- const derived = hkdf(sha256, K_raw, new Uint8Array(0), new TextEncoder().encode('entangle-capability'), 64);
60
+ return sodium.crypto_pwhash(32, secretBytes, saltCap, sodium.crypto_pwhash_OPSLIMIT_INTERACTIVE, sodium.crypto_pwhash_MEMLIMIT_INTERACTIVE, sodium.crypto_pwhash_ALG_ARGON2ID13);
61
+ }
62
+ function hkdfKeys(K_raw, salt, info) {
63
+ const derived = hkdf(sha256, K_raw, salt, new TextEncoder().encode(info), 64);
47
64
  return {
48
65
  K_enc: derived.slice(0, 32),
49
66
  K_auth: derived.slice(32, 64),
50
67
  };
51
68
  }
52
- export function aeadEncrypt(K_enc, type, ctr, plaintext) {
69
+ /**
70
+ * Bootstrap keys — derived purely from the capability secret, identical for
71
+ * every session. Used ONLY to authenticate AUTH1 and to protect the AUTH2
72
+ * handshake message that carries the fresh session nonces. Never used for
73
+ * command data.
74
+ */
75
+ export function deriveBootstrapKeys(K_raw) {
76
+ return hkdfKeys(K_raw, new Uint8Array(0), 'entangle-capability');
77
+ }
78
+ /**
79
+ * Per-session keys — bound to the fresh handshake nonces (nonceB from the
80
+ * client, nonceC from the agent). Because both nonces are random per
81
+ * connection, every session gets distinct K_enc/K_auth, so ciphertext
82
+ * captured from one session cannot be replayed into another (each side's
83
+ * counters also reset per session). This is what actually defeats the
84
+ * cross-session replay / stale-output-injection attack.
85
+ */
86
+ export function deriveSessionKeys(K_raw, nonceB, nonceC) {
87
+ const salt = new TextEncoder().encode(`${nonceB}|${nonceC}`);
88
+ return hkdfKeys(K_raw, salt, 'entangle-session-v2');
89
+ }
90
+ /**
91
+ * Convenience: bootstrap keys directly from the secret. Kept for callers that
92
+ * only need the capability-static keys (e.g. AUTH1 HMAC before nonces exist).
93
+ */
94
+ export async function deriveKeys(S, saltCap) {
95
+ const K_raw = await deriveKeyMaterial(S, saltCap);
96
+ return deriveBootstrapKeys(K_raw);
97
+ }
98
+ /**
99
+ * Canonical AAD for a frame: binds both the frame type and the direction so
100
+ * a peer can never accept its own ciphertext reflected back.
101
+ */
102
+ export function frameAad(type, dir) {
103
+ return encode({ type, dir });
104
+ }
105
+ export function aeadEncrypt(K_enc, type, ctr, plaintext, dir) {
53
106
  const nonce = sodium.randombytes_buf(CRYPTO_PARAMS.NONCE_BYTES);
54
- const aad = encode({ type });
107
+ const aad = frameAad(type, dir);
55
108
  const pt = encode({ ctr, msg: plaintext });
56
109
  const cipher = sodium.crypto_aead_xchacha20poly1305_ietf_encrypt(pt, aad, null, nonce, K_enc);
57
110
  return { nonce, cipher };
58
111
  }
59
- export function aeadDecrypt(K_enc, type, nonce, cipher) {
60
- const aad = encode({ type });
112
+ export function aeadDecrypt(K_enc, type, nonce, cipher, dir) {
113
+ const aad = frameAad(type, dir);
61
114
  const pt = sodium.crypto_aead_xchacha20poly1305_ietf_decrypt(null, cipher, aad, nonce, K_enc);
62
115
  const decoded = decode(pt);
63
116
  return decoded;
64
117
  }
118
+ /**
119
+ * Password hashing for the optional second-factor. Uses Argon2id with a
120
+ * random salt (via libsodium's crypto_pwhash_str), so the stored value is not
121
+ * a password-equivalent secret and cracking a leaked value is expensive.
122
+ */
123
+ export async function hashPassword(password) {
124
+ await initCrypto();
125
+ return sodium.crypto_pwhash_str(password, sodium.crypto_pwhash_OPSLIMIT_INTERACTIVE, sodium.crypto_pwhash_MEMLIMIT_INTERACTIVE);
126
+ }
127
+ /** Constant-time verification of a password against a stored Argon2id hash. */
128
+ export async function verifyPassword(storedHash, password) {
129
+ await initCrypto();
130
+ try {
131
+ return sodium.crypto_pwhash_str_verify(storedHash, password);
132
+ }
133
+ catch {
134
+ return false;
135
+ }
136
+ }
65
137
  export function computeHmac(K_auth, data) {
66
138
  return hmac(sha256, K_auth, data);
67
139
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAO9D,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,MAAM,CAAC,KAAK,CAAC;QACnB,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,IAAI,OAAmB,CAAC;IACxB,IAAI,CAAC;QACH,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7F,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACpD,OAAO;QACL,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC;QAChC,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,CAAsB,EAAE,OAAmB;IAC1E,MAAM,UAAU,EAAE,CAAC;IAEnB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAChC,EAAE,EACF,WAAW,EACX,OAAO,EACP,MAAM,CAAC,kCAAkC,EACzC,MAAM,CAAC,kCAAkC,EACzC,MAAM,CAAC,4BAA4B,CACpC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAClB,MAAM,EACN,KAAK,EACL,IAAI,UAAU,CAAC,CAAC,CAAC,EACjB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAC/C,EAAE,CACH,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KAC9B,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,WAAW,CACzB,KAAiB,EACjB,IAAY,EACZ,GAAW,EACX,SAAc;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG,MAAM,CAAC,0CAA0C,CAC9D,EAAE,EACF,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,CACN,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,KAAiB,EACjB,IAAY,EACZ,KAAiB,EACjB,MAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7B,MAAM,EAAE,GAAG,MAAM,CAAC,0CAA0C,CAC1D,IAAI,EACJ,MAAM,EACN,GAAG,EACH,KAAK,EACL,KAAK,CACN,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAA8B,CAAC;IACxD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAkB,EAAE,IAAgB;IAC9D,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAkB,EAAE,IAAgB,EAAE,GAAe;IAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,qEAAqE;IACrE,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAgB;IAC9C,wEAAwE;IACxE,IAAI,MAAc,CAAC;IACnB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACvE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACvE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAW;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thenewlabs/entangle-crypto",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@noble/hashes": "^1.8.0",
14
- "@thenewlabs/entangle-protocol": "^1.0.0",
14
+ "@thenewlabs/entangle-protocol": "^2.0.0",
15
15
  "cborg": "^4.5.8",
16
16
  "libsodium-wrappers-sumo": "^0.8.4"
17
17
  },