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
package/dist/utils.js CHANGED
@@ -1,313 +1,17 @@
1
- 'use strict';
2
-
3
- var utils_js = require('@noble/hashes/utils.js');
4
- var bip39 = require('@scure/bip39');
5
- var english = require('@scure/bip39/wordlists/english');
6
-
7
- function _interopNamespace(e) {
8
- if (e && e.__esModule) return e;
9
- var n = Object.create(null);
10
- if (e) {
11
- Object.keys(e).forEach(function (k) {
12
- if (k !== 'default') {
13
- var d = Object.getOwnPropertyDescriptor(e, k);
14
- Object.defineProperty(n, k, d.get ? d : {
15
- enumerable: true,
16
- get: function () { return e[k]; }
17
- });
18
- }
19
- });
20
- }
21
- n.default = e;
22
- return Object.freeze(n);
23
- }
24
-
25
- var bip39__namespace = /*#__PURE__*/_interopNamespace(bip39);
26
-
27
- // src/utils/converters.ts
28
- function uint8ArrayToHex(array) {
29
- return utils_js.bytesToHex(array);
30
- }
31
- function UTF8ToUint8(str) {
32
- return new TextEncoder().encode(str);
33
- }
34
- function uint8ToUTF8(array) {
35
- return new TextDecoder().decode(array);
36
- }
37
- function hexToUint8Array(hex) {
38
- return utils_js.hexToBytes(hex);
39
- }
40
- function uint8ArrayToBase64(buffer) {
41
- const array = Uint16Array.from(buffer);
42
- const binaryString = new TextDecoder("UTF-16").decode(array);
43
- return btoa(binaryString);
44
- }
45
- function base64ToUint8Array(str) {
46
- const binaryString = atob(str);
47
- const len = binaryString.length;
48
- const array = new Uint8Array(len);
49
- for (let i = 0; i < len; i++) {
50
- array[i] = binaryString.charCodeAt(i);
51
- }
52
- return new Uint8Array(array.buffer);
53
- }
54
-
55
- // src/constants.ts
56
- var ECC_ALGORITHM = "X25519";
57
-
58
- // src/asymmetric-crypto/keys.ts
59
- async function exportPublicKey(key) {
60
- try {
61
- const result = await crypto.subtle.exportKey("spki", key);
62
- return new Uint8Array(result);
63
- } catch (error) {
64
- throw new Error("Failed to export public key", { cause: error });
65
- }
66
- }
67
- async function importPublicKey(spkiKeyData) {
68
- try {
69
- return await crypto.subtle.importKey(
70
- "spki",
71
- spkiKeyData,
72
- {
73
- name: ECC_ALGORITHM
74
- },
75
- true,
76
- []
77
- );
78
- } catch (error) {
79
- throw new Error("Failed to import public key", { cause: error });
80
- }
81
- }
82
- async function exportPrivateKey(key) {
83
- try {
84
- const result = await crypto.subtle.exportKey("pkcs8", key);
85
- return new Uint8Array(result);
86
- } catch (error) {
87
- throw new Error("Failed to export private key", { cause: error });
88
- }
89
- }
90
- async function importPrivateKey(pkcs8KeyData) {
91
- try {
92
- return await crypto.subtle.importKey(
93
- "pkcs8",
94
- pkcs8KeyData,
95
- {
96
- name: ECC_ALGORITHM
97
- },
98
- true,
99
- ["deriveBits"]
100
- );
101
- } catch (error) {
102
- throw new Error("Failed to import private key", { cause: error });
103
- }
104
- }
105
-
106
- // src/utils/aesConverters.ts
107
- function ciphertextToBase64(encryptedMessage) {
108
- try {
109
- const ivBase64 = uint8ArrayToBase64(encryptedMessage.iv);
110
- const ciphertextBase64 = uint8ArrayToBase64(encryptedMessage.ciphertext);
111
- const json = JSON.stringify({ ciphertext: ciphertextBase64, iv: ivBase64 });
112
- const base64 = btoa(json);
113
- return base64;
114
- } catch (error) {
115
- throw new Error("Failed to convert ciphertext to base64", { cause: error });
116
- }
117
- }
118
- function base64ToCiphertext(base64) {
119
- try {
120
- const json = atob(base64);
121
- const obj = JSON.parse(json);
122
- const iv = base64ToUint8Array(obj.iv);
123
- const ciphertext = base64ToUint8Array(obj.ciphertext);
124
- const result = {
125
- ciphertext,
126
- iv
127
- };
128
- return result;
129
- } catch (error) {
130
- throw new Error("Failed to convert base64 to ciphertext", { cause: error });
131
- }
132
- }
133
-
134
- // src/utils/keyConverters.ts
135
- async function identityKeysToBase64(keys) {
136
- try {
137
- const pkArray = await exportPublicKey(keys.userPublicKey);
138
- const skArray = await exportPrivateKey(keys.userPrivateKey);
139
- const json = JSON.stringify({
140
- userPublicKey: uint8ArrayToBase64(pkArray),
141
- userPrivateKey: uint8ArrayToBase64(skArray)
142
- });
143
- const base64 = btoa(json);
144
- return base64;
145
- } catch (error) {
146
- throw new Error("Failed to convert identity keys to base64", { cause: error });
147
- }
148
- }
149
- async function encryptionKeysToBase64(keys) {
150
- try {
151
- const pkArray = await exportPublicKey(keys.userPublicKey);
152
- const skArray = await exportPrivateKey(keys.userPrivateKey);
153
- const json = JSON.stringify({
154
- userPublicKey: uint8ArrayToBase64(pkArray),
155
- userPrivateKey: uint8ArrayToBase64(skArray),
156
- userPublicKyberKey: uint8ArrayToBase64(keys.userPublicKyberKey),
157
- userPrivateKyberKey: uint8ArrayToBase64(keys.userPrivateKyberKey)
158
- });
159
- const base64 = btoa(json);
160
- return base64;
161
- } catch (error) {
162
- throw new Error("Failed to convert identity keys to base64", { cause: error });
163
- }
164
- }
165
- function encryptedKeystoreToBase64(keystore) {
166
- try {
167
- const ciphertext = ciphertextToBase64(keystore.encryptedKeys);
168
- const json = JSON.stringify({
169
- userID: keystore.userID,
170
- type: keystore.type.toString(),
171
- encryptedKeys: ciphertext
172
- });
173
- const base64 = btoa(json);
174
- return base64;
175
- } catch (error) {
176
- throw new Error("Failed to convert encrypted keystore to base64", { cause: error });
177
- }
178
- }
179
- async function base64ToIdentityKeys(base64) {
180
- try {
181
- const json = atob(base64);
182
- const obj = JSON.parse(json);
183
- const pkArray = base64ToUint8Array(obj.userPublicKey);
184
- const skArray = base64ToUint8Array(obj.userPrivateKey);
185
- const pkCryptoKey = await importPublicKey(pkArray);
186
- const skCryptoKey = await importPrivateKey(skArray);
187
- const result = {
188
- userPublicKey: pkCryptoKey,
189
- userPrivateKey: skCryptoKey
190
- };
191
- return result;
192
- } catch (error) {
193
- throw new Error("Failed convert base64 to idenity key", { cause: error });
194
- }
195
- }
196
- async function base64ToEncryptionKeys(base64) {
197
- try {
198
- const json = atob(base64);
199
- const obj = JSON.parse(json);
200
- const pkArray = base64ToUint8Array(obj.userPublicKey);
201
- const skArray = base64ToUint8Array(obj.userPrivateKey);
202
- const pkCryptoKey = await importPublicKey(pkArray);
203
- const skCryptoKey = await importPrivateKey(skArray);
204
- const pkKyber = base64ToUint8Array(obj.userPublicKyberKey);
205
- const skKyber = base64ToUint8Array(obj.userPrivateKyberKey);
206
- const result = {
207
- userPublicKey: pkCryptoKey,
208
- userPrivateKey: skCryptoKey,
209
- userPublicKyberKey: pkKyber,
210
- userPrivateKyberKey: skKyber
211
- };
212
- return result;
213
- } catch (error) {
214
- throw new Error("Failed to convert base64 to encryption key", { cause: error });
215
- }
216
- }
217
- function base64ToEncryptedKeystore(base64) {
218
- try {
219
- const json = atob(base64);
220
- const obj = JSON.parse(json);
221
- const ciphertext = base64ToCiphertext(obj.encryptedKeys);
222
- const result = {
223
- userID: obj.userID,
224
- type: obj.type,
225
- encryptedKeys: ciphertext
226
- };
227
- return result;
228
- } catch (error) {
229
- throw new Error("Failed to convert base64 to encrypted keystore", { cause: error });
230
- }
231
- }
232
- function mediaKeysToBase64(keys) {
233
- try {
234
- const json = JSON.stringify({
235
- olmKey: uint8ArrayToBase64(keys.olmKey),
236
- pqKey: uint8ArrayToBase64(keys.pqKey),
237
- index: keys.index.toString(),
238
- userID: keys.userID
239
- });
240
- const base64 = btoa(json);
241
- return base64;
242
- } catch (error) {
243
- throw new Error("Failed to convert media keys to base64", { cause: error });
244
- }
245
- }
246
- async function base64ToMediaKeys(base64) {
247
- try {
248
- const json = atob(base64);
249
- const obj = JSON.parse(json);
250
- const result = {
251
- olmKey: base64ToUint8Array(obj.olmKey),
252
- pqKey: base64ToUint8Array(obj.pqKey),
253
- index: Number(obj.index),
254
- userID: obj.userID
255
- };
256
- return result;
257
- } catch (error) {
258
- throw new Error("Failed convert base64 to media keys", { cause: error });
259
- }
260
- }
261
- async function base64ToPublicKey(base64) {
262
- try {
263
- const json = atob(base64);
264
- const obj = JSON.parse(json);
265
- const eccPublicKeyBytes = base64ToUint8Array(obj.eccPublicKey);
266
- const eccPublicKey = await importPublicKey(eccPublicKeyBytes);
267
- const kyberPublicKey = base64ToUint8Array(obj.kyberPublicKey);
268
- return {
269
- eccPublicKey,
270
- kyberPublicKey
271
- };
272
- } catch (error) {
273
- throw new Error("Failed to convert base64 to PublicKeys", { cause: error });
274
- }
275
- }
276
- async function publicKeyToBase64(key) {
277
- try {
278
- const eccPublicKeyArray = await exportPublicKey(key.eccPublicKey);
279
- const json = JSON.stringify({
280
- eccPublicKey: uint8ArrayToBase64(eccPublicKeyArray),
281
- kyberPublicKey: uint8ArrayToBase64(key.kyberPublicKey)
282
- });
283
- const base64 = btoa(json);
284
- return base64;
285
- } catch (error) {
286
- throw new Error("Failed to convert key of the type PublicKeys to base64", { cause: error });
287
- }
288
- }
289
- function genMnemonic(bits) {
290
- return bip39__namespace.generateMnemonic(english.wordlist, bits);
291
- }
292
-
293
- exports.UTF8ToUint8 = UTF8ToUint8;
294
- exports.base64ToCiphertext = base64ToCiphertext;
295
- exports.base64ToEncryptedKeystore = base64ToEncryptedKeystore;
296
- exports.base64ToEncryptionKeys = base64ToEncryptionKeys;
297
- exports.base64ToIdentityKeys = base64ToIdentityKeys;
298
- exports.base64ToMediaKeys = base64ToMediaKeys;
299
- exports.base64ToPublicKey = base64ToPublicKey;
300
- exports.base64ToUint8Array = base64ToUint8Array;
301
- exports.ciphertextToBase64 = ciphertextToBase64;
302
- exports.encryptedKeystoreToBase64 = encryptedKeystoreToBase64;
303
- exports.encryptionKeysToBase64 = encryptionKeysToBase64;
304
- exports.genMnemonic = genMnemonic;
305
- exports.hexToUint8Array = hexToUint8Array;
306
- exports.identityKeysToBase64 = identityKeysToBase64;
307
- exports.mediaKeysToBase64 = mediaKeysToBase64;
308
- exports.publicKeyToBase64 = publicKeyToBase64;
309
- exports.uint8ArrayToBase64 = uint8ArrayToBase64;
310
- exports.uint8ArrayToHex = uint8ArrayToHex;
311
- exports.uint8ToUTF8 = uint8ToUTF8;
312
- //# sourceMappingURL=utils.js.map
313
- //# sourceMappingURL=utils.js.map
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_genID = require('./genID-YJSl3YhL.js');
3
+
4
+ exports.UTF8ToUint8 = require_genID.UTF8ToUint8;
5
+ exports.base64ToPublicKey = require_genID.base64ToPublicKey;
6
+ exports.base64ToUint8Array = require_genID.base64ToUint8Array;
7
+ exports.bytesToMnemonic = require_genID.bytesToMnemonic;
8
+ exports.bytesToUuid = require_genID.bytesToUuid;
9
+ exports.genMnemonic = require_genID.genMnemonic;
10
+ exports.generateUuid = require_genID.generateUuid;
11
+ exports.hexToUint8Array = require_genID.hexToUint8Array;
12
+ exports.mnemonicToBytes = require_genID.mnemonicToBytes;
13
+ exports.publicKeyToBase64 = require_genID.publicKeyToBase64;
14
+ exports.uint8ArrayToBase64 = require_genID.uint8ArrayToBase64;
15
+ exports.uint8ArrayToHex = require_genID.uint8ArrayToHex;
16
+ exports.uint8ToUTF8 = require_genID.uint8ToUTF8;
17
+ exports.uuidToBytes = require_genID.uuidToBytes;
package/dist/utils.mjs CHANGED
@@ -1,273 +1,3 @@
1
- import { bytesToHex, hexToBytes } from '@noble/hashes/utils.js';
2
- import * as bip39 from '@scure/bip39';
3
- import { wordlist } from '@scure/bip39/wordlists/english';
1
+ import { a as genMnemonic, c as publicKeyToBase64, d as hexToUint8Array, f as uint8ArrayToBase64, i as bytesToMnemonic, l as UTF8ToUint8, m as uint8ToUTF8, n as generateUuid, o as mnemonicToBytes, p as uint8ArrayToHex, r as uuidToBytes, s as base64ToPublicKey, t as bytesToUuid, u as base64ToUint8Array } from "./genID-3Er5IowC.mjs";
4
2
 
