internxt-crypto 0.0.10-alpha → 0.0.13

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.
Files changed (158) hide show
  1. package/README.md +3 -4
  2. package/dist/aes-DSDxP8uF.mjs +184 -0
  3. package/dist/aes-DSDxP8uF.mjs.map +1 -0
  4. package/dist/aes-bOrKZuUC.js +226 -0
  5. package/dist/aes-bOrKZuUC.js.map +1 -0
  6. package/dist/asymmetric-crypto.d.mts +5 -2
  7. package/dist/asymmetric-crypto.d.mts.map +1 -0
  8. package/dist/asymmetric-crypto.d.ts +5 -2
  9. package/dist/asymmetric-crypto.d.ts.map +1 -0
  10. package/dist/asymmetric-crypto.js +9 -92
  11. package/dist/asymmetric-crypto.mjs +2 -84
  12. package/dist/chunk-DQk6qfdC.mjs +18 -0
  13. package/dist/chunk-EbLFQX5m.js +60 -0
  14. package/dist/constants.d.mts +5 -11
  15. package/dist/constants.d.mts.map +1 -0
  16. package/dist/constants.d.ts +5 -11
  17. package/dist/constants.d.ts.map +1 -0
  18. package/dist/constants.js +33 -49
  19. package/dist/constants.js.map +1 -1
  20. package/dist/constants.mjs +32 -40
  21. package/dist/constants.mjs.map +1 -1
  22. package/dist/derive-key.d.mts +11 -8
  23. package/dist/derive-key.d.mts.map +1 -0
  24. package/dist/derive-key.d.ts +11 -8
  25. package/dist/derive-key.d.ts.map +1 -0
  26. package/dist/derive-key.js +13 -795
  27. package/dist/derive-key.mjs +2 -783
  28. package/dist/deriveKeysFromPassword-DJRWZ8Rw.mjs +735 -0
  29. package/dist/deriveKeysFromPassword-DJRWZ8Rw.mjs.map +1 -0
  30. package/dist/deriveKeysFromPassword-Ko7NxkHM.js +2492 -0
  31. package/dist/deriveKeysFromPassword-Ko7NxkHM.js.map +1 -0
  32. package/dist/email-crypto.d.mts +55 -78
  33. package/dist/email-crypto.d.mts.map +1 -0
  34. package/dist/email-crypto.d.ts +55 -78
  35. package/dist/email-crypto.d.ts.map +1 -0
  36. package/dist/email-crypto.js +13 -1409
  37. package/dist/email-crypto.mjs +2 -1380
  38. package/dist/email-search.d.mts +36 -32
  39. package/dist/email-search.d.mts.map +1 -0
  40. package/dist/email-search.d.ts +36 -32
  41. package/dist/email-search.d.ts.map +1 -0
  42. package/dist/email-search.js +534 -540
  43. package/dist/email-search.js.map +1 -1
  44. package/dist/email-search.mjs +532 -538
  45. package/dist/email-search.mjs.map +1 -1
  46. package/dist/emailEncryptionKey-27mIHh18.mjs +150 -0
  47. package/dist/emailEncryptionKey-27mIHh18.mjs.map +1 -0
  48. package/dist/emailEncryptionKey-DbaDAdoW.js +167 -0
  49. package/dist/emailEncryptionKey-DbaDAdoW.js.map +1 -0
  50. package/dist/emailKeys-BJGdkLrg.js +593 -0
  51. package/dist/emailKeys-BJGdkLrg.js.map +1 -0
  52. package/dist/emailKeys-Fp9WR3wl.mjs +509 -0
  53. package/dist/emailKeys-Fp9WR3wl.mjs.map +1 -0
  54. package/dist/genID-3Er5IowC.mjs +153 -0
  55. package/dist/genID-3Er5IowC.mjs.map +1 -0
  56. package/dist/genID-YJSl3YhL.js +238 -0
  57. package/dist/genID-YJSl3YhL.js.map +1 -0
  58. package/dist/hash.d.mts +18 -15
  59. package/dist/hash.d.mts.map +1 -0
  60. package/dist/hash.d.ts +18 -15
  61. package/dist/hash.d.ts.map +1 -0
  62. package/dist/hash.js +12 -95
  63. package/dist/hash.mjs +2 -84
  64. package/dist/index.d.mts +15 -18
  65. package/dist/index.d.mts.map +1 -0
  66. package/dist/index.d.ts +15 -18
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +125 -2698
  69. package/dist/index.mjs +13 -2538
  70. package/dist/keys-BfcaiAOv.mjs +90 -0
  71. package/dist/keys-BfcaiAOv.mjs.map +1 -0
  72. package/dist/keys-CinT7kEY.js +125 -0
  73. package/dist/keys-CinT7kEY.js.map +1 -0
  74. package/dist/keystore-crypto.d.mts +17 -46
  75. package/dist/keystore-crypto.d.mts.map +1 -0
  76. package/dist/keystore-crypto.d.ts +17 -46
  77. package/dist/keystore-crypto.d.ts.map +1 -0
  78. package/dist/keystore-crypto.js +5 -529
  79. package/dist/keystore-crypto.mjs +2 -500
  80. package/dist/kyber1024-PpwE1rki.mjs +144 -0
  81. package/dist/kyber1024-PpwE1rki.mjs.map +1 -0
  82. package/dist/kyber1024-jeKS8CXf.js +173 -0
  83. package/dist/kyber1024-jeKS8CXf.js.map +1 -0
  84. package/dist/{kyber768-B87rMQ7u.d.mts → kyber768-DGBB_RS7.d.ts} +8 -6
  85. package/dist/kyber768-DGBB_RS7.d.ts.map +1 -0
  86. package/dist/{kyber768-B87rMQ7u.d.ts → kyber768-DzIcGg1i.d.mts} +8 -6
  87. package/dist/kyber768-DzIcGg1i.d.mts.map +1 -0
  88. package/dist/mac-BMb1F0dN.js +170 -0
  89. package/dist/mac-BMb1F0dN.js.map +1 -0
  90. package/dist/mac-ZpRlx8Fs.mjs +116 -0
  91. package/dist/mac-ZpRlx8Fs.mjs.map +1 -0
  92. package/dist/post-quantum-crypto.d.mts +23 -27
  93. package/dist/post-quantum-crypto.d.mts.map +1 -0
  94. package/dist/post-quantum-crypto.d.ts +23 -27
  95. package/dist/post-quantum-crypto.d.ts.map +1 -0
  96. package/dist/post-quantum-crypto.js +14 -92
  97. package/dist/post-quantum-crypto.mjs +2 -89
  98. package/dist/storage-service.d.mts +28 -34
  99. package/dist/storage-service.d.mts.map +1 -0
  100. package/dist/storage-service.d.ts +28 -34
  101. package/dist/storage-service.d.ts.map +1 -0
  102. package/dist/storage-service.js +51 -53
  103. package/dist/storage-service.js.map +1 -1
  104. package/dist/storage-service.mjs +40 -51
  105. package/dist/storage-service.mjs.map +1 -1
  106. package/dist/symmetric-crypto.d.mts +8 -7
  107. package/dist/symmetric-crypto.d.mts.map +1 -0
  108. package/dist/symmetric-crypto.d.ts +8 -7
  109. package/dist/symmetric-crypto.d.ts.map +1 -0
  110. package/dist/symmetric-crypto.js +10 -142
  111. package/dist/symmetric-crypto.mjs +2 -133
  112. package/dist/types.d.mts +71 -69
  113. package/dist/types.d.mts.map +1 -0
  114. package/dist/types.d.ts +71 -69
  115. package/dist/types.d.ts.map +1 -0
  116. package/dist/types.js +8 -10
  117. package/dist/types.js.map +1 -1
  118. package/dist/types.mjs +7 -9
  119. package/dist/types.mjs.map +1 -1
  120. package/dist/utils.d.mts +34 -78
  121. package/dist/utils.d.mts.map +1 -0
  122. package/dist/utils.d.ts +34 -78
  123. package/dist/utils.d.ts.map +1 -0
  124. package/dist/utils.js +17 -313
  125. package/dist/utils.mjs +2 -272
  126. package/package.json +21 -87
  127. package/dist/asymmetric-crypto.js.map +0 -1
  128. package/dist/asymmetric-crypto.mjs.map +0 -1
  129. package/dist/derive-key.js.map +0 -1
  130. package/dist/derive-key.mjs.map +0 -1
  131. package/dist/email-crypto.js.map +0 -1
  132. package/dist/email-crypto.mjs.map +0 -1
  133. package/dist/email-service.d.mts +0 -38
  134. package/dist/email-service.d.ts +0 -38
  135. package/dist/email-service.js +0 -154
  136. package/dist/email-service.js.map +0 -1
  137. package/dist/email-service.mjs +0 -147
  138. package/dist/email-service.mjs.map +0 -1
  139. package/dist/hash.js.map +0 -1
  140. package/dist/hash.mjs.map +0 -1
  141. package/dist/index.js.map +0 -1
  142. package/dist/index.mjs.map +0 -1
  143. package/dist/keystore-crypto.js.map +0 -1
  144. package/dist/keystore-crypto.mjs.map +0 -1
  145. package/dist/keystore-service.d.mts +0 -82
  146. package/dist/keystore-service.d.ts +0 -82
  147. package/dist/keystore-service.js +0 -349
  148. package/dist/keystore-service.js.map +0 -1
  149. package/dist/keystore-service.mjs +0 -342
  150. package/dist/keystore-service.mjs.map +0 -1
  151. package/dist/post-quantum-crypto.js.map +0 -1
  152. package/dist/post-quantum-crypto.mjs.map +0 -1
  153. package/dist/symmetric-crypto.js.map +0 -1
  154. package/dist/symmetric-crypto.mjs.map +0 -1
  155. package/dist/utils-BDaK_d6T.d.ts +0 -114
  156. package/dist/utils-v34IRTIx.d.mts +0 -114
  157. package/dist/utils.js.map +0 -1
  158. package/dist/utils.mjs.map +0 -1
