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.
- package/README.md +3 -4
- package/dist/aes-DSDxP8uF.mjs +184 -0
- package/dist/aes-DSDxP8uF.mjs.map +1 -0
- package/dist/aes-bOrKZuUC.js +226 -0
- package/dist/aes-bOrKZuUC.js.map +1 -0
- package/dist/asymmetric-crypto.d.mts +5 -2
- package/dist/asymmetric-crypto.d.mts.map +1 -0
- package/dist/asymmetric-crypto.d.ts +5 -2
- package/dist/asymmetric-crypto.d.ts.map +1 -0
- package/dist/asymmetric-crypto.js +9 -92
- package/dist/asymmetric-crypto.mjs +2 -84
- package/dist/chunk-DQk6qfdC.mjs +18 -0
- package/dist/chunk-EbLFQX5m.js +60 -0
- package/dist/constants.d.mts +5 -11
- package/dist/constants.d.mts.map +1 -0
- package/dist/constants.d.ts +5 -11
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +33 -49
- package/dist/constants.js.map +1 -1
- package/dist/constants.mjs +32 -40
- package/dist/constants.mjs.map +1 -1
- package/dist/derive-key.d.mts +11 -8
- package/dist/derive-key.d.mts.map +1 -0
- package/dist/derive-key.d.ts +11 -8
- package/dist/derive-key.d.ts.map +1 -0
- package/dist/derive-key.js +13 -795
- package/dist/derive-key.mjs +2 -783
- package/dist/deriveKeysFromPassword-DJRWZ8Rw.mjs +735 -0
- package/dist/deriveKeysFromPassword-DJRWZ8Rw.mjs.map +1 -0
- package/dist/deriveKeysFromPassword-Ko7NxkHM.js +2492 -0
- package/dist/deriveKeysFromPassword-Ko7NxkHM.js.map +1 -0
- package/dist/email-crypto.d.mts +55 -78
- package/dist/email-crypto.d.mts.map +1 -0
- package/dist/email-crypto.d.ts +55 -78
- package/dist/email-crypto.d.ts.map +1 -0
- package/dist/email-crypto.js +13 -1409
- package/dist/email-crypto.mjs +2 -1380
- package/dist/email-search.d.mts +36 -32
- package/dist/email-search.d.mts.map +1 -0
- package/dist/email-search.d.ts +36 -32
- package/dist/email-search.d.ts.map +1 -0
- package/dist/email-search.js +534 -540
- package/dist/email-search.js.map +1 -1
- package/dist/email-search.mjs +532 -538
- package/dist/email-search.mjs.map +1 -1
- package/dist/emailEncryptionKey-27mIHh18.mjs +150 -0
- package/dist/emailEncryptionKey-27mIHh18.mjs.map +1 -0
- package/dist/emailEncryptionKey-DbaDAdoW.js +167 -0
- package/dist/emailEncryptionKey-DbaDAdoW.js.map +1 -0
- package/dist/emailKeys-BJGdkLrg.js +593 -0
- package/dist/emailKeys-BJGdkLrg.js.map +1 -0
- package/dist/emailKeys-Fp9WR3wl.mjs +509 -0
- package/dist/emailKeys-Fp9WR3wl.mjs.map +1 -0
- package/dist/genID-3Er5IowC.mjs +153 -0
- package/dist/genID-3Er5IowC.mjs.map +1 -0
- package/dist/genID-YJSl3YhL.js +238 -0
- package/dist/genID-YJSl3YhL.js.map +1 -0
- package/dist/hash.d.mts +18 -15
- package/dist/hash.d.mts.map +1 -0
- package/dist/hash.d.ts +18 -15
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +12 -95
- package/dist/hash.mjs +2 -84
- package/dist/index.d.mts +15 -18
- package/dist/index.d.mts.map +1 -0
- package/dist/index.d.ts +15 -18
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +125 -2698
- package/dist/index.mjs +13 -2538
- package/dist/keys-BfcaiAOv.mjs +90 -0
- package/dist/keys-BfcaiAOv.mjs.map +1 -0
- package/dist/keys-CinT7kEY.js +125 -0
- package/dist/keys-CinT7kEY.js.map +1 -0
- package/dist/keystore-crypto.d.mts +17 -46
- package/dist/keystore-crypto.d.mts.map +1 -0
- package/dist/keystore-crypto.d.ts +17 -46
- package/dist/keystore-crypto.d.ts.map +1 -0
- package/dist/keystore-crypto.js +5 -529
- package/dist/keystore-crypto.mjs +2 -500
- package/dist/kyber1024-PpwE1rki.mjs +144 -0
- package/dist/kyber1024-PpwE1rki.mjs.map +1 -0
- package/dist/kyber1024-jeKS8CXf.js +173 -0
- package/dist/kyber1024-jeKS8CXf.js.map +1 -0
- package/dist/{kyber768-B87rMQ7u.d.mts → kyber768-DGBB_RS7.d.ts} +8 -6
- package/dist/kyber768-DGBB_RS7.d.ts.map +1 -0
- package/dist/{kyber768-B87rMQ7u.d.ts → kyber768-DzIcGg1i.d.mts} +8 -6
- package/dist/kyber768-DzIcGg1i.d.mts.map +1 -0
- package/dist/mac-BMb1F0dN.js +170 -0
- package/dist/mac-BMb1F0dN.js.map +1 -0
- package/dist/mac-ZpRlx8Fs.mjs +116 -0
- package/dist/mac-ZpRlx8Fs.mjs.map +1 -0
- package/dist/post-quantum-crypto.d.mts +23 -27
- package/dist/post-quantum-crypto.d.mts.map +1 -0
- package/dist/post-quantum-crypto.d.ts +23 -27
- package/dist/post-quantum-crypto.d.ts.map +1 -0
- package/dist/post-quantum-crypto.js +14 -92
- package/dist/post-quantum-crypto.mjs +2 -89
- package/dist/storage-service.d.mts +28 -34
- package/dist/storage-service.d.mts.map +1 -0
- package/dist/storage-service.d.ts +28 -34
- package/dist/storage-service.d.ts.map +1 -0
- package/dist/storage-service.js +51 -53
- package/dist/storage-service.js.map +1 -1
- package/dist/storage-service.mjs +40 -51
- package/dist/storage-service.mjs.map +1 -1
- package/dist/symmetric-crypto.d.mts +8 -7
- package/dist/symmetric-crypto.d.mts.map +1 -0
- package/dist/symmetric-crypto.d.ts +8 -7
- package/dist/symmetric-crypto.d.ts.map +1 -0
- package/dist/symmetric-crypto.js +10 -142
- package/dist/symmetric-crypto.mjs +2 -133
- package/dist/types.d.mts +71 -69
- package/dist/types.d.mts.map +1 -0
- package/dist/types.d.ts +71 -69
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -10
- package/dist/types.js.map +1 -1
- package/dist/types.mjs +7 -9
- package/dist/types.mjs.map +1 -1
- package/dist/utils.d.mts +34 -78
- package/dist/utils.d.mts.map +1 -0
- package/dist/utils.d.ts +34 -78
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +17 -313
- package/dist/utils.mjs +2 -272
- package/package.json +21 -87
- package/dist/asymmetric-crypto.js.map +0 -1
- package/dist/asymmetric-crypto.mjs.map +0 -1
- package/dist/derive-key.js.map +0 -1
- package/dist/derive-key.mjs.map +0 -1
- package/dist/email-crypto.js.map +0 -1
- package/dist/email-crypto.mjs.map +0 -1
- package/dist/email-service.d.mts +0 -38
- package/dist/email-service.d.ts +0 -38
- package/dist/email-service.js +0 -154
- package/dist/email-service.js.map +0 -1
- package/dist/email-service.mjs +0 -147
- package/dist/email-service.mjs.map +0 -1
- package/dist/hash.js.map +0 -1
- package/dist/hash.mjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/keystore-crypto.js.map +0 -1
- package/dist/keystore-crypto.mjs.map +0 -1
- package/dist/keystore-service.d.mts +0 -82
- package/dist/keystore-service.d.ts +0 -82
- package/dist/keystore-service.js +0 -349
- package/dist/keystore-service.js.map +0 -1
- package/dist/keystore-service.mjs +0 -342
- package/dist/keystore-service.mjs.map +0 -1
- package/dist/post-quantum-crypto.js.map +0 -1
- package/dist/post-quantum-crypto.mjs.map +0 -1
- package/dist/symmetric-crypto.js.map +0 -1
- package/dist/symmetric-crypto.mjs.map +0 -1
- package/dist/utils-BDaK_d6T.d.ts +0 -114
- package/dist/utils-v34IRTIx.d.mts +0 -114
- package/dist/utils.js.map +0 -1
- package/dist/utils.mjs.map +0 -1
package/dist/utils.js
CHANGED
|
@@ -1,313 +1,17 @@
|
|
|
1
|
-
'
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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 {
|
|
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
|
-
|
|
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 };
|