5
- // src/utils/converters.ts
6
- function uint8ArrayToHex(array) {
7
- return bytesToHex(array);
8
- }
9
- function UTF8ToUint8(str) {
10
- return new TextEncoder().encode(str);
11
- }
12
- function uint8ToUTF8(array) {
13
- return new TextDecoder().decode(array);
14
- }
15
- function hexToUint8Array(hex) {
16
- return hexToBytes(hex);
17
- }
18
- function uint8ArrayToBase64(buffer) {
19
- const array = Uint16Array.from(buffer);
20
- const binaryString = new TextDecoder("UTF-16").decode(array);
21
- return btoa(binaryString);
22
- }
23
- function base64ToUint8Array(str) {
24
- const binaryString = atob(str);
25
- const len = binaryString.length;
26
- const array = new Uint8Array(len);
27
- for (let i = 0; i < len; i++) {
28
- array[i] = binaryString.charCodeAt(i);
29
- }
30
- return new Uint8Array(array.buffer);
31
- }
32
-
33
- // src/constants.ts
34
- var ECC_ALGORITHM = "X25519";
35
-
36
- // src/asymmetric-crypto/keys.ts
37
- async function exportPublicKey(key) {
38
- try {
39
- const result = await crypto.subtle.exportKey("spki", key);
40
- return new Uint8Array(result);
41
- } catch (error) {
42
- throw new Error("Failed to export public key", { cause: error });
43
- }
44
- }
45
- async function importPublicKey(spkiKeyData) {
46
- try {
47
- return await crypto.subtle.importKey(
48
- "spki",
49
- spkiKeyData,
50
- {
51
- name: ECC_ALGORITHM
52
- },
53
- true,
54
- []
55
- );
56
- } catch (error) {
57
- throw new Error("Failed to import public key", { cause: error });
58
- }
59
- }
60
- async function exportPrivateKey(key) {
61
- try {
62
- const result = await crypto.subtle.exportKey("pkcs8", key);
63
- return new Uint8Array(result);
64
- } catch (error) {
65
- throw new Error("Failed to export private key", { cause: error });
66
- }
67
- }
68
- async function importPrivateKey(pkcs8KeyData) {
69
- try {
70
- return await crypto.subtle.importKey(
71
- "pkcs8",
72
- pkcs8KeyData,
73
- {
74
- name: ECC_ALGORITHM
75
- },
76
- true,
77
- ["deriveBits"]
78
- );
79
- } catch (error) {
80
- throw new Error("Failed to import private key", { cause: error });
81
- }
82
- }
83
-
84
- // src/utils/aesConverters.ts
85
- function ciphertextToBase64(encryptedMessage) {
86
- try {
87
- const ivBase64 = uint8ArrayToBase64(encryptedMessage.iv);
88
- const ciphertextBase64 = uint8ArrayToBase64(encryptedMessage.ciphertext);
89
- const json = JSON.stringify({ ciphertext: ciphertextBase64, iv: ivBase64 });
90
- const base64 = btoa(json);
91
- return base64;
92
- } catch (error) {
93
- throw new Error("Failed to convert ciphertext to base64", { cause: error });
94
- }
95
- }
96
- function base64ToCiphertext(base64) {
97
- try {
98
- const json = atob(base64);
99
- const obj = JSON.parse(json);
100
- const iv = base64ToUint8Array(obj.iv);
101
- const ciphertext = base64ToUint8Array(obj.ciphertext);
102
- const result = {
103
- ciphertext,
104
- iv
105
- };
106
- return result;
107
- } catch (error) {
108
- throw new Error("Failed to convert base64 to ciphertext", { cause: error });
109
- }
110
- }
111
-
112
- // src/utils/keyConverters.ts
113
- async function identityKeysToBase64(keys) {
114
- try {
115
- const pkArray = await exportPublicKey(keys.userPublicKey);
116
- const skArray = await exportPrivateKey(keys.userPrivateKey);
117
- const json = JSON.stringify({
118
- userPublicKey: uint8ArrayToBase64(pkArray),
119
- userPrivateKey: uint8ArrayToBase64(skArray)
120
- });
121
- const base64 = btoa(json);
122
- return base64;
123
- } catch (error) {
124
- throw new Error("Failed to convert identity keys to base64", { cause: error });
125
- }
126
- }
127
- async function encryptionKeysToBase64(keys) {
128
- try {
129
- const pkArray = await exportPublicKey(keys.userPublicKey);
130
- const skArray = await exportPrivateKey(keys.userPrivateKey);
131
- const json = JSON.stringify({
132
- userPublicKey: uint8ArrayToBase64(pkArray),
133
- userPrivateKey: uint8ArrayToBase64(skArray),
134
- userPublicKyberKey: uint8ArrayToBase64(keys.userPublicKyberKey),
135
- userPrivateKyberKey: uint8ArrayToBase64(keys.userPrivateKyberKey)
136
- });
137
- const base64 = btoa(json);
138
- return base64;
139
- } catch (error) {
140
- throw new Error("Failed to convert identity keys to base64", { cause: error });
141
- }
142
- }
143
- function encryptedKeystoreToBase64(keystore) {
144
- try {
145
- const ciphertext = ciphertextToBase64(keystore.encryptedKeys);
146
- const json = JSON.stringify({
147
- userID: keystore.userID,
148
- type: keystore.type.toString(),
149
- encryptedKeys: ciphertext
150
- });
151
- const base64 = btoa(json);
152
- return base64;
153
- } catch (error) {
154
- throw new Error("Failed to convert encrypted keystore to base64", { cause: error });
155
- }
156
- }
157
- async function base64ToIdentityKeys(base64) {
158
- try {
159
- const json = atob(base64);
160
- const obj = JSON.parse(json);
161
- const pkArray = base64ToUint8Array(obj.userPublicKey);
162
- const skArray = base64ToUint8Array(obj.userPrivateKey);
163
- const pkCryptoKey = await importPublicKey(pkArray);
164
- const skCryptoKey = await importPrivateKey(skArray);
165
- const result = {
166
- userPublicKey: pkCryptoKey,
167
- userPrivateKey: skCryptoKey
168
- };
169
- return result;
170
- } catch (error) {
171
- throw new Error("Failed convert base64 to idenity key", { cause: error });
172
- }
173
- }
174
- async function base64ToEncryptionKeys(base64) {
175
- try {
176
- const json = atob(base64);
177
- const obj = JSON.parse(json);
178
- const pkArray = base64ToUint8Array(obj.userPublicKey);
179
- const skArray = base64ToUint8Array(obj.userPrivateKey);
180
- const pkCryptoKey = await importPublicKey(pkArray);
181
- const skCryptoKey = await importPrivateKey(skArray);
182
- const pkKyber = base64ToUint8Array(obj.userPublicKyberKey);
183
- const skKyber = base64ToUint8Array(obj.userPrivateKyberKey);
184
- const result = {
185
- userPublicKey: pkCryptoKey,
186
- userPrivateKey: skCryptoKey,
187
- userPublicKyberKey: pkKyber,
188
- userPrivateKyberKey: skKyber
189
- };
190
- return result;
191
- } catch (error) {
192
- throw new Error("Failed to convert base64 to encryption key", { cause: error });
193
- }
194
- }
195
- function base64ToEncryptedKeystore(base64) {
196
- try {
197
- const json = atob(base64);
198
- const obj = JSON.parse(json);
199
- const ciphertext = base64ToCiphertext(obj.encryptedKeys);
200
- const result = {
201
- userID: obj.userID,
202
- type: obj.type,
203
- encryptedKeys: ciphertext
204
- };
205
- return result;
206
- } catch (error) {
207
- throw new Error("Failed to convert base64 to encrypted keystore", { cause: error });
208
- }
209
- }
210
- function mediaKeysToBase64(keys) {
211
- try {
212
- const json = JSON.stringify({
213
- olmKey: uint8ArrayToBase64(keys.olmKey),
214
- pqKey: uint8ArrayToBase64(keys.pqKey),
215
- index: keys.index.toString(),
216
- userID: keys.userID
217
- });
218
- const base64 = btoa(json);
219
- return base64;
220
- } catch (error) {
221
- throw new Error("Failed to convert media keys to base64", { cause: error });
222
- }
223
- }
224
- async function base64ToMediaKeys(base64) {
225
- try {
226
- const json = atob(base64);
227
- const obj = JSON.parse(json);
228
- const result = {
229
- olmKey: base64ToUint8Array(obj.olmKey),
230
- pqKey: base64ToUint8Array(obj.pqKey),
231
- index: Number(obj.index),
232
- userID: obj.userID
233
- };
234
- return result;
235
- } catch (error) {
236
- throw new Error("Failed convert base64 to media keys", { cause: error });
237
- }
238
- }
239
- async function base64ToPublicKey(base64) {
240
- try {
241
- const json = atob(base64);
242
- const obj = JSON.parse(json);
243
- const eccPublicKeyBytes = base64ToUint8Array(obj.eccPublicKey);
244
- const eccPublicKey = await importPublicKey(eccPublicKeyBytes);
245
- const kyberPublicKey = base64ToUint8Array(obj.kyberPublicKey);
246
- return {
247
- eccPublicKey,
248
- kyberPublicKey
249
- };
250
- } catch (error) {
251
- throw new Error("Failed to convert base64 to PublicKeys", { cause: error });
252
- }
253
- }
254
- async function publicKeyToBase64(key) {
255
- try {
256
- const eccPublicKeyArray = await exportPublicKey(key.eccPublicKey);
257
- const json = JSON.stringify({
258
- eccPublicKey: uint8ArrayToBase64(eccPublicKeyArray),
259
- kyberPublicKey: uint8ArrayToBase64(key.kyberPublicKey)
260
- });
261
- const base64 = btoa(json);
262
- return base64;
263
- } catch (error) {
264
- throw new Error("Failed to convert key of the type PublicKeys to base64", { cause: error });
265
- }
266
- }
267
- function genMnemonic(bits) {
268
- return bip39.generateMnemonic(wordlist, bits);
269
- }
270
-
271
- export { UTF8ToUint8, base64ToCiphertext, base64ToEncryptedKeystore, base64ToEncryptionKeys, base64ToIdentityKeys, base64ToMediaKeys, base64ToPublicKey, base64ToUint8Array, ciphertextToBase64, encryptedKeystoreToBase64, encryptionKeysToBase64, genMnemonic, hexToUint8Array, identityKeysToBase64, mediaKeysToBase64, publicKeyToBase64, uint8ArrayToBase64, uint8ArrayToHex, uint8ToUTF8 };
272
- //# sourceMappingURL=utils.mjs.map
273
- //# sourceMappingURL=utils.mjs.map
3
+ export { UTF8ToUint8, base64ToPublicKey, base64ToUint8Array, bytesToMnemonic, bytesToUuid, genMnemonic, generateUuid, hexToUint8Array, mnemonicToBytes, publicKeyToBase64, uint8ArrayToBase64, uint8ArrayToHex, uint8ToUTF8, uuidToBytes };