@@ -1,85 +1,3 @@
1
- // src/constants.ts
2
- var AES_KEY_BIT_LENGTH = 256;
3
- var ECC_ALGORITHM = "X25519";
1
+ import { a as importPublicKey, i as importPrivateKey, n as exportPublicKey, o as deriveSecretKey, r as generateEccKeys, t as exportPrivateKey } from "./keys-BfcaiAOv.mjs";
4
2
 
5
- // src/asymmetric-crypto/ellipticCurve.ts
6
- async function deriveSecretKey(otherUserPublicKey, ownPrivateKey) {
7
- try {
8
- const result = await crypto.subtle.deriveBits(
9
- {
10
- name: ECC_ALGORITHM,
11
- public: otherUserPublicKey
12
- },
13
- ownPrivateKey,
14
- AES_KEY_BIT_LENGTH
15
- );
16
- return new Uint8Array(result);
17
- } catch (error) {
18
- throw new Error("Failed to derive elliptic curve secret key", { cause: error });
19
- }
20
- }
21
-
22
- // src/asymmetric-crypto/keys.ts
23
- async function generateEccKeys() {
24
- try {
25
- return await crypto.subtle.generateKey(
26
- {
27
- name: ECC_ALGORITHM
28
- },
29
- true,
30
- ["deriveBits"]
31
- );
32
- } catch (error) {
33
- throw new Error("Failed to generate elliptic curve key pair", { cause: error });
34
- }
35
- }
36
- async function exportPublicKey(key) {
37
- try {
38
- const result = await crypto.subtle.exportKey("spki", key);
39
- return new Uint8Array(result);
40
- } catch (error) {
41
- throw new Error("Failed to export public key", { cause: error });
42
- }
43
- }
44
- async function importPublicKey(spkiKeyData) {
45
- try {
46
- return await crypto.subtle.importKey(
47
- "spki",
48
- spkiKeyData,
49
- {
50
- name: ECC_ALGORITHM
51
- },
52
- true,
53
- []
54
- );
55
- } catch (error) {
56
- throw new Error("Failed to import public key", { cause: error });
57
- }
58
- }
59
- async function exportPrivateKey(key) {
60
- try {
61
- const result = await crypto.subtle.exportKey("pkcs8", key);
62
- return new Uint8Array(result);
63
- } catch (error) {
64
- throw new Error("Failed to export private key", { cause: error });
65
- }
66
- }
67
- async function importPrivateKey(pkcs8KeyData) {
68
- try {
69
- return await crypto.subtle.importKey(
70
- "pkcs8",
71
- pkcs8KeyData,
72
- {
73
- name: ECC_ALGORITHM
74
- },
75
- true,
76
- ["deriveBits"]
77
- );
78
- } catch (error) {
79
- throw new Error("Failed to import private key", { cause: error });
80
- }
81
- }
82
-
83
- export { deriveSecretKey, exportPrivateKey, exportPublicKey, generateEccKeys, importPrivateKey, importPublicKey };
84
- //# sourceMappingURL=asymmetric-crypto.mjs.map
85
- //# sourceMappingURL=asymmetric-crypto.mjs.map
3
+ export { deriveSecretKey, exportPrivateKey, exportPublicKey, generateEccKeys, importPrivateKey, importPublicKey };
@@ -0,0 +1,18 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) {
6
+ __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ }
11
+ if (!no_symbols) {
12
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ }
14
+ return target;
15
+ };
16
+
17
+ //#endregion
18
+ export { __exportAll as t };
@@ -0,0 +1,60 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
9
+ var __exportAll = (all, no_symbols) => {
10
+ let target = {};
11
+ for (var name in all) {
12
+ __defProp(target, name, {
13
+ get: all[name],
14
+ enumerable: true
15
+ });
16
+ }
17
+ if (!no_symbols) {
18
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
19
+ }
20
+ return target;
21
+ };
22
+ var __copyProps = (to, from, except, desc) => {
23
+ if (from && typeof from === "object" || typeof from === "function") {
24
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
25
+ key = keys[i];
26
+ if (!__hasOwnProp.call(to, key) && key !== except) {
27
+ __defProp(to, key, {
28
+ get: ((k) => from[k]).bind(null, key),
29
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
30
+ });
31
+ }
32
+ }
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
37
+ value: mod,
38
+ enumerable: true
39
+ }) : target, mod));
40
+
41
+ //#endregion
42
+
43
+ Object.defineProperty(exports, '__commonJSMin', {
44
+ enumerable: true,
45
+ get: function () {
46
+ return __commonJSMin;
47
+ }
48
+ });
49
+ Object.defineProperty(exports, '__exportAll', {
50
+ enumerable: true,
51
+ get: function () {
52
+ return __exportAll;
53
+ }
54
+ });
55
+ Object.defineProperty(exports, '__toESM', {
56
+ enumerable: true,
57
+ get: function () {
58
+ return __toESM;
59
+ }
60
+ });
@@ -1,28 +1,21 @@
1
+ //#region src/constants.d.ts
1
2
  declare const AES_ALGORITHM = "AES-GCM";
2
3
  declare const AES_KEY_BIT_LENGTH = 256;
3
- declare const AUX_LEN = 128;
4
+ declare const AUX_BYTE_LEN = 16;
4
5
  declare const IV_LEN_BYTES = 16;
5
6
  declare const KEY_WRAPPING_ALGORITHM = "AES-KW";
6
7
  declare const KEY_FORMAT = "raw";
7
8
  declare const CONTEXT_WRAPPING = "CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets";
8
9
  declare const ECC_ALGORITHM = "X25519";
9
- declare const CONTEXT_LOGIN = "CRYPTO library 2025-07-26 16:18:03 key for opening identity keystore";
10
10
  declare const CONTEXT_ENC_KEYSTORE = "CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore";
11
11
  declare const CONTEXT_RECOVERY = "CRYPTO library 2025-07-30 16:20:00 key for account recovery";
12
12
  declare const CONTEXT_INDEX = "CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices";
13
13
  declare const CONTEXT_DERIVE = "CRYPTO library 2025-08-27 17:08:00 derive one key from two keys";
14
- declare const PREFIX_MEDIA_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:29:00 prefix for commitment to media keys";
15
- declare const PREFIX_PUBLIC_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:30:00 prefix for commitment to public keys";
16
- declare const PREFIX_IDENTITY_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:45:00 prefix for commitment to identity keys";
17
14
  declare const ARGON2ID_PARALLELISM = 3;
18
15
  declare const ARGON2ID_ITERATIONS = 4;
19
16
  declare const ARGON2ID_MEMORY_SIZE = 65536;
20
17
  declare const ARGON2ID_SALT_BYTE_LENGTH = 16;
21
18
  declare const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
22
- declare const IDENTITY_KEYSTORE_TAG = "Identity keystore";
23
- declare const ENCRYPTION_KEYSTORE_TAG = "Encryption keystore";
24
- declare const RECOVERY_KEYSTORE_TAG = "Key recovery keystroe";
25
- declare const INDEX_KEYSTORE_TAG = "Current encrypted indices";
26
19
  declare const KYBER512_PUBLIC_KEY_LENGTH = 800;
27
20
  declare const KYBER512_SECRET_KEY_LENGTH = 1632;
28
21
  declare const KYBER768_PUBLIC_KEY_LENGTH = 1184;
@@ -35,5 +28,6 @@ declare const MAX_CACHE_SIZE = 600000000;
35
28
  declare const MAX_EMAIL_PER_BATCH = 100;
36
29
  declare const DB_LABEL = "email";
37
30
  declare const DB_VERSION = 1;
38
-
39
- export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_LOGIN, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, ENCRYPTION_KEYSTORE_TAG, HASH_BIT_LEN, IDENTITY_KEYSTORE_TAG, INDEX_KEYSTORE_TAG, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, KYBER1024_PUBLIC_KEY_LENGTH, KYBER1024_SECRET_KEY_LENGTH, KYBER512_PUBLIC_KEY_LENGTH, KYBER512_SECRET_KEY_LENGTH, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH, PREFIX_IDENTITY_KEY_COMMITMENT, PREFIX_MEDIA_KEY_COMMITMENT, PREFIX_PUBLIC_KEY_COMMITMENT, RECOVERY_KEYSTORE_TAG };
31
+ //#endregion
32
+ export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_BYTE_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, HASH_BIT_LEN, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, KYBER1024_PUBLIC_KEY_LENGTH, KYBER1024_SECRET_KEY_LENGTH, KYBER512_PUBLIC_KEY_LENGTH, KYBER512_SECRET_KEY_LENGTH, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH };
33
+ //# sourceMappingURL=constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.mts","names":[],"sources":["../src/constants.ts"],"mappings":";cAAa,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,YAAA;AAAA,cACA,YAAA;AAAA,cAEA,sBAAA;AAAA,cACA,UAAA;AAAA,cACA,gBAAA;AAAA,cAEA,aAAA;AAAA,cAEA,oBAAA;AAAA,cACA,gBAAA;AAAA,cACA,aAAA;AAAA,cACA,cAAA;AAAA,cAGA,oBAAA;AAAA,cACA,mBAAA;AAAA,cACA,oBAAA;AAAA,cACA,yBAAA;AAAA,cACA,2BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cAEA,2BAAA;AAAA,cACA,2BAAA;AAAA,cAEA,iBAAA;AAAA,cAEA,YAAA;AAAA,cAEA,cAAA;AAAA,cACA,mBAAA;AAAA,cACA,QAAA;AAAA,cACA,UAAA"}
@@ -1,28 +1,21 @@
1
+ //#region src/constants.d.ts
1
2
  declare const AES_ALGORITHM = "AES-GCM";
2
3
  declare const AES_KEY_BIT_LENGTH = 256;
3
- declare const AUX_LEN = 128;
4
+ declare const AUX_BYTE_LEN = 16;
4
5
  declare const IV_LEN_BYTES = 16;
5
6
  declare const KEY_WRAPPING_ALGORITHM = "AES-KW";
6
7
  declare const KEY_FORMAT = "raw";
7
8
  declare const CONTEXT_WRAPPING = "CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets";
8
9
  declare const ECC_ALGORITHM = "X25519";
9
- declare const CONTEXT_LOGIN = "CRYPTO library 2025-07-26 16:18:03 key for opening identity keystore";
10
10
  declare const CONTEXT_ENC_KEYSTORE = "CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore";
11
11
  declare const CONTEXT_RECOVERY = "CRYPTO library 2025-07-30 16:20:00 key for account recovery";
12
12
  declare const CONTEXT_INDEX = "CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices";
13
13
  declare const CONTEXT_DERIVE = "CRYPTO library 2025-08-27 17:08:00 derive one key from two keys";
14
- declare const PREFIX_MEDIA_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:29:00 prefix for commitment to media keys";
15
- declare const PREFIX_PUBLIC_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:30:00 prefix for commitment to public keys";
16
- declare const PREFIX_IDENTITY_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:45:00 prefix for commitment to identity keys";
17
14
  declare const ARGON2ID_PARALLELISM = 3;
18
15
  declare const ARGON2ID_ITERATIONS = 4;
19
16
  declare const ARGON2ID_MEMORY_SIZE = 65536;
20
17
  declare const ARGON2ID_SALT_BYTE_LENGTH = 16;
21
18
  declare const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
22
- declare const IDENTITY_KEYSTORE_TAG = "Identity keystore";
23
- declare const ENCRYPTION_KEYSTORE_TAG = "Encryption keystore";
24
- declare const RECOVERY_KEYSTORE_TAG = "Key recovery keystroe";
25
- declare const INDEX_KEYSTORE_TAG = "Current encrypted indices";
26
19
  declare const KYBER512_PUBLIC_KEY_LENGTH = 800;
27
20
  declare const KYBER512_SECRET_KEY_LENGTH = 1632;
28
21
  declare const KYBER768_PUBLIC_KEY_LENGTH = 1184;
@@ -35,5 +28,6 @@ declare const MAX_CACHE_SIZE = 600000000;
35
28
  declare const MAX_EMAIL_PER_BATCH = 100;
36
29
  declare const DB_LABEL = "email";
37
30
  declare const DB_VERSION = 1;
38
-
39
- export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_LOGIN, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, ENCRYPTION_KEYSTORE_TAG, HASH_BIT_LEN, IDENTITY_KEYSTORE_TAG, INDEX_KEYSTORE_TAG, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, KYBER1024_PUBLIC_KEY_LENGTH, KYBER1024_SECRET_KEY_LENGTH, KYBER512_PUBLIC_KEY_LENGTH, KYBER512_SECRET_KEY_LENGTH, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH, PREFIX_IDENTITY_KEY_COMMITMENT, PREFIX_MEDIA_KEY_COMMITMENT, PREFIX_PUBLIC_KEY_COMMITMENT, RECOVERY_KEYSTORE_TAG };
31
+ //#endregion
32
+ export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_BYTE_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, HASH_BIT_LEN, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, KYBER1024_PUBLIC_KEY_LENGTH, KYBER1024_SECRET_KEY_LENGTH, KYBER512_PUBLIC_KEY_LENGTH, KYBER512_SECRET_KEY_LENGTH, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH };
33
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","names":[],"sources":["../src/constants.ts"],"mappings":";cAAa,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,YAAA;AAAA,cACA,YAAA;AAAA,cAEA,sBAAA;AAAA,cACA,UAAA;AAAA,cACA,gBAAA;AAAA,cAEA,aAAA;AAAA,cAEA,oBAAA;AAAA,cACA,gBAAA;AAAA,cACA,aAAA;AAAA,cACA,cAAA;AAAA,cAGA,oBAAA;AAAA,cACA,mBAAA;AAAA,cACA,oBAAA;AAAA,cACA,yBAAA;AAAA,cACA,2BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cAEA,2BAAA;AAAA,cACA,2BAAA;AAAA,cAEA,iBAAA;AAAA,cAEA,YAAA;AAAA,cAEA,cAAA;AAAA,cACA,mBAAA;AAAA,cACA,QAAA;AAAA,cACA,UAAA"}
package/dist/constants.js CHANGED
@@ -1,44 +1,37 @@
1
- 'use strict';
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
- // src/constants.ts
4
- var AES_ALGORITHM = "AES-GCM";
5
- var AES_KEY_BIT_LENGTH = 256;
6
- var AUX_LEN = 128;
7
- var IV_LEN_BYTES = 16;
8
- var KEY_WRAPPING_ALGORITHM = "AES-KW";
9
- var KEY_FORMAT = "raw";
10
- var CONTEXT_WRAPPING = "CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets";
11
- var ECC_ALGORITHM = "X25519";
12
- var CONTEXT_LOGIN = "CRYPTO library 2025-07-26 16:18:03 key for opening identity keystore";
13
- var CONTEXT_ENC_KEYSTORE = "CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore";
14
- var CONTEXT_RECOVERY = "CRYPTO library 2025-07-30 16:20:00 key for account recovery";
15
- var CONTEXT_INDEX = "CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices";
16
- var CONTEXT_DERIVE = "CRYPTO library 2025-08-27 17:08:00 derive one key from two keys";
17
- var PREFIX_MEDIA_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:29:00 prefix for commitment to media keys";
18
- var PREFIX_PUBLIC_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:30:00 prefix for commitment to public keys";
19
- var PREFIX_IDENTITY_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:45:00 prefix for commitment to identity keys";
20
- var ARGON2ID_PARALLELISM = 3;
21
- var ARGON2ID_ITERATIONS = 4;
22
- var ARGON2ID_MEMORY_SIZE = 65536;
23
- var ARGON2ID_SALT_BYTE_LENGTH = 16;
24
- var ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
25
- var IDENTITY_KEYSTORE_TAG = "Identity keystore";
26
- var ENCRYPTION_KEYSTORE_TAG = "Encryption keystore";
27
- var RECOVERY_KEYSTORE_TAG = "Key recovery keystroe";
28
- var INDEX_KEYSTORE_TAG = "Current encrypted indices";
29
- var KYBER512_PUBLIC_KEY_LENGTH = 800;
30
- var KYBER512_SECRET_KEY_LENGTH = 1632;
31
- var KYBER768_PUBLIC_KEY_LENGTH = 1184;
32
- var KYBER768_SECRET_KEY_LENGTH = 2400;
33
- var KYBER1024_PUBLIC_KEY_LENGTH = 1568;
34
- var KYBER1024_SECRET_KEY_LENGTH = 3168;
35
- var KYBER_SEED_LENGTH = 64;
36
- var HASH_BIT_LEN = 256;
37
- var MAX_CACHE_SIZE = 6e8;
38
- var MAX_EMAIL_PER_BATCH = 100;
39
- var DB_LABEL = "email";
40
- var DB_VERSION = 1;
3
+ //#region src/constants.ts
4
+ const AES_ALGORITHM = "AES-GCM";
5
+ const AES_KEY_BIT_LENGTH = 256;
6
+ const AUX_BYTE_LEN = 16;
7
+ const IV_LEN_BYTES = 16;
8
+ const KEY_WRAPPING_ALGORITHM = "AES-KW";
9
+ const KEY_FORMAT = "raw";
10
+ const CONTEXT_WRAPPING = "CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets";
11
+ const ECC_ALGORITHM = "X25519";
12
+ const CONTEXT_ENC_KEYSTORE = "CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore";
13
+ const CONTEXT_RECOVERY = "CRYPTO library 2025-07-30 16:20:00 key for account recovery";
14
+ const CONTEXT_INDEX = "CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices";
15
+ const CONTEXT_DERIVE = "CRYPTO library 2025-08-27 17:08:00 derive one key from two keys";
16
+ const ARGON2ID_PARALLELISM = 3;
17
+ const ARGON2ID_ITERATIONS = 4;
18
+ const ARGON2ID_MEMORY_SIZE = 65536;
19
+ const ARGON2ID_SALT_BYTE_LENGTH = 16;
20
+ const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
21
+ const KYBER512_PUBLIC_KEY_LENGTH = 800;
22
+ const KYBER512_SECRET_KEY_LENGTH = 1632;
23
+ const KYBER768_PUBLIC_KEY_LENGTH = 1184;
24
+ const KYBER768_SECRET_KEY_LENGTH = 2400;
25
+ const KYBER1024_PUBLIC_KEY_LENGTH = 1568;
26
+ const KYBER1024_SECRET_KEY_LENGTH = 3168;
27
+ const KYBER_SEED_LENGTH = 64;
28
+ const HASH_BIT_LEN = 256;
29
+ const MAX_CACHE_SIZE = 6e8;
30
+ const MAX_EMAIL_PER_BATCH = 100;
31
+ const DB_LABEL = "email";
32
+ const DB_VERSION = 1;
41
33
 
34
+ //#endregion
42
35
  exports.AES_ALGORITHM = AES_ALGORITHM;
43
36
  exports.AES_KEY_BIT_LENGTH = AES_KEY_BIT_LENGTH;
44
37
  exports.ARGON2ID_ITERATIONS = ARGON2ID_ITERATIONS;
@@ -46,20 +39,16 @@ exports.ARGON2ID_MEMORY_SIZE = ARGON2ID_MEMORY_SIZE;
46
39
  exports.ARGON2ID_OUTPUT_BYTE_LENGTH = ARGON2ID_OUTPUT_BYTE_LENGTH;
47
40
  exports.ARGON2ID_PARALLELISM = ARGON2ID_PARALLELISM;
48
41
  exports.ARGON2ID_SALT_BYTE_LENGTH = ARGON2ID_SALT_BYTE_LENGTH;
49
- exports.AUX_LEN = AUX_LEN;
42
+ exports.AUX_BYTE_LEN = AUX_BYTE_LEN;
50
43
  exports.CONTEXT_DERIVE = CONTEXT_DERIVE;
51
44
  exports.CONTEXT_ENC_KEYSTORE = CONTEXT_ENC_KEYSTORE;
52
45
  exports.CONTEXT_INDEX = CONTEXT_INDEX;
53
- exports.CONTEXT_LOGIN = CONTEXT_LOGIN;
54
46
  exports.CONTEXT_RECOVERY = CONTEXT_RECOVERY;
55
47
  exports.CONTEXT_WRAPPING = CONTEXT_WRAPPING;
56
48
  exports.DB_LABEL = DB_LABEL;
57
49
  exports.DB_VERSION = DB_VERSION;
58
50
  exports.ECC_ALGORITHM = ECC_ALGORITHM;
59
- exports.ENCRYPTION_KEYSTORE_TAG = ENCRYPTION_KEYSTORE_TAG;
60
51
  exports.HASH_BIT_LEN = HASH_BIT_LEN;
61
- exports.IDENTITY_KEYSTORE_TAG = IDENTITY_KEYSTORE_TAG;
62
- exports.INDEX_KEYSTORE_TAG = INDEX_KEYSTORE_TAG;
63
52
  exports.IV_LEN_BYTES = IV_LEN_BYTES;
64
53
  exports.KEY_FORMAT = KEY_FORMAT;
65
54
  exports.KEY_WRAPPING_ALGORITHM = KEY_WRAPPING_ALGORITHM;
@@ -72,9 +61,4 @@ exports.KYBER768_SECRET_KEY_LENGTH = KYBER768_SECRET_KEY_LENGTH;
72
61
  exports.KYBER_SEED_LENGTH = KYBER_SEED_LENGTH;
73
62
  exports.MAX_CACHE_SIZE = MAX_CACHE_SIZE;
74
63
  exports.MAX_EMAIL_PER_BATCH = MAX_EMAIL_PER_BATCH;
75
- exports.PREFIX_IDENTITY_KEY_COMMITMENT = PREFIX_IDENTITY_KEY_COMMITMENT;
76
- exports.PREFIX_MEDIA_KEY_COMMITMENT = PREFIX_MEDIA_KEY_COMMITMENT;
77
- exports.PREFIX_PUBLIC_KEY_COMMITMENT = PREFIX_PUBLIC_KEY_COMMITMENT;
78
- exports.RECOVERY_KEYSTORE_TAG = RECOVERY_KEYSTORE_TAG;
79
- //# sourceMappingURL=constants.js.map
80
64
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAO,IAAM,aAAA,GAAgB;AACtB,IAAM,kBAAA,GAAqB;AAC3B,IAAM,OAAA,GAAU;AAChB,IAAM,YAAA,GAAe;AAErB,IAAM,sBAAA,GAAyB;AAC/B,IAAM,UAAA,GAAa;AACnB,IAAM,gBAAA,GAAmB;AAEzB,IAAM,aAAA,GAAgB;AAEtB,IAAM,aAAA,GAAgB;AACtB,IAAM,oBAAA,GAAuB;AAC7B,IAAM,gBAAA,GAAmB;AACzB,IAAM,aAAA,GAAgB;AACtB,IAAM,cAAA,GAAiB;AAEvB,IAAM,2BAAA,GAA8B;AACpC,IAAM,4BAAA,GAA+B;AACrC,IAAM,8BAAA,GACX;AAGK,IAAM,oBAAA,GAAuB;AAC7B,IAAM,mBAAA,GAAsB;AAC5B,IAAM,oBAAA,GAAuB;AAC7B,IAAM,yBAAA,GAA4B;AAClC,IAAM,2BAAA,GAA8B;AAEpC,IAAM,qBAAA,GAAwB;AAC9B,IAAM,uBAAA,GAA0B;AAChC,IAAM,qBAAA,GAAwB;AAC9B,IAAM,kBAAA,GAAqB;AAE3B,IAAM,0BAAA,GAA6B;AACnC,IAAM,0BAAA,GAA6B;AAEnC,IAAM,0BAAA,GAA6B;AACnC,IAAM,0BAAA,GAA6B;AAEnC,IAAM,2BAAA,GAA8B;AACpC,IAAM,2BAAA,GAA8B;AAEpC,IAAM,iBAAA,GAAoB;AAE1B,IAAM,YAAA,GAAe;AAErB,IAAM,cAAA,GAAiB;AACvB,IAAM,mBAAA,GAAsB;AAC5B,IAAM,QAAA,GAAW;AACjB,IAAM,UAAA,GAAa","file":"constants.js","sourcesContent":["export const AES_ALGORITHM = 'AES-GCM';\nexport const AES_KEY_BIT_LENGTH = 256;\nexport const AUX_LEN = 128;\nexport const IV_LEN_BYTES = 16;\n\nexport const KEY_WRAPPING_ALGORITHM = 'AES-KW';\nexport const KEY_FORMAT = 'raw';\nexport const CONTEXT_WRAPPING = 'CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets';\n\nexport const ECC_ALGORITHM = 'X25519';\n\nexport const CONTEXT_LOGIN = 'CRYPTO library 2025-07-26 16:18:03 key for opening identity keystore';\nexport const CONTEXT_ENC_KEYSTORE = 'CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore';\nexport const CONTEXT_RECOVERY = 'CRYPTO library 2025-07-30 16:20:00 key for account recovery';\nexport const CONTEXT_INDEX = 'CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices';\nexport const CONTEXT_DERIVE = 'CRYPTO library 2025-08-27 17:08:00 derive one key from two keys';\n\nexport const PREFIX_MEDIA_KEY_COMMITMENT = 'CRYPTO library 2025-08-26 18:29:00 prefix for commitment to media keys';\nexport const PREFIX_PUBLIC_KEY_COMMITMENT = 'CRYPTO library 2025-08-26 18:30:00 prefix for commitment to public keys';\nexport const PREFIX_IDENTITY_KEY_COMMITMENT =\n 'CRYPTO library 2025-08-26 18:45:00 prefix for commitment to identity keys';\n\n// Second recommended parameter set from RFC 9106\nexport const ARGON2ID_PARALLELISM = 3;\nexport const ARGON2ID_ITERATIONS = 4;\nexport const ARGON2ID_MEMORY_SIZE = 65536;\nexport const ARGON2ID_SALT_BYTE_LENGTH = 16;\nexport const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;\n\nexport const IDENTITY_KEYSTORE_TAG = 'Identity keystore';\nexport const ENCRYPTION_KEYSTORE_TAG = 'Encryption keystore';\nexport const RECOVERY_KEYSTORE_TAG = 'Key recovery keystroe';\nexport const INDEX_KEYSTORE_TAG = 'Current encrypted indices';\n\nexport const KYBER512_PUBLIC_KEY_LENGTH = 800;\nexport const KYBER512_SECRET_KEY_LENGTH = 1632;\n\nexport const KYBER768_PUBLIC_KEY_LENGTH = 1184;\nexport const KYBER768_SECRET_KEY_LENGTH = 2400;\n\nexport const KYBER1024_PUBLIC_KEY_LENGTH = 1568;\nexport const KYBER1024_SECRET_KEY_LENGTH = 3168;\n\nexport const KYBER_SEED_LENGTH = 64;\n\nexport const HASH_BIT_LEN = 256;\n\nexport const MAX_CACHE_SIZE = 600000000; // 600 MB\nexport const MAX_EMAIL_PER_BATCH = 100;\nexport const DB_LABEL = 'email';\nexport const DB_VERSION = 1;\n"]}
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const AES_ALGORITHM = 'AES-GCM';\nexport const AES_KEY_BIT_LENGTH = 256;\nexport const AUX_BYTE_LEN = 16;\nexport const IV_LEN_BYTES = 16;\n\nexport const KEY_WRAPPING_ALGORITHM = 'AES-KW';\nexport const KEY_FORMAT = 'raw';\nexport const CONTEXT_WRAPPING = 'CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets';\n\nexport const ECC_ALGORITHM = 'X25519';\n\nexport const CONTEXT_ENC_KEYSTORE = 'CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore';\nexport const CONTEXT_RECOVERY = 'CRYPTO library 2025-07-30 16:20:00 key for account recovery';\nexport const CONTEXT_INDEX = 'CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices';\nexport const CONTEXT_DERIVE = 'CRYPTO library 2025-08-27 17:08:00 derive one key from two keys';\n\n// Second recommended parameter set from RFC 9106\nexport const ARGON2ID_PARALLELISM = 3;\nexport const ARGON2ID_ITERATIONS = 4;\nexport const ARGON2ID_MEMORY_SIZE = 65536;\nexport const ARGON2ID_SALT_BYTE_LENGTH = 16;\nexport const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;\n\nexport const KYBER512_PUBLIC_KEY_LENGTH = 800;\nexport const KYBER512_SECRET_KEY_LENGTH = 1632;\n\nexport const KYBER768_PUBLIC_KEY_LENGTH = 1184;\nexport const KYBER768_SECRET_KEY_LENGTH = 2400;\n\nexport const KYBER1024_PUBLIC_KEY_LENGTH = 1568;\nexport const KYBER1024_SECRET_KEY_LENGTH = 3168;\n\nexport const KYBER_SEED_LENGTH = 64;\n\nexport const HASH_BIT_LEN = 256;\n\nexport const MAX_CACHE_SIZE = 600000000; // 600 MB\nexport const MAX_EMAIL_PER_BATCH = 100;\nexport const DB_LABEL = 'email';\nexport const DB_VERSION = 1;\n"],"mappings":";;;AAAA,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,eAAe;AAC5B,MAAa,eAAe;AAE5B,MAAa,yBAAyB;AACtC,MAAa,aAAa;AAC1B,MAAa,mBAAmB;AAEhC,MAAa,gBAAgB;AAE7B,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAChC,MAAa,gBAAgB;AAC7B,MAAa,iBAAiB;AAG9B,MAAa,uBAAuB;AACpC,MAAa,sBAAsB;AACnC,MAAa,uBAAuB;AACpC,MAAa,4BAA4B;AACzC,MAAa,8BAA8B;AAE3C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAE1C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAE1C,MAAa,8BAA8B;AAC3C,MAAa,8BAA8B;AAE3C,MAAa,oBAAoB;AAEjC,MAAa,eAAe;AAE5B,MAAa,iBAAiB;AAC9B,MAAa,sBAAsB;AACnC,MAAa,WAAW;AACxB,MAAa,aAAa"}
@@ -1,42 +1,34 @@
1
- // src/constants.ts
2
- var AES_ALGORITHM = "AES-GCM";
3
- var AES_KEY_BIT_LENGTH = 256;
4
- var AUX_LEN = 128;
5
- var IV_LEN_BYTES = 16;
6
- var KEY_WRAPPING_ALGORITHM = "AES-KW";
7
- var KEY_FORMAT = "raw";
8
- var CONTEXT_WRAPPING = "CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets";
9
- var ECC_ALGORITHM = "X25519";
10
- var CONTEXT_LOGIN = "CRYPTO library 2025-07-26 16:18:03 key for opening identity keystore";
11
- var CONTEXT_ENC_KEYSTORE = "CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore";
12
- var CONTEXT_RECOVERY = "CRYPTO library 2025-07-30 16:20:00 key for account recovery";
13
- var CONTEXT_INDEX = "CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices";
14
- var CONTEXT_DERIVE = "CRYPTO library 2025-08-27 17:08:00 derive one key from two keys";
15
- var PREFIX_MEDIA_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:29:00 prefix for commitment to media keys";
16
- var PREFIX_PUBLIC_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:30:00 prefix for commitment to public keys";
17
- var PREFIX_IDENTITY_KEY_COMMITMENT = "CRYPTO library 2025-08-26 18:45:00 prefix for commitment to identity keys";
18
- var ARGON2ID_PARALLELISM = 3;
19
- var ARGON2ID_ITERATIONS = 4;
20
- var ARGON2ID_MEMORY_SIZE = 65536;
21
- var ARGON2ID_SALT_BYTE_LENGTH = 16;
22
- var ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
23
- var IDENTITY_KEYSTORE_TAG = "Identity keystore";
24
- var ENCRYPTION_KEYSTORE_TAG = "Encryption keystore";
25
- var RECOVERY_KEYSTORE_TAG = "Key recovery keystroe";
26
- var INDEX_KEYSTORE_TAG = "Current encrypted indices";
27
- var KYBER512_PUBLIC_KEY_LENGTH = 800;
28
- var KYBER512_SECRET_KEY_LENGTH = 1632;
29
- var KYBER768_PUBLIC_KEY_LENGTH = 1184;
30
- var KYBER768_SECRET_KEY_LENGTH = 2400;
31
- var KYBER1024_PUBLIC_KEY_LENGTH = 1568;
32
- var KYBER1024_SECRET_KEY_LENGTH = 3168;
33
- var KYBER_SEED_LENGTH = 64;
34
- var HASH_BIT_LEN = 256;
35
- var MAX_CACHE_SIZE = 6e8;
36
- var MAX_EMAIL_PER_BATCH = 100;
37
- var DB_LABEL = "email";
38
- var DB_VERSION = 1;
1
+ //#region src/constants.ts
2
+ const AES_ALGORITHM = "AES-GCM";
3
+ const AES_KEY_BIT_LENGTH = 256;
4
+ const AUX_BYTE_LEN = 16;
5
+ const IV_LEN_BYTES = 16;
6
+ const KEY_WRAPPING_ALGORITHM = "AES-KW";
7
+ const KEY_FORMAT = "raw";
8
+ const CONTEXT_WRAPPING = "CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets";
9
+ const ECC_ALGORITHM = "X25519";
10
+ const CONTEXT_ENC_KEYSTORE = "CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore";
11
+ const CONTEXT_RECOVERY = "CRYPTO library 2025-07-30 16:20:00 key for account recovery";
12
+ const CONTEXT_INDEX = "CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices";
13
+ const CONTEXT_DERIVE = "CRYPTO library 2025-08-27 17:08:00 derive one key from two keys";
14
+ const ARGON2ID_PARALLELISM = 3;
15
+ const ARGON2ID_ITERATIONS = 4;
16
+ const ARGON2ID_MEMORY_SIZE = 65536;
17
+ const ARGON2ID_SALT_BYTE_LENGTH = 16;
18
+ const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
19
+ const KYBER512_PUBLIC_KEY_LENGTH = 800;
20
+ const KYBER512_SECRET_KEY_LENGTH = 1632;
21
+ const KYBER768_PUBLIC_KEY_LENGTH = 1184;
22
+ const KYBER768_SECRET_KEY_LENGTH = 2400;
23
+ const KYBER1024_PUBLIC_KEY_LENGTH = 1568;
24
+ const KYBER1024_SECRET_KEY_LENGTH = 3168;
25
+ const KYBER_SEED_LENGTH = 64;
26
+ const HASH_BIT_LEN = 256;
27
+ const MAX_CACHE_SIZE = 6e8;
28
+ const MAX_EMAIL_PER_BATCH = 100;
29
+ const DB_LABEL = "email";
30
+ const DB_VERSION = 1;
39
31
 
40
- export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_LOGIN, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, ENCRYPTION_KEYSTORE_TAG, HASH_BIT_LEN, IDENTITY_KEYSTORE_TAG, INDEX_KEYSTORE_TAG, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, KYBER1024_PUBLIC_KEY_LENGTH, KYBER1024_SECRET_KEY_LENGTH, KYBER512_PUBLIC_KEY_LENGTH, KYBER512_SECRET_KEY_LENGTH, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH, PREFIX_IDENTITY_KEY_COMMITMENT, PREFIX_MEDIA_KEY_COMMITMENT, PREFIX_PUBLIC_KEY_COMMITMENT, RECOVERY_KEYSTORE_TAG };
41
- //# sourceMappingURL=constants.mjs.map
32
+ //#endregion
33
+ export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_BYTE_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, HASH_BIT_LEN, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, KYBER1024_PUBLIC_KEY_LENGTH, KYBER1024_SECRET_KEY_LENGTH, KYBER512_PUBLIC_KEY_LENGTH, KYBER512_SECRET_KEY_LENGTH, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH };
42
34
  //# sourceMappingURL=constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts"],"names":[],"mappings":";AAAO,IAAM,aAAA,GAAgB;AACtB,IAAM,kBAAA,GAAqB;AAC3B,IAAM,OAAA,GAAU;AAChB,IAAM,YAAA,GAAe;AAErB,IAAM,sBAAA,GAAyB;AAC/B,IAAM,UAAA,GAAa;AACnB,IAAM,gBAAA,GAAmB;AAEzB,IAAM,aAAA,GAAgB;AAEtB,IAAM,aAAA,GAAgB;AACtB,IAAM,oBAAA,GAAuB;AAC7B,IAAM,gBAAA,GAAmB;AACzB,IAAM,aAAA,GAAgB;AACtB,IAAM,cAAA,GAAiB;AAEvB,IAAM,2BAAA,GAA8B;AACpC,IAAM,4BAAA,GAA+B;AACrC,IAAM,8BAAA,GACX;AAGK,IAAM,oBAAA,GAAuB;AAC7B,IAAM,mBAAA,GAAsB;AAC5B,IAAM,oBAAA,GAAuB;AAC7B,IAAM,yBAAA,GAA4B;AAClC,IAAM,2BAAA,GAA8B;AAEpC,IAAM,qBAAA,GAAwB;AAC9B,IAAM,uBAAA,GAA0B;AAChC,IAAM,qBAAA,GAAwB;AAC9B,IAAM,kBAAA,GAAqB;AAE3B,IAAM,0BAAA,GAA6B;AACnC,IAAM,0BAAA,GAA6B;AAEnC,IAAM,0BAAA,GAA6B;AACnC,IAAM,0BAAA,GAA6B;AAEnC,IAAM,2BAAA,GAA8B;AACpC,IAAM,2BAAA,GAA8B;AAEpC,IAAM,iBAAA,GAAoB;AAE1B,IAAM,YAAA,GAAe;AAErB,IAAM,cAAA,GAAiB;AACvB,IAAM,mBAAA,GAAsB;AAC5B,IAAM,QAAA,GAAW;AACjB,IAAM,UAAA,GAAa","file":"constants.mjs","sourcesContent":["export const AES_ALGORITHM = 'AES-GCM';\nexport const AES_KEY_BIT_LENGTH = 256;\nexport const AUX_LEN = 128;\nexport const IV_LEN_BYTES = 16;\n\nexport const KEY_WRAPPING_ALGORITHM = 'AES-KW';\nexport const KEY_FORMAT = 'raw';\nexport const CONTEXT_WRAPPING = 'CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets';\n\nexport const ECC_ALGORITHM = 'X25519';\n\nexport const CONTEXT_LOGIN = 'CRYPTO library 2025-07-26 16:18:03 key for opening identity keystore';\nexport const CONTEXT_ENC_KEYSTORE = 'CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore';\nexport const CONTEXT_RECOVERY = 'CRYPTO library 2025-07-30 16:20:00 key for account recovery';\nexport const CONTEXT_INDEX = 'CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices';\nexport const CONTEXT_DERIVE = 'CRYPTO library 2025-08-27 17:08:00 derive one key from two keys';\n\nexport const PREFIX_MEDIA_KEY_COMMITMENT = 'CRYPTO library 2025-08-26 18:29:00 prefix for commitment to media keys';\nexport const PREFIX_PUBLIC_KEY_COMMITMENT = 'CRYPTO library 2025-08-26 18:30:00 prefix for commitment to public keys';\nexport const PREFIX_IDENTITY_KEY_COMMITMENT =\n 'CRYPTO library 2025-08-26 18:45:00 prefix for commitment to identity keys';\n\n// Second recommended parameter set from RFC 9106\nexport const ARGON2ID_PARALLELISM = 3;\nexport const ARGON2ID_ITERATIONS = 4;\nexport const ARGON2ID_MEMORY_SIZE = 65536;\nexport const ARGON2ID_SALT_BYTE_LENGTH = 16;\nexport const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;\n\nexport const IDENTITY_KEYSTORE_TAG = 'Identity keystore';\nexport const ENCRYPTION_KEYSTORE_TAG = 'Encryption keystore';\nexport const RECOVERY_KEYSTORE_TAG = 'Key recovery keystroe';\nexport const INDEX_KEYSTORE_TAG = 'Current encrypted indices';\n\nexport const KYBER512_PUBLIC_KEY_LENGTH = 800;\nexport const KYBER512_SECRET_KEY_LENGTH = 1632;\n\nexport const KYBER768_PUBLIC_KEY_LENGTH = 1184;\nexport const KYBER768_SECRET_KEY_LENGTH = 2400;\n\nexport const KYBER1024_PUBLIC_KEY_LENGTH = 1568;\nexport const KYBER1024_SECRET_KEY_LENGTH = 3168;\n\nexport const KYBER_SEED_LENGTH = 64;\n\nexport const HASH_BIT_LEN = 256;\n\nexport const MAX_CACHE_SIZE = 600000000; // 600 MB\nexport const MAX_EMAIL_PER_BATCH = 100;\nexport const DB_LABEL = 'email';\nexport const DB_VERSION = 1;\n"]}
1
+ {"version":3,"file":"constants.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const AES_ALGORITHM = 'AES-GCM';\nexport const AES_KEY_BIT_LENGTH = 256;\nexport const AUX_BYTE_LEN = 16;\nexport const IV_LEN_BYTES = 16;\n\nexport const KEY_WRAPPING_ALGORITHM = 'AES-KW';\nexport const KEY_FORMAT = 'raw';\nexport const CONTEXT_WRAPPING = 'CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets';\n\nexport const ECC_ALGORITHM = 'X25519';\n\nexport const CONTEXT_ENC_KEYSTORE = 'CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore';\nexport const CONTEXT_RECOVERY = 'CRYPTO library 2025-07-30 16:20:00 key for account recovery';\nexport const CONTEXT_INDEX = 'CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices';\nexport const CONTEXT_DERIVE = 'CRYPTO library 2025-08-27 17:08:00 derive one key from two keys';\n\n// Second recommended parameter set from RFC 9106\nexport const ARGON2ID_PARALLELISM = 3;\nexport const ARGON2ID_ITERATIONS = 4;\nexport const ARGON2ID_MEMORY_SIZE = 65536;\nexport const ARGON2ID_SALT_BYTE_LENGTH = 16;\nexport const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;\n\nexport const KYBER512_PUBLIC_KEY_LENGTH = 800;\nexport const KYBER512_SECRET_KEY_LENGTH = 1632;\n\nexport const KYBER768_PUBLIC_KEY_LENGTH = 1184;\nexport const KYBER768_SECRET_KEY_LENGTH = 2400;\n\nexport const KYBER1024_PUBLIC_KEY_LENGTH = 1568;\nexport const KYBER1024_SECRET_KEY_LENGTH = 3168;\n\nexport const KYBER_SEED_LENGTH = 64;\n\nexport const HASH_BIT_LEN = 256;\n\nexport const MAX_CACHE_SIZE = 600000000; // 600 MB\nexport const MAX_EMAIL_PER_BATCH = 100;\nexport const DB_LABEL = 'email';\nexport const DB_VERSION = 1;\n"],"mappings":";AAAA,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,eAAe;AAC5B,MAAa,eAAe;AAE5B,MAAa,yBAAyB;AACtC,MAAa,aAAa;AAC1B,MAAa,mBAAmB;AAEhC,MAAa,gBAAgB;AAE7B,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAChC,MAAa,gBAAgB;AAC7B,MAAa,iBAAiB;AAG9B,MAAa,uBAAuB;AACpC,MAAa,sBAAsB;AACnC,MAAa,uBAAuB;AACpC,MAAa,4BAA4B;AACzC,MAAa,8BAA8B;AAE3C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAE1C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAE1C,MAAa,8BAA8B;AAC3C,MAAa,8BAA8B;AAE3C,MAAa,oBAAoB;AAEjC,MAAa,eAAe;AAE5B,MAAa,iBAAiB;AAC9B,MAAa,sBAAsB;AACnC,MAAa,WAAW;AACxB,MAAa,aAAa"}
@@ -1,3 +1,4 @@
1
+ //#region src/derive-key/deriveKeysFromKey.d.ts
1
2
  /**
2
3
  * Derives a symmetric key from the base key and context string
3
4
  *
@@ -40,8 +41,9 @@ declare function deriveSymmetricCryptoKeyFromTwoKeys(key1: Uint8Array, key2: Uin
40
41
  * @param context - The context string
41
42
  * @returns The derived symmetric key
42
43
  */
43
- declare function deriveKeyFromTwoKeysAndContext(key1: Uint8Array, key2: Uint8Array, context: string): Uint8Array;
44
-
44
+ declare function deriveSymmetricKeyFromTwoKeysAndContext(key1: Uint8Array, key2: Uint8Array, context: string): Uint8Array;
45
+ //#endregion
46
+ //#region src/derive-key/deriveKeysFromPassword.d.ts
45
47
  /**
46
48
  * Derives a symmetric key from a user's password with a randomly sampled salt
47
49
  *
@@ -49,8 +51,8 @@ declare function deriveKeyFromTwoKeysAndContext(key1: Uint8Array, key2: Uint8Arr
49
51
  * @returns The derived secret key and randomly sampled salt
50
52
  */
51
53
  declare function getKeyFromPassword(password: string): Promise<{
52
- key: Uint8Array;
53
- salt: Uint8Array;
54
+ key: Uint8Array;
55
+ salt: Uint8Array;
54
56
  }>;
55
57
  /**
56
58
  * Derives a symmetric key from a user's password and salt
@@ -67,8 +69,8 @@ declare function getKeyFromPasswordAndSalt(password: string, salt: Uint8Array):
67
69
  * @returns The derived HEX secret key and randomly sampled HEX salt
68
70
  */
69
71
  declare function getKeyFromPasswordHex(password: string): Promise<{
70
- keyHex: string;
71
- saltHex: string;
72
+ keyHex: string;
73
+ saltHex: string;
72
74
  }>;
73
75
  /**
74
76
  * Derives a HEX symmetric key from a user's password and salt
@@ -87,5 +89,6 @@ declare function getKeyFromPasswordAndSaltHex(password: string, saltHex: string)
87
89
  * @returns The result of the key verification
88
90
  */
89
91
  declare function verifyKeyFromPasswordHex(password: string, saltHex: string, keyHex: string): Promise<boolean>;
90
-
91
- export { deriveKeyFromTwoKeysAndContext, deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex, verifyKeyFromPasswordHex };
92
+ //#endregion
93
+ export { deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, deriveSymmetricKeyFromTwoKeysAndContext, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex, verifyKeyFromPasswordHex };
94
+ //# sourceMappingURL=derive-key.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive-key.d.mts","names":[],"sources":["../src/derive-key/deriveKeysFromKey.ts","../src/derive-key/deriveKeysFromPassword.ts"],"mappings":";;AAaA;;;;;;;iBAAgB,6BAAA,CAA8B,OAAA,UAAiB,OAAA,EAAS,UAAA,GAAa,UAAA;;;AAYrF;;;;;;iBAAsB,mCAAA,CAAoC,OAAA,UAAiB,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;;;;;iBAwBzF,6BAAA,CAA8B,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,GAAa,UAAA;AAAnF;;;;;;;AAAA,iBAWsB,mCAAA,CAAoC,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;;;;;AAAvG;iBAkBgB,uCAAA,CACd,IAAA,EAAM,UAAA,EACN,IAAA,EAAM,UAAA,EACN,OAAA,WACC,UAAA;;;;AArEH;;;;;iBCJsB,kBAAA,CAAmB,QAAA,WAAmB,OAAA;EAAU,GAAA,EAAK,UAAA;EAAY,IAAA,EAAM,UAAA;AAAA;;ADgB7F;;;;;;iBCIsB,yBAAA,CAA0B,QAAA,UAAkB,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,UAAA;;;;;;;iBAoBvE,qBAAA,CAAsB,QAAA,WAAmB,OAAA;EAAU,MAAA;EAAgB,OAAA;AAAA;;;;;;;;iBAgBnE,4BAAA,CAA6B,QAAA,UAAkB,OAAA,WAAkB,OAAA;;;;;;ADLvF;;;iBCuBsB,wBAAA,CAAyB,QAAA,UAAkB,OAAA,UAAiB,MAAA,WAAiB,OAAA"}
@@ -1,3 +1,4 @@
1
+ //#region src/derive-key/deriveKeysFromKey.d.ts
1
2
  /**
2
3
  * Derives a symmetric key from the base key and context string
3
4
  *
@@ -40,8 +41,9 @@ declare function deriveSymmetricCryptoKeyFromTwoKeys(key1: Uint8Array, key2: Uin
40
41
  * @param context - The context string
41
42
  * @returns The derived symmetric key
42
43
  */
43
- declare function deriveKeyFromTwoKeysAndContext(key1: Uint8Array, key2: Uint8Array, context: string): Uint8Array;
44
-
44
+ declare function deriveSymmetricKeyFromTwoKeysAndContext(key1: Uint8Array, key2: Uint8Array, context: string): Uint8Array;
45
+ //#endregion
46
+ //#region src/derive-key/deriveKeysFromPassword.d.ts
45
47
  /**
46
48
  * Derives a symmetric key from a user's password with a randomly sampled salt
47
49
  *
@@ -49,8 +51,8 @@ declare function deriveKeyFromTwoKeysAndContext(key1: Uint8Array, key2: Uint8Arr
49
51
  * @returns The derived secret key and randomly sampled salt
50
52
  */
51
53
  declare function getKeyFromPassword(password: string): Promise<{
52
- key: Uint8Array;
53
- salt: Uint8Array;
54
+ key: Uint8Array;
55
+ salt: Uint8Array;
54
56
  }>;
55
57
  /**
56
58
  * Derives a symmetric key from a user's password and salt
@@ -67,8 +69,8 @@ declare function getKeyFromPasswordAndSalt(password: string, salt: Uint8Array):
67
69
  * @returns The derived HEX secret key and randomly sampled HEX salt
68
70
  */
69
71
  declare function getKeyFromPasswordHex(password: string): Promise<{
70
- keyHex: string;
71
- saltHex: string;
72
+ keyHex: string;
73
+ saltHex: string;
72
74
  }>;
73
75
  /**
74
76
  * Derives a HEX symmetric key from a user's password and salt
@@ -87,5 +89,6 @@ declare function getKeyFromPasswordAndSaltHex(password: string, saltHex: string)
87
89
  * @returns The result of the key verification
88
90
  */
89
91
  declare function verifyKeyFromPasswordHex(password: string, saltHex: string, keyHex: string): Promise<boolean>;
90
-
91
- export { deriveKeyFromTwoKeysAndContext, deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex, verifyKeyFromPasswordHex };
92
+ //#endregion
93
+ export { deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, deriveSymmetricKeyFromTwoKeysAndContext, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex, verifyKeyFromPasswordHex };
94
+ //# sourceMappingURL=derive-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive-key.d.ts","names":[],"sources":["../src/derive-key/deriveKeysFromKey.ts","../src/derive-key/deriveKeysFromPassword.ts"],"mappings":";;AAaA;;;;;;;iBAAgB,6BAAA,CAA8B,OAAA,UAAiB,OAAA,EAAS,UAAA,GAAa,UAAA;;;AAYrF;;;;;;iBAAsB,mCAAA,CAAoC,OAAA,UAAiB,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;;;;;iBAwBzF,6BAAA,CAA8B,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,GAAa,UAAA;AAAnF;;;;;;;AAAA,iBAWsB,mCAAA,CAAoC,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;;;;;AAAvG;iBAkBgB,uCAAA,CACd,IAAA,EAAM,UAAA,EACN,IAAA,EAAM,UAAA,EACN,OAAA,WACC,UAAA;;;;AArEH;;;;;iBCJsB,kBAAA,CAAmB,QAAA,WAAmB,OAAA;EAAU,GAAA,EAAK,UAAA;EAAY,IAAA,EAAM,UAAA;AAAA;;ADgB7F;;;;;;iBCIsB,yBAAA,CAA0B,QAAA,UAAkB,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,UAAA;;;;;;;iBAoBvE,qBAAA,CAAsB,QAAA,WAAmB,OAAA;EAAU,MAAA;EAAgB,OAAA;AAAA;;;;;;;;iBAgBnE,4BAAA,CAA6B,QAAA,UAAkB,OAAA,WAAkB,OAAA;;;;;;ADLvF;;;iBCuBsB,wBAAA,CAAyB,QAAA,UAAkB,OAAA,UAAiB,MAAA,WAAiB,OAAA"}