internxt-crypto 0.0.13 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -72
- package/dist/aes-B8TA-JKq.mjs +49 -0
- package/dist/aes-B8TA-JKq.mjs.map +1 -0
- package/dist/aes-CuW_SPl-.js +67 -0
- package/dist/aes-CuW_SPl-.js.map +1 -0
- package/dist/asymmetric-crypto.d.mts +8 -31
- package/dist/asymmetric-crypto.d.mts.map +1 -1
- package/dist/asymmetric-crypto.d.ts +8 -31
- package/dist/asymmetric-crypto.d.ts.map +1 -1
- package/dist/asymmetric-crypto.js +30 -7
- package/dist/asymmetric-crypto.js.map +1 -0
- package/dist/asymmetric-crypto.mjs +28 -2
- package/dist/asymmetric-crypto.mjs.map +1 -0
- package/dist/constants.d.mts +7 -14
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.d.ts +7 -14
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +11 -25
- package/dist/constants.js.map +1 -1
- package/dist/constants.mjs +7 -14
- package/dist/constants.mjs.map +1 -1
- package/dist/core-Bj26rNdA.js +227 -0
- package/dist/core-Bj26rNdA.js.map +1 -0
- package/dist/core-pEGygy6S.mjs +173 -0
- package/dist/core-pEGygy6S.mjs.map +1 -0
- package/dist/derive-key.d.mts +1 -74
- package/dist/derive-key.d.mts.map +1 -1
- package/dist/derive-key.d.ts +1 -74
- package/dist/derive-key.d.ts.map +1 -1
- package/dist/derive-key.js +3 -11
- package/dist/derive-key.mjs +2 -2
- package/dist/derive-password.d.mts +22 -0
- package/dist/derive-password.d.mts.map +1 -0
- package/dist/derive-password.d.ts +22 -0
- package/dist/derive-password.d.ts.map +1 -0
- package/dist/derive-password.js +5 -0
- package/dist/derive-password.mjs +3 -0
- package/dist/deriveKeysFromKey-C4McqO6_.js +47 -0
- package/dist/deriveKeysFromKey-C4McqO6_.js.map +1 -0
- package/dist/deriveKeysFromKey-DPU_h7wr.mjs +35 -0
- package/dist/deriveKeysFromKey-DPU_h7wr.mjs.map +1 -0
- package/dist/{deriveKeysFromPassword-Ko7NxkHM.js → deriveKeysFromPassword-C7xAGGsh.js} +5 -177
- package/dist/deriveKeysFromPassword-C7xAGGsh.js.map +1 -0
- package/dist/{deriveKeysFromPassword-DJRWZ8Rw.mjs → deriveKeysFromPassword-DXgSvTNC.mjs} +7 -131
- package/dist/deriveKeysFromPassword-DXgSvTNC.mjs.map +1 -0
- package/dist/email-crypto.d.mts +24 -46
- package/dist/email-crypto.d.mts.map +1 -1
- package/dist/email-crypto.d.ts +24 -46
- package/dist/email-crypto.d.ts.map +1 -1
- package/dist/email-crypto.js +121 -12
- package/dist/email-crypto.js.map +1 -0
- package/dist/email-crypto.mjs +115 -2
- package/dist/email-crypto.mjs.map +1 -0
- package/dist/email-search.d.mts +18 -18
- package/dist/email-search.d.mts.map +1 -1
- package/dist/email-search.d.ts +18 -18
- package/dist/email-search.d.ts.map +1 -1
- package/dist/email-search.js +25 -597
- package/dist/email-search.mjs +2 -573
- package/dist/{emailEncryptionKey-27mIHh18.mjs → emailEncryptionKey-BtSPYd9M.mjs} +23 -46
- package/dist/emailEncryptionKey-BtSPYd9M.mjs.map +1 -0
- package/dist/{emailEncryptionKey-DbaDAdoW.js → emailEncryptionKey-C4X1Bwy4.js} +22 -45
- package/dist/emailEncryptionKey-C4X1Bwy4.js.map +1 -0
- package/dist/{genID-3Er5IowC.mjs → genID-D08K7JPr.mjs} +4 -40
- package/dist/genID-D08K7JPr.mjs.map +1 -0
- package/dist/{genID-YJSl3YhL.js → genID-cWOPmspk.js} +2 -50
- package/dist/genID-cWOPmspk.js.map +1 -0
- package/dist/hash.d.mts +24 -36
- package/dist/hash.d.mts.map +1 -1
- package/dist/hash.d.ts +24 -36
- package/dist/hash.d.ts.map +1 -1
- package/dist/hash.js +88 -10
- package/dist/hash.js.map +1 -0
- package/dist/hash.mjs +82 -2
- package/dist/hash.mjs.map +1 -0
- package/dist/index.d.mts +17 -16
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +17 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -83
- package/dist/index.mjs +13 -11
- package/dist/keystore-crypto.d.mts +6 -6
- package/dist/keystore-crypto.d.mts.map +1 -1
- package/dist/keystore-crypto.d.ts +6 -6
- package/dist/keystore-crypto.d.ts.map +1 -1
- package/dist/keystore-crypto.js +1 -1
- package/dist/keystore-crypto.mjs +1 -1
- package/dist/post-quantum-crypto.d.mts +5 -41
- package/dist/post-quantum-crypto.d.mts.map +1 -1
- package/dist/post-quantum-crypto.d.ts +5 -41
- package/dist/post-quantum-crypto.d.ts.map +1 -1
- package/dist/post-quantum-crypto.js +49 -16
- package/dist/post-quantum-crypto.js.map +1 -0
- package/dist/post-quantum-crypto.mjs +46 -2
- package/dist/post-quantum-crypto.mjs.map +1 -0
- package/dist/search-B9YM3XAA.mjs +587 -0
- package/dist/search-B9YM3XAA.mjs.map +1 -0
- package/dist/search-DUTm4-rN.js +731 -0
- package/dist/search-DUTm4-rN.js.map +1 -0
- package/dist/symmetric-crypto.d.mts +13 -42
- package/dist/symmetric-crypto.d.mts.map +1 -1
- package/dist/symmetric-crypto.d.ts +13 -42
- package/dist/symmetric-crypto.d.ts.map +1 -1
- package/dist/symmetric-crypto.js +2 -6
- package/dist/symmetric-crypto.mjs +2 -2
- package/dist/types.d.mts +16 -39
- package/dist/types.d.mts.map +1 -1
- package/dist/types.d.ts +16 -39
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils.d.mts +1 -19
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.d.ts +1 -19
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -3
- package/dist/utils.mjs +2 -2
- package/dist/xwing-CQmQX6hn.mjs +16 -0
- package/dist/xwing-CQmQX6hn.mjs.map +1 -0
- package/dist/xwing-iRWVRtNE.js +34 -0
- package/dist/xwing-iRWVRtNE.js.map +1 -0
- package/package.json +4 -2
- package/dist/aes-DSDxP8uF.mjs +0 -184
- package/dist/aes-DSDxP8uF.mjs.map +0 -1
- package/dist/aes-bOrKZuUC.js +0 -226
- package/dist/aes-bOrKZuUC.js.map +0 -1
- package/dist/deriveKeysFromPassword-DJRWZ8Rw.mjs.map +0 -1
- package/dist/deriveKeysFromPassword-Ko7NxkHM.js.map +0 -1
- package/dist/email-search.js.map +0 -1
- package/dist/email-search.mjs.map +0 -1
- package/dist/emailEncryptionKey-27mIHh18.mjs.map +0 -1
- package/dist/emailEncryptionKey-DbaDAdoW.js.map +0 -1
- package/dist/emailKeys-BJGdkLrg.js +0 -593
- package/dist/emailKeys-BJGdkLrg.js.map +0 -1
- package/dist/emailKeys-Fp9WR3wl.mjs +0 -509
- package/dist/emailKeys-Fp9WR3wl.mjs.map +0 -1
- package/dist/genID-3Er5IowC.mjs.map +0 -1
- package/dist/genID-YJSl3YhL.js.map +0 -1
- package/dist/keys-BfcaiAOv.mjs +0 -90
- package/dist/keys-BfcaiAOv.mjs.map +0 -1
- package/dist/keys-CinT7kEY.js +0 -125
- package/dist/keys-CinT7kEY.js.map +0 -1
- package/dist/kyber1024-PpwE1rki.mjs +0 -144
- package/dist/kyber1024-PpwE1rki.mjs.map +0 -1
- package/dist/kyber1024-jeKS8CXf.js +0 -173
- package/dist/kyber1024-jeKS8CXf.js.map +0 -1
- package/dist/kyber768-DGBB_RS7.d.ts +0 -32
- package/dist/kyber768-DGBB_RS7.d.ts.map +0 -1
- package/dist/kyber768-DzIcGg1i.d.mts +0 -32
- package/dist/kyber768-DzIcGg1i.d.mts.map +0 -1
- package/dist/mac-BMb1F0dN.js +0 -170
- package/dist/mac-BMb1F0dN.js.map +0 -1
- package/dist/mac-ZpRlx8Fs.mjs +0 -116
- package/dist/mac-ZpRlx8Fs.mjs.map +0 -1
package/dist/hash.mjs
CHANGED
|
@@ -1,3 +1,83 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { blake3 } from "@noble/hashes/blake3.js";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
//#region src/hash/blake3.ts
|
|
4
|
+
/**
|
|
5
|
+
* Hashes the given array of data
|
|
6
|
+
*
|
|
7
|
+
* @param data - The array of data
|
|
8
|
+
* @returns The resulting hash
|
|
9
|
+
*/
|
|
10
|
+
function hashDataArray(data) {
|
|
11
|
+
try {
|
|
12
|
+
const hasher = blake3.create();
|
|
13
|
+
for (const d of data) hasher.update(d);
|
|
14
|
+
return hasher.digest();
|
|
15
|
+
} catch (error) {
|
|
16
|
+
throw new Error("Failed to compute hash", { cause: error });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Hashes the given array of data with the given key
|
|
21
|
+
*
|
|
22
|
+
* @param hashKey - The key for keyed hashing
|
|
23
|
+
* @param data - The array of data
|
|
24
|
+
* @returns The resulting keyed hash
|
|
25
|
+
*/
|
|
26
|
+
function hashDataArrayWithKey(hashKey, data) {
|
|
27
|
+
try {
|
|
28
|
+
const hasher = blake3.create({ key: hashKey });
|
|
29
|
+
for (const d of data) hasher.update(d);
|
|
30
|
+
return hasher.digest();
|
|
31
|
+
} catch (error) {
|
|
32
|
+
throw new Error("Failed to compute hash", { cause: error });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Hashes the given array of data to the desired byte-length
|
|
37
|
+
*
|
|
38
|
+
* @param data - The array of data
|
|
39
|
+
* @param bytes - The desired output byte-length
|
|
40
|
+
* @returns The resulting hash of the desired byte-length
|
|
41
|
+
*/
|
|
42
|
+
function getBytesFromDataArray(data, bytes) {
|
|
43
|
+
try {
|
|
44
|
+
const hasher = blake3.create({ dkLen: bytes });
|
|
45
|
+
for (const chunk of data) hasher.update(chunk);
|
|
46
|
+
return hasher.digest();
|
|
47
|
+
} catch (error) {
|
|
48
|
+
throw new Error("Failed to get bytes from data", { cause: error });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Hashes the given data
|
|
53
|
+
*
|
|
54
|
+
* @param data - The data
|
|
55
|
+
* @returns The resulting hash
|
|
56
|
+
*/
|
|
57
|
+
function hashData(data) {
|
|
58
|
+
return blake3(data);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Hashes the given data with the given key
|
|
62
|
+
*
|
|
63
|
+
* @param hashKey - The key for keyed hashing
|
|
64
|
+
* @param data - The data
|
|
65
|
+
* @returns The resulting keyed hash
|
|
66
|
+
*/
|
|
67
|
+
function hashDataWithKey(hashKey, data) {
|
|
68
|
+
return blake3(data, { key: hashKey });
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Hashes the given data to the desired byte-length
|
|
72
|
+
*
|
|
73
|
+
* @param data - The data
|
|
74
|
+
* @param bytes - The desired output byte-length
|
|
75
|
+
* @returns The resulting hash of the desired byte-length
|
|
76
|
+
*/
|
|
77
|
+
function getBytesFromData(data, bytes) {
|
|
78
|
+
return blake3(data, { dkLen: bytes });
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//#endregion
|
|
82
|
+
export { getBytesFromData, getBytesFromDataArray, hashData, hashDataArray, hashDataArrayWithKey, hashDataWithKey };
|
|
83
|
+
//# sourceMappingURL=hash.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.mjs","names":[],"sources":["../src/hash/blake3.ts"],"sourcesContent":["import { blake3 } from '@noble/hashes/blake3.js';\n\n/**\n * Hashes the given array of data\n *\n * @param data - The array of data\n * @returns The resulting hash\n */\nexport function hashDataArray(data: Uint8Array[]): Uint8Array {\n try {\n const hasher = blake3.create();\n for (const d of data) {\n hasher.update(d);\n }\n return hasher.digest();\n } catch (error) {\n throw new Error('Failed to compute hash', { cause: error });\n }\n}\n\n/**\n * Hashes the given array of data with the given key\n *\n * @param hashKey - The key for keyed hashing\n * @param data - The array of data\n * @returns The resulting keyed hash\n */\nexport function hashDataArrayWithKey(hashKey: Uint8Array, data: Uint8Array[]): Uint8Array {\n try {\n const hasher = blake3.create({ key: hashKey });\n for (const d of data) {\n hasher.update(d);\n }\n return hasher.digest();\n } catch (error) {\n throw new Error('Failed to compute hash', { cause: error });\n }\n}\n\n/**\n * Hashes the given array of data to the desired byte-length\n *\n * @param data - The array of data\n * @param bytes - The desired output byte-length\n * @returns The resulting hash of the desired byte-length\n */\nexport function getBytesFromDataArray(data: Uint8Array[], bytes: number): Uint8Array {\n try {\n const hasher = blake3.create({ dkLen: bytes });\n for (const chunk of data) {\n hasher.update(chunk);\n }\n return hasher.digest();\n } catch (error) {\n throw new Error('Failed to get bytes from data', { cause: error });\n }\n}\n\n/**\n * Hashes the given data\n *\n * @param data - The data\n * @returns The resulting hash\n */\nexport function hashData(data: Uint8Array): Uint8Array {\n return blake3(data);\n}\n\n/**\n * Hashes the given data with the given key\n *\n * @param hashKey - The key for keyed hashing\n * @param data - The data\n * @returns The resulting keyed hash\n */\nexport function hashDataWithKey(hashKey: Uint8Array, data: Uint8Array): Uint8Array {\n return blake3(data, { key: hashKey });\n}\n\n/**\n * Hashes the given data to the desired byte-length\n *\n * @param data - The data\n * @param bytes - The desired output byte-length\n * @returns The resulting hash of the desired byte-length\n */\nexport function getBytesFromData(data: Uint8Array, bytes: number): Uint8Array {\n return blake3(data, { dkLen: bytes });\n}\n"],"mappings":";;;;;;;;;AAQA,SAAgB,cAAc,MAAgC;AAC5D,KAAI;EACF,MAAM,SAAS,OAAO,QAAQ;AAC9B,OAAK,MAAM,KAAK,KACd,QAAO,OAAO,EAAE;AAElB,SAAO,OAAO,QAAQ;UACf,OAAO;AACd,QAAM,IAAI,MAAM,0BAA0B,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;AAW/D,SAAgB,qBAAqB,SAAqB,MAAgC;AACxF,KAAI;EACF,MAAM,SAAS,OAAO,OAAO,EAAE,KAAK,SAAS,CAAC;AAC9C,OAAK,MAAM,KAAK,KACd,QAAO,OAAO,EAAE;AAElB,SAAO,OAAO,QAAQ;UACf,OAAO;AACd,QAAM,IAAI,MAAM,0BAA0B,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;AAW/D,SAAgB,sBAAsB,MAAoB,OAA2B;AACnF,KAAI;EACF,MAAM,SAAS,OAAO,OAAO,EAAE,OAAO,OAAO,CAAC;AAC9C,OAAK,MAAM,SAAS,KAClB,QAAO,OAAO,MAAM;AAEtB,SAAO,OAAO,QAAQ;UACf,OAAO;AACd,QAAM,IAAI,MAAM,iCAAiC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;AAUtE,SAAgB,SAAS,MAA8B;AACrD,QAAO,OAAO,KAAK;;;;;;;;;AAUrB,SAAgB,gBAAgB,SAAqB,MAA8B;AACjF,QAAO,OAAO,MAAM,EAAE,KAAK,SAAS,CAAC;;;;;;;;;AAUvC,SAAgB,iBAAiB,MAAkB,OAA2B;AAC5E,QAAO,OAAO,MAAM,EAAE,OAAO,OAAO,CAAC"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { deriveSecretKey,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { deriveSecretKey, generateEccKeys } from "./asymmetric-crypto.mjs";
|
|
2
|
+
import { AES_KEY_BYTE_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, DB_LABEL, DB_VERSION, IV_LEN_BYTES, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH, XWING_CIPHERTEXT_BYTE_LENGTH, XWING_PUBLIC_KEY_LENGTH, XWING_SECRET_KEY_LENGTH, XWING_SEED_BYTE_LENGTH } from "./constants.mjs";
|
|
3
|
+
import { deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys } from "./derive-key.mjs";
|
|
4
|
+
import { getKeyFromPassword, getKeyFromPasswordAndSalt } from "./derive-password.mjs";
|
|
5
|
+
import { Email, EmailBody, EmailBodyEncrypted, EmailPublicParameters, EmailSearchResult, EncryptedKeystore, HybridEncKey, HybridEncryptedEmail, HybridKeyPair, KeystoreType, MailCache, PwdProtectedEmail, PwdProtectedKey, RecipientWithPublicKey, StoredEmail, User } from "./types.mjs";
|
|
5
6
|
import { createPwdProtectedEmail, decryptEmailHybrid, decryptPwdProtectedEmail, encryptEmailHybrid, encryptEmailHybridForMultipleRecipients, generateEmailKeys } from "./email-crypto.mjs";
|
|
6
7
|
import { addEmailToCache, addEmailToSearchIndex, addEmailsToCache, buildSearchIndexFromCache, closeDatabase, createCacheFromDB, deleteEmail, deleteEmailFromCache, deleteOldestEmails, deriveIndexKey, encryptAndStoreEmail, encryptAndStoreManyEmail, enforceMaxEmailNumber, getAllEmailsSortedNewestFirst, getAllEmailsSortedOldestFirst, getAndDecryptAllEmails, getAndDecryptEmail, getEmailBatch, getEmailCount, getEmailFromCache, openDatabase, removeEmailFromSearchIndex, searchEmails } from "./email-search.mjs";
|
|
7
|
-
import {
|
|
8
|
+
import { getBytesFromData, getBytesFromDataArray, hashData, hashDataArray, hashDataArrayWithKey, hashDataWithKey } from "./hash.mjs";
|
|
8
9
|
import { createEncryptionAndRecoveryKeystores, openEncryptionKeystore, openRecoveryKeystore } from "./keystore-crypto.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import { decryptSymmetrically,
|
|
11
|
-
import { UTF8ToUint8,
|
|
10
|
+
import { decapsulateKyber, encapsulateKyber, generateKyberKeys } from "./post-quantum-crypto.mjs";
|
|
11
|
+
import { decryptSymmetrically, encryptSymmetrically, genSymmetricKey } from "./symmetric-crypto.mjs";
|
|
12
|
+
import { UTF8ToUint8, base64ToUint8Array, bytesToMnemonic, bytesToUuid, genMnemonic, generateUuid, hexToUint8Array, mnemonicToBytes, uint8ArrayToBase64, uint8ArrayToHex, uint8ToUTF8, uuidToBytes } from "./utils.mjs";
|
|
12
13
|
|
|
13
14
|
//#region src/key-wrapper/aesWrapper.d.ts
|
|
14
15
|
/**
|
|
15
16
|
* Unwraps the given wrapped key
|
|
16
17
|
*
|
|
17
|
-
* @param encryptedKey - The
|
|
18
|
-
* @param wrappingKey - The secret key used for
|
|
19
|
-
* @returns The resulting
|
|
18
|
+
* @param encryptedKey - The wrapped key
|
|
19
|
+
* @param wrappingKey - The secret key used for unwrapping
|
|
20
|
+
* @returns The resulting key
|
|
20
21
|
*/
|
|
21
|
-
declare function unwrapKey(encryptedKey: Uint8Array, wrappingKey:
|
|
22
|
+
declare function unwrapKey(encryptedKey: Uint8Array, wrappingKey: Uint8Array): Promise<Uint8Array>;
|
|
22
23
|
/**
|
|
23
|
-
* Wraps the given
|
|
24
|
+
* Wraps the given key
|
|
24
25
|
*
|
|
25
|
-
* @param
|
|
26
|
+
* @param key - The key to be wrapped
|
|
26
27
|
* @param wrappingKey - The secret key used for wrapping
|
|
27
28
|
* @returns The resulting ciphertext
|
|
28
29
|
*/
|
|
29
|
-
declare function wrapKey(
|
|
30
|
+
declare function wrapKey(key: Uint8Array, wrappingKey: Uint8Array): Promise<Uint8Array>;
|
|
30
31
|
//#endregion
|
|
31
|
-
export {
|
|
32
|
+
export { AES_KEY_BYTE_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, DB_LABEL, DB_VERSION, Email, EmailBody, EmailBodyEncrypted, EmailPublicParameters, EmailSearchResult, EncryptedKeystore, HybridEncKey, HybridEncryptedEmail, HybridKeyPair, IV_LEN_BYTES, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, KeystoreType, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH, MailCache, PwdProtectedEmail, PwdProtectedKey, RecipientWithPublicKey, StoredEmail, UTF8ToUint8, User, XWING_CIPHERTEXT_BYTE_LENGTH, XWING_PUBLIC_KEY_LENGTH, XWING_SECRET_KEY_LENGTH, XWING_SEED_BYTE_LENGTH, addEmailToCache, addEmailToSearchIndex, addEmailsToCache, base64ToUint8Array, buildSearchIndexFromCache, bytesToMnemonic, bytesToUuid, closeDatabase, createCacheFromDB, createEncryptionAndRecoveryKeystores, createPwdProtectedEmail, decapsulateKyber, decryptEmailHybrid, decryptPwdProtectedEmail, decryptSymmetrically, deleteEmail, deleteEmailFromCache, deleteOldestEmails, deriveIndexKey, deriveSecretKey, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, encapsulateKyber, encryptAndStoreEmail, encryptAndStoreManyEmail, encryptEmailHybrid, encryptEmailHybridForMultipleRecipients, encryptSymmetrically, enforceMaxEmailNumber, genMnemonic, genSymmetricKey, generateEccKeys, generateEmailKeys, generateKyberKeys, generateUuid, getAllEmailsSortedNewestFirst, getAllEmailsSortedOldestFirst, getAndDecryptAllEmails, getAndDecryptEmail, getBytesFromData, getBytesFromDataArray, getEmailBatch, getEmailCount, getEmailFromCache, getKeyFromPassword, getKeyFromPasswordAndSalt, hashData, hashDataArray, hashDataArrayWithKey, hashDataWithKey, hexToUint8Array, mnemonicToBytes, openDatabase, openEncryptionKeystore, openRecoveryKeystore, removeEmailFromSearchIndex, searchEmails, uint8ArrayToBase64, uint8ArrayToHex, uint8ToUTF8, unwrapKey, uuidToBytes, wrapKey };
|
|
32
33
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/key-wrapper/aesWrapper.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/key-wrapper/aesWrapper.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;iBASsB,SAAA,CAAU,YAAA,EAAc,UAAA,EAAY,WAAA,EAAa,UAAA,GAAa,OAAA,CAAQ,UAAA;;;;;;;AAA5F;iBAWsB,OAAA,CAAQ,GAAA,EAAK,UAAA,EAAY,WAAA,EAAa,UAAA,GAAa,OAAA,CAAQ,UAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { deriveSecretKey,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { deriveSecretKey, generateEccKeys } from "./asymmetric-crypto.js";
|
|
2
|
+
import { AES_KEY_BYTE_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, DB_LABEL, DB_VERSION, IV_LEN_BYTES, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH, XWING_CIPHERTEXT_BYTE_LENGTH, XWING_PUBLIC_KEY_LENGTH, XWING_SECRET_KEY_LENGTH, XWING_SEED_BYTE_LENGTH } from "./constants.js";
|
|
3
|
+
import { deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys } from "./derive-key.js";
|
|
4
|
+
import { getKeyFromPassword, getKeyFromPasswordAndSalt } from "./derive-password.js";
|
|
5
|
+
import { Email, EmailBody, EmailBodyEncrypted, EmailPublicParameters, EmailSearchResult, EncryptedKeystore, HybridEncKey, HybridEncryptedEmail, HybridKeyPair, KeystoreType, MailCache, PwdProtectedEmail, PwdProtectedKey, RecipientWithPublicKey, StoredEmail, User } from "./types.js";
|
|
5
6
|
import { createPwdProtectedEmail, decryptEmailHybrid, decryptPwdProtectedEmail, encryptEmailHybrid, encryptEmailHybridForMultipleRecipients, generateEmailKeys } from "./email-crypto.js";
|
|
6
7
|
import { addEmailToCache, addEmailToSearchIndex, addEmailsToCache, buildSearchIndexFromCache, closeDatabase, createCacheFromDB, deleteEmail, deleteEmailFromCache, deleteOldestEmails, deriveIndexKey, encryptAndStoreEmail, encryptAndStoreManyEmail, enforceMaxEmailNumber, getAllEmailsSortedNewestFirst, getAllEmailsSortedOldestFirst, getAndDecryptAllEmails, getAndDecryptEmail, getEmailBatch, getEmailCount, getEmailFromCache, openDatabase, removeEmailFromSearchIndex, searchEmails } from "./email-search.js";
|
|
7
|
-
import {
|
|
8
|
+
import { getBytesFromData, getBytesFromDataArray, hashData, hashDataArray, hashDataArrayWithKey, hashDataWithKey } from "./hash.js";
|
|
8
9
|
import { createEncryptionAndRecoveryKeystores, openEncryptionKeystore, openRecoveryKeystore } from "./keystore-crypto.js";
|
|
9
|
-
import {
|
|
10
|
-
import { decryptSymmetrically,
|
|
11
|
-
import { UTF8ToUint8,
|
|
10
|
+
import { decapsulateKyber, encapsulateKyber, generateKyberKeys } from "./post-quantum-crypto.js";
|
|
11
|
+
import { decryptSymmetrically, encryptSymmetrically, genSymmetricKey } from "./symmetric-crypto.js";
|
|
12
|
+
import { UTF8ToUint8, base64ToUint8Array, bytesToMnemonic, bytesToUuid, genMnemonic, generateUuid, hexToUint8Array, mnemonicToBytes, uint8ArrayToBase64, uint8ArrayToHex, uint8ToUTF8, uuidToBytes } from "./utils.js";
|
|
12
13
|
|
|
13
14
|
//#region src/key-wrapper/aesWrapper.d.ts
|
|
14
15
|
/**
|
|
15
16
|
* Unwraps the given wrapped key
|
|
16
17
|
*
|
|
17
|
-
* @param encryptedKey - The
|
|
18
|
-
* @param wrappingKey - The secret key used for
|
|
19
|
-
* @returns The resulting
|
|
18
|
+
* @param encryptedKey - The wrapped key
|
|
19
|
+
* @param wrappingKey - The secret key used for unwrapping
|
|
20
|
+
* @returns The resulting key
|
|
20
21
|
*/
|
|
21
|
-
declare function unwrapKey(encryptedKey: Uint8Array, wrappingKey:
|
|
22
|
+
declare function unwrapKey(encryptedKey: Uint8Array, wrappingKey: Uint8Array): Promise<Uint8Array>;
|
|
22
23
|
/**
|
|
23
|
-
* Wraps the given
|
|
24
|
+
* Wraps the given key
|
|
24
25
|
*
|
|
25
|
-
* @param
|
|
26
|
+
* @param key - The key to be wrapped
|
|
26
27
|
* @param wrappingKey - The secret key used for wrapping
|
|
27
28
|
* @returns The resulting ciphertext
|
|
28
29
|
*/
|
|
29
|
-
declare function wrapKey(
|
|
30
|
+
declare function wrapKey(key: Uint8Array, wrappingKey: Uint8Array): Promise<Uint8Array>;
|
|
30
31
|
//#endregion
|
|
31
|
-
export {
|
|
32
|
+
export { AES_KEY_BYTE_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, DB_LABEL, DB_VERSION, Email, EmailBody, EmailBodyEncrypted, EmailPublicParameters, EmailSearchResult, EncryptedKeystore, HybridEncKey, HybridEncryptedEmail, HybridKeyPair, IV_LEN_BYTES, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, KeystoreType, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH, MailCache, PwdProtectedEmail, PwdProtectedKey, RecipientWithPublicKey, StoredEmail, UTF8ToUint8, User, XWING_CIPHERTEXT_BYTE_LENGTH, XWING_PUBLIC_KEY_LENGTH, XWING_SECRET_KEY_LENGTH, XWING_SEED_BYTE_LENGTH, addEmailToCache, addEmailToSearchIndex, addEmailsToCache, base64ToUint8Array, buildSearchIndexFromCache, bytesToMnemonic, bytesToUuid, closeDatabase, createCacheFromDB, createEncryptionAndRecoveryKeystores, createPwdProtectedEmail, decapsulateKyber, decryptEmailHybrid, decryptPwdProtectedEmail, decryptSymmetrically, deleteEmail, deleteEmailFromCache, deleteOldestEmails, deriveIndexKey, deriveSecretKey, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, encapsulateKyber, encryptAndStoreEmail, encryptAndStoreManyEmail, encryptEmailHybrid, encryptEmailHybridForMultipleRecipients, encryptSymmetrically, enforceMaxEmailNumber, genMnemonic, genSymmetricKey, generateEccKeys, generateEmailKeys, generateKyberKeys, generateUuid, getAllEmailsSortedNewestFirst, getAllEmailsSortedOldestFirst, getAndDecryptAllEmails, getAndDecryptEmail, getBytesFromData, getBytesFromDataArray, getEmailBatch, getEmailCount, getEmailFromCache, getKeyFromPassword, getKeyFromPasswordAndSalt, hashData, hashDataArray, hashDataArrayWithKey, hashDataWithKey, hexToUint8Array, mnemonicToBytes, openDatabase, openEncryptionKeystore, openRecoveryKeystore, removeEmailFromSearchIndex, searchEmails, uint8ArrayToBase64, uint8ArrayToHex, uint8ToUTF8, unwrapKey, uuidToBytes, wrapKey };
|
|
32
33
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/key-wrapper/aesWrapper.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/key-wrapper/aesWrapper.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;iBASsB,SAAA,CAAU,YAAA,EAAc,UAAA,EAAY,WAAA,EAAa,UAAA,GAAa,OAAA,CAAQ,UAAA;;;;;;;AAA5F;iBAWsB,OAAA,CAAQ,GAAA,EAAK,UAAA,EAAY,WAAA,EAAa,UAAA,GAAa,OAAA,CAAQ,UAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,40 +1,31 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_asymmetric_crypto = require('./asymmetric-crypto.js');
|
|
2
3
|
const require_constants = require('./constants.js');
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const require_aes = require('./aes-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
4
|
+
const require_genID = require('./genID-cWOPmspk.js');
|
|
5
|
+
const require_deriveKeysFromKey = require('./deriveKeysFromKey-C4McqO6_.js');
|
|
6
|
+
const require_deriveKeysFromPassword = require('./deriveKeysFromPassword-C7xAGGsh.js');
|
|
7
|
+
const require_aes = require('./aes-CuW_SPl-.js');
|
|
8
|
+
const require_core = require('./core-Bj26rNdA.js');
|
|
9
|
+
const require_email_crypto = require('./email-crypto.js');
|
|
10
|
+
const require_search = require('./search-DUTm4-rN.js');
|
|
11
|
+
const require_hash = require('./hash.js');
|
|
11
12
|
const require_types = require('./types.js');
|
|
12
|
-
const require_emailEncryptionKey = require('./emailEncryptionKey-
|
|
13
|
+
const require_emailEncryptionKey = require('./emailEncryptionKey-C4X1Bwy4.js');
|
|
14
|
+
const require_post_quantum_crypto = require('./post-quantum-crypto.js');
|
|
13
15
|
|
|
14
|
-
exports.
|
|
15
|
-
exports.AES_KEY_BIT_LENGTH = require_constants.AES_KEY_BIT_LENGTH;
|
|
16
|
+
exports.AES_KEY_BYTE_LENGTH = require_constants.AES_KEY_BYTE_LENGTH;
|
|
16
17
|
exports.ARGON2ID_ITERATIONS = require_constants.ARGON2ID_ITERATIONS;
|
|
17
18
|
exports.ARGON2ID_MEMORY_SIZE = require_constants.ARGON2ID_MEMORY_SIZE;
|
|
18
19
|
exports.ARGON2ID_OUTPUT_BYTE_LENGTH = require_constants.ARGON2ID_OUTPUT_BYTE_LENGTH;
|
|
19
20
|
exports.ARGON2ID_PARALLELISM = require_constants.ARGON2ID_PARALLELISM;
|
|
20
21
|
exports.ARGON2ID_SALT_BYTE_LENGTH = require_constants.ARGON2ID_SALT_BYTE_LENGTH;
|
|
21
|
-
exports.AUX_BYTE_LEN = require_constants.AUX_BYTE_LEN;
|
|
22
22
|
exports.CONTEXT_DERIVE = require_constants.CONTEXT_DERIVE;
|
|
23
23
|
exports.CONTEXT_ENC_KEYSTORE = require_constants.CONTEXT_ENC_KEYSTORE;
|
|
24
24
|
exports.CONTEXT_INDEX = require_constants.CONTEXT_INDEX;
|
|
25
25
|
exports.CONTEXT_RECOVERY = require_constants.CONTEXT_RECOVERY;
|
|
26
|
-
exports.CONTEXT_WRAPPING = require_constants.CONTEXT_WRAPPING;
|
|
27
26
|
exports.DB_LABEL = require_constants.DB_LABEL;
|
|
28
27
|
exports.DB_VERSION = require_constants.DB_VERSION;
|
|
29
|
-
exports.ECC_ALGORITHM = require_constants.ECC_ALGORITHM;
|
|
30
|
-
exports.HASH_BIT_LEN = require_constants.HASH_BIT_LEN;
|
|
31
28
|
exports.IV_LEN_BYTES = require_constants.IV_LEN_BYTES;
|
|
32
|
-
exports.KEY_FORMAT = require_constants.KEY_FORMAT;
|
|
33
|
-
exports.KEY_WRAPPING_ALGORITHM = require_constants.KEY_WRAPPING_ALGORITHM;
|
|
34
|
-
exports.KYBER1024_PUBLIC_KEY_LENGTH = require_constants.KYBER1024_PUBLIC_KEY_LENGTH;
|
|
35
|
-
exports.KYBER1024_SECRET_KEY_LENGTH = require_constants.KYBER1024_SECRET_KEY_LENGTH;
|
|
36
|
-
exports.KYBER512_PUBLIC_KEY_LENGTH = require_constants.KYBER512_PUBLIC_KEY_LENGTH;
|
|
37
|
-
exports.KYBER512_SECRET_KEY_LENGTH = require_constants.KYBER512_SECRET_KEY_LENGTH;
|
|
38
29
|
exports.KYBER768_PUBLIC_KEY_LENGTH = require_constants.KYBER768_PUBLIC_KEY_LENGTH;
|
|
39
30
|
exports.KYBER768_SECRET_KEY_LENGTH = require_constants.KYBER768_SECRET_KEY_LENGTH;
|
|
40
31
|
exports.KYBER_SEED_LENGTH = require_constants.KYBER_SEED_LENGTH;
|
|
@@ -42,84 +33,70 @@ exports.KeystoreType = require_types.KeystoreType;
|
|
|
42
33
|
exports.MAX_CACHE_SIZE = require_constants.MAX_CACHE_SIZE;
|
|
43
34
|
exports.MAX_EMAIL_PER_BATCH = require_constants.MAX_EMAIL_PER_BATCH;
|
|
44
35
|
exports.UTF8ToUint8 = require_genID.UTF8ToUint8;
|
|
45
|
-
exports.
|
|
46
|
-
exports.
|
|
47
|
-
exports.
|
|
48
|
-
exports.
|
|
36
|
+
exports.XWING_CIPHERTEXT_BYTE_LENGTH = require_constants.XWING_CIPHERTEXT_BYTE_LENGTH;
|
|
37
|
+
exports.XWING_PUBLIC_KEY_LENGTH = require_constants.XWING_PUBLIC_KEY_LENGTH;
|
|
38
|
+
exports.XWING_SECRET_KEY_LENGTH = require_constants.XWING_SECRET_KEY_LENGTH;
|
|
39
|
+
exports.XWING_SEED_BYTE_LENGTH = require_constants.XWING_SEED_BYTE_LENGTH;
|
|
40
|
+
exports.addEmailToCache = require_search.addEmailToCache;
|
|
41
|
+
exports.addEmailToSearchIndex = require_search.addEmailToSearchIndex;
|
|
42
|
+
exports.addEmailsToCache = require_search.addEmailsToCache;
|
|
49
43
|
exports.base64ToUint8Array = require_genID.base64ToUint8Array;
|
|
50
|
-
exports.buildSearchIndexFromCache =
|
|
44
|
+
exports.buildSearchIndexFromCache = require_search.buildSearchIndexFromCache;
|
|
51
45
|
exports.bytesToMnemonic = require_genID.bytesToMnemonic;
|
|
52
46
|
exports.bytesToUuid = require_genID.bytesToUuid;
|
|
53
|
-
exports.closeDatabase =
|
|
54
|
-
exports.
|
|
55
|
-
exports.createCacheFromDB = require_email_search.createCacheFromDB;
|
|
47
|
+
exports.closeDatabase = require_search.closeDatabase;
|
|
48
|
+
exports.createCacheFromDB = require_search.createCacheFromDB;
|
|
56
49
|
exports.createEncryptionAndRecoveryKeystores = require_emailEncryptionKey.createEncryptionAndRecoveryKeystores;
|
|
57
|
-
exports.createPwdProtectedEmail =
|
|
58
|
-
exports.decapsulateKyber =
|
|
59
|
-
exports.decryptEmailHybrid =
|
|
60
|
-
exports.decryptPwdProtectedEmail =
|
|
50
|
+
exports.createPwdProtectedEmail = require_email_crypto.createPwdProtectedEmail;
|
|
51
|
+
exports.decapsulateKyber = require_post_quantum_crypto.decapsulateKyber;
|
|
52
|
+
exports.decryptEmailHybrid = require_email_crypto.decryptEmailHybrid;
|
|
53
|
+
exports.decryptPwdProtectedEmail = require_email_crypto.decryptPwdProtectedEmail;
|
|
61
54
|
exports.decryptSymmetrically = require_aes.decryptSymmetrically;
|
|
62
|
-
exports.deleteEmail =
|
|
63
|
-
exports.deleteEmailFromCache =
|
|
64
|
-
exports.deleteOldestEmails =
|
|
65
|
-
exports.deriveIndexKey =
|
|
66
|
-
exports.deriveSecretKey =
|
|
67
|
-
exports.
|
|
68
|
-
exports.
|
|
69
|
-
exports.
|
|
70
|
-
exports.
|
|
71
|
-
exports.
|
|
72
|
-
exports.
|
|
73
|
-
exports.
|
|
74
|
-
exports.encryptAndStoreEmail = require_email_search.encryptAndStoreEmail;
|
|
75
|
-
exports.encryptAndStoreManyEmail = require_email_search.encryptAndStoreManyEmail;
|
|
76
|
-
exports.encryptEmailHybrid = require_emailKeys.encryptEmailHybrid;
|
|
77
|
-
exports.encryptEmailHybridForMultipleRecipients = require_emailKeys.encryptEmailHybridForMultipleRecipients;
|
|
55
|
+
exports.deleteEmail = require_search.deleteEmail;
|
|
56
|
+
exports.deleteEmailFromCache = require_search.deleteEmailFromCache;
|
|
57
|
+
exports.deleteOldestEmails = require_search.deleteOldestEmails;
|
|
58
|
+
exports.deriveIndexKey = require_search.deriveIndexKey;
|
|
59
|
+
exports.deriveSecretKey = require_asymmetric_crypto.deriveSecretKey;
|
|
60
|
+
exports.deriveSymmetricKeyFromContext = require_deriveKeysFromKey.deriveSymmetricKeyFromContext;
|
|
61
|
+
exports.deriveSymmetricKeyFromTwoKeys = require_deriveKeysFromKey.deriveSymmetricKeyFromTwoKeys;
|
|
62
|
+
exports.encapsulateKyber = require_post_quantum_crypto.encapsulateKyber;
|
|
63
|
+
exports.encryptAndStoreEmail = require_search.encryptAndStoreEmail;
|
|
64
|
+
exports.encryptAndStoreManyEmail = require_search.encryptAndStoreManyEmail;
|
|
65
|
+
exports.encryptEmailHybrid = require_email_crypto.encryptEmailHybrid;
|
|
66
|
+
exports.encryptEmailHybridForMultipleRecipients = require_email_crypto.encryptEmailHybridForMultipleRecipients;
|
|
78
67
|
exports.encryptSymmetrically = require_aes.encryptSymmetrically;
|
|
79
|
-
exports.enforceMaxEmailNumber =
|
|
80
|
-
exports.exportPrivateKey = require_keys.exportPrivateKey;
|
|
81
|
-
exports.exportPublicKey = require_keys.exportPublicKey;
|
|
82
|
-
exports.exportSymmetricCryptoKey = require_aes.exportSymmetricCryptoKey;
|
|
68
|
+
exports.enforceMaxEmailNumber = require_search.enforceMaxEmailNumber;
|
|
83
69
|
exports.genMnemonic = require_genID.genMnemonic;
|
|
84
|
-
exports.genSymmetricCryptoKey = require_aes.genSymmetricCryptoKey;
|
|
85
70
|
exports.genSymmetricKey = require_aes.genSymmetricKey;
|
|
86
|
-
exports.generateEccKeys =
|
|
87
|
-
exports.generateEmailKeys =
|
|
88
|
-
exports.generateKyberKeys =
|
|
71
|
+
exports.generateEccKeys = require_asymmetric_crypto.generateEccKeys;
|
|
72
|
+
exports.generateEmailKeys = require_email_crypto.generateEmailKeys;
|
|
73
|
+
exports.generateKyberKeys = require_post_quantum_crypto.generateKyberKeys;
|
|
89
74
|
exports.generateUuid = require_genID.generateUuid;
|
|
90
|
-
exports.getAllEmailsSortedNewestFirst =
|
|
91
|
-
exports.getAllEmailsSortedOldestFirst =
|
|
92
|
-
exports.getAndDecryptAllEmails =
|
|
93
|
-
exports.getAndDecryptEmail =
|
|
94
|
-
exports.getBytesFromData =
|
|
95
|
-
exports.
|
|
96
|
-
exports.
|
|
97
|
-
exports.
|
|
98
|
-
exports.
|
|
99
|
-
exports.getEmailFromCache = require_email_search.getEmailFromCache;
|
|
75
|
+
exports.getAllEmailsSortedNewestFirst = require_search.getAllEmailsSortedNewestFirst;
|
|
76
|
+
exports.getAllEmailsSortedOldestFirst = require_search.getAllEmailsSortedOldestFirst;
|
|
77
|
+
exports.getAndDecryptAllEmails = require_search.getAndDecryptAllEmails;
|
|
78
|
+
exports.getAndDecryptEmail = require_search.getAndDecryptEmail;
|
|
79
|
+
exports.getBytesFromData = require_hash.getBytesFromData;
|
|
80
|
+
exports.getBytesFromDataArray = require_hash.getBytesFromDataArray;
|
|
81
|
+
exports.getEmailBatch = require_search.getEmailBatch;
|
|
82
|
+
exports.getEmailCount = require_search.getEmailCount;
|
|
83
|
+
exports.getEmailFromCache = require_search.getEmailFromCache;
|
|
100
84
|
exports.getKeyFromPassword = require_deriveKeysFromPassword.getKeyFromPassword;
|
|
101
85
|
exports.getKeyFromPasswordAndSalt = require_deriveKeysFromPassword.getKeyFromPasswordAndSalt;
|
|
102
|
-
exports.
|
|
103
|
-
exports.
|
|
104
|
-
exports.
|
|
105
|
-
exports.
|
|
106
|
-
exports.hashDataArrayWithKey = require_mac.hashDataArrayWithKey;
|
|
107
|
-
exports.hashDataArrayWithKeyHex = require_mac.hashDataArrayWithKeyHex;
|
|
86
|
+
exports.hashData = require_hash.hashData;
|
|
87
|
+
exports.hashDataArray = require_hash.hashDataArray;
|
|
88
|
+
exports.hashDataArrayWithKey = require_hash.hashDataArrayWithKey;
|
|
89
|
+
exports.hashDataWithKey = require_hash.hashDataWithKey;
|
|
108
90
|
exports.hexToUint8Array = require_genID.hexToUint8Array;
|
|
109
|
-
exports.importPrivateKey = require_keys.importPrivateKey;
|
|
110
|
-
exports.importPublicKey = require_keys.importPublicKey;
|
|
111
|
-
exports.importSymmetricCryptoKey = require_aes.importSymmetricCryptoKey;
|
|
112
91
|
exports.mnemonicToBytes = require_genID.mnemonicToBytes;
|
|
113
|
-
exports.openDatabase =
|
|
92
|
+
exports.openDatabase = require_search.openDatabase;
|
|
114
93
|
exports.openEncryptionKeystore = require_emailEncryptionKey.openEncryptionKeystore;
|
|
115
94
|
exports.openRecoveryKeystore = require_emailEncryptionKey.openRecoveryKeystore;
|
|
116
|
-
exports.
|
|
117
|
-
exports.
|
|
118
|
-
exports.searchEmails = require_email_search.searchEmails;
|
|
95
|
+
exports.removeEmailFromSearchIndex = require_search.removeEmailFromSearchIndex;
|
|
96
|
+
exports.searchEmails = require_search.searchEmails;
|
|
119
97
|
exports.uint8ArrayToBase64 = require_genID.uint8ArrayToBase64;
|
|
120
98
|
exports.uint8ArrayToHex = require_genID.uint8ArrayToHex;
|
|
121
99
|
exports.uint8ToUTF8 = require_genID.uint8ToUTF8;
|
|
122
|
-
exports.unwrapKey =
|
|
100
|
+
exports.unwrapKey = require_core.unwrapKey;
|
|
123
101
|
exports.uuidToBytes = require_genID.uuidToBytes;
|
|
124
|
-
exports.
|
|
125
|
-
exports.wrapKey = require_emailKeys.wrapKey;
|
|
102
|
+
exports.wrapKey = require_core.wrapKey;
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { a as genMnemonic, c as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
1
|
+
import { deriveSecretKey, generateEccKeys } from "./asymmetric-crypto.mjs";
|
|
2
|
+
import { AES_KEY_BYTE_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, DB_LABEL, DB_VERSION, IV_LEN_BYTES, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH, XWING_CIPHERTEXT_BYTE_LENGTH, XWING_PUBLIC_KEY_LENGTH, XWING_SECRET_KEY_LENGTH, XWING_SEED_BYTE_LENGTH } from "./constants.mjs";
|
|
3
|
+
import { a as genMnemonic, c as base64ToUint8Array, d as uint8ArrayToHex, f as uint8ToUTF8, i as bytesToMnemonic, l as hexToUint8Array, n as generateUuid, o as mnemonicToBytes, r as uuidToBytes, s as UTF8ToUint8, t as bytesToUuid, u as uint8ArrayToBase64 } from "./genID-D08K7JPr.mjs";
|
|
4
|
+
import { n as deriveSymmetricKeyFromTwoKeys, t as deriveSymmetricKeyFromContext } from "./deriveKeysFromKey-DPU_h7wr.mjs";
|
|
5
|
+
import { n as getKeyFromPasswordAndSalt, t as getKeyFromPassword } from "./deriveKeysFromPassword-DXgSvTNC.mjs";
|
|
6
|
+
import { n as encryptSymmetrically, r as genSymmetricKey, t as decryptSymmetrically } from "./aes-B8TA-JKq.mjs";
|
|
7
|
+
import { c as unwrapKey, l as wrapKey } from "./core-pEGygy6S.mjs";
|
|
8
|
+
import { createPwdProtectedEmail, decryptEmailHybrid, decryptPwdProtectedEmail, encryptEmailHybrid, encryptEmailHybridForMultipleRecipients, generateEmailKeys } from "./email-crypto.mjs";
|
|
9
|
+
import { C as getEmailCount, S as getEmailBatch, _ as enforceMaxEmailNumber, a as addEmailToCache, b as getAndDecryptAllEmails, c as deleteEmailFromCache, f as deleteEmail, g as encryptAndStoreManyEmail, h as encryptAndStoreEmail, i as searchEmails, l as getEmailFromCache, m as deriveIndexKey, n as buildSearchIndexFromCache, o as addEmailsToCache, p as deleteOldestEmails, r as removeEmailFromSearchIndex, s as createCacheFromDB, t as addEmailToSearchIndex, u as closeDatabase, v as getAllEmailsSortedNewestFirst, w as openDatabase, x as getAndDecryptEmail, y as getAllEmailsSortedOldestFirst } from "./search-B9YM3XAA.mjs";
|
|
10
|
+
import { getBytesFromData, getBytesFromDataArray, hashData, hashDataArray, hashDataArrayWithKey, hashDataWithKey } from "./hash.mjs";
|
|
10
11
|
import { KeystoreType } from "./types.mjs";
|
|
11
|
-
import { n as openEncryptionKeystore, r as openRecoveryKeystore, t as createEncryptionAndRecoveryKeystores } from "./emailEncryptionKey-
|
|
12
|
+
import { n as openEncryptionKeystore, r as openRecoveryKeystore, t as createEncryptionAndRecoveryKeystores } from "./emailEncryptionKey-BtSPYd9M.mjs";
|
|
13
|
+
import { decapsulateKyber, encapsulateKyber, generateKyberKeys } from "./post-quantum-crypto.mjs";
|
|
12
14
|
|
|
13
|
-
export {
|
|
15
|
+
export { AES_KEY_BYTE_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, DB_LABEL, DB_VERSION, IV_LEN_BYTES, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, KeystoreType, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH, UTF8ToUint8, XWING_CIPHERTEXT_BYTE_LENGTH, XWING_PUBLIC_KEY_LENGTH, XWING_SECRET_KEY_LENGTH, XWING_SEED_BYTE_LENGTH, addEmailToCache, addEmailToSearchIndex, addEmailsToCache, base64ToUint8Array, buildSearchIndexFromCache, bytesToMnemonic, bytesToUuid, closeDatabase, createCacheFromDB, createEncryptionAndRecoveryKeystores, createPwdProtectedEmail, decapsulateKyber, decryptEmailHybrid, decryptPwdProtectedEmail, decryptSymmetrically, deleteEmail, deleteEmailFromCache, deleteOldestEmails, deriveIndexKey, deriveSecretKey, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, encapsulateKyber, encryptAndStoreEmail, encryptAndStoreManyEmail, encryptEmailHybrid, encryptEmailHybridForMultipleRecipients, encryptSymmetrically, enforceMaxEmailNumber, genMnemonic, genSymmetricKey, generateEccKeys, generateEmailKeys, generateKyberKeys, generateUuid, getAllEmailsSortedNewestFirst, getAllEmailsSortedOldestFirst, getAndDecryptAllEmails, getAndDecryptEmail, getBytesFromData, getBytesFromDataArray, getEmailBatch, getEmailCount, getEmailFromCache, getKeyFromPassword, getKeyFromPasswordAndSalt, hashData, hashDataArray, hashDataArrayWithKey, hashDataWithKey, hexToUint8Array, mnemonicToBytes, openDatabase, openEncryptionKeystore, openRecoveryKeystore, removeEmailFromSearchIndex, searchEmails, uint8ArrayToBase64, uint8ArrayToHex, uint8ToUTF8, unwrapKey, uuidToBytes, wrapKey };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EncryptedKeystore, HybridKeyPair } from "./types.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/keystore-crypto/emailEncryptionKey.d.ts
|
|
4
4
|
/**
|
|
5
|
-
* Generates
|
|
5
|
+
* Generates hybrid keys and creates encrypted main and recovery keystores
|
|
6
6
|
* The main keystore encryption key is derived from the base key (stored in session storage)
|
|
7
7
|
* The recovery keystore encryption key is derived from the recovery codes
|
|
8
8
|
*
|
|
9
|
-
* @returns The encryption and recovery keystores, recovery codes and
|
|
9
|
+
* @returns The encryption and recovery keystores, recovery codes and hybrid keys
|
|
10
10
|
*/
|
|
11
11
|
declare function createEncryptionAndRecoveryKeystores(userEmail: string, baseKey: Uint8Array): Promise<{
|
|
12
12
|
encryptionKeystore: EncryptedKeystore;
|
|
13
13
|
recoveryKeystore: EncryptedKeystore;
|
|
14
14
|
recoveryCodes: string;
|
|
15
|
-
keys:
|
|
15
|
+
keys: HybridKeyPair;
|
|
16
16
|
}>;
|
|
17
17
|
/**
|
|
18
18
|
* Opens the encryption keystore and returns the email encryption keys
|
|
@@ -22,7 +22,7 @@ declare function createEncryptionAndRecoveryKeystores(userEmail: string, baseKey
|
|
|
22
22
|
* @param baseKey - The base key from which the decryption key will be derived
|
|
23
23
|
* @returns The encryption keys
|
|
24
24
|
*/
|
|
25
|
-
declare function openEncryptionKeystore(encryptedKeystore: EncryptedKeystore, baseKey: Uint8Array): Promise<
|
|
25
|
+
declare function openEncryptionKeystore(encryptedKeystore: EncryptedKeystore, baseKey: Uint8Array): Promise<HybridKeyPair>;
|
|
26
26
|
/**
|
|
27
27
|
* Opens the recovery keystore and returns the email encryption keys
|
|
28
28
|
* The decryption key is derived from the base key (stored in session storage)
|
|
@@ -31,7 +31,7 @@ declare function openEncryptionKeystore(encryptedKeystore: EncryptedKeystore, ba
|
|
|
31
31
|
* @param encryptedKeystore - The encrypted keystore containing encryption keys
|
|
32
32
|
* @returns The encryption keys
|
|
33
33
|
*/
|
|
34
|
-
declare function openRecoveryKeystore(recoveryCodes: string, encryptedKeystore: EncryptedKeystore): Promise<
|
|
34
|
+
declare function openRecoveryKeystore(recoveryCodes: string, encryptedKeystore: EncryptedKeystore): Promise<HybridKeyPair>;
|
|
35
35
|
//#endregion
|
|
36
36
|
export { createEncryptionAndRecoveryKeystores, openEncryptionKeystore, openRecoveryKeystore };
|
|
37
37
|
//# sourceMappingURL=keystore-crypto.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystore-crypto.d.mts","names":[],"sources":["../src/keystore-crypto/emailEncryptionKey.ts"],"mappings":";;;;;AAYA;;;;;iBAAsB,oCAAA,CACpB,SAAA,UACA,OAAA,EAAS,UAAA,GACR,OAAA;EACD,kBAAA,EAAoB,iBAAA;EACpB,gBAAA,EAAkB,iBAAA;EAClB,aAAA;EACA,IAAA,EAAM,
|
|
1
|
+
{"version":3,"file":"keystore-crypto.d.mts","names":[],"sources":["../src/keystore-crypto/emailEncryptionKey.ts"],"mappings":";;;;;AAYA;;;;;iBAAsB,oCAAA,CACpB,SAAA,UACA,OAAA,EAAS,UAAA,GACR,OAAA;EACD,kBAAA,EAAoB,iBAAA;EACpB,gBAAA,EAAkB,iBAAA;EAClB,aAAA;EACA,IAAA,EAAM,aAAA;AAAA;;;;;;;;;iBA0Bc,sBAAA,CACpB,iBAAA,EAAmB,iBAAA,EACnB,OAAA,EAAS,UAAA,GACR,OAAA,CAAQ,aAAA;;;;AAHX;;;;;iBAwBsB,oBAAA,CACpB,aAAA,UACA,iBAAA,EAAmB,iBAAA,GAClB,OAAA,CAAQ,aAAA"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EncryptedKeystore, HybridKeyPair } from "./types.js";
|
|
2
2
|
|
|
3
3
|
//#region src/keystore-crypto/emailEncryptionKey.d.ts
|
|
4
4
|
/**
|
|
5
|
-
* Generates
|
|
5
|
+
* Generates hybrid keys and creates encrypted main and recovery keystores
|
|
6
6
|
* The main keystore encryption key is derived from the base key (stored in session storage)
|
|
7
7
|
* The recovery keystore encryption key is derived from the recovery codes
|
|
8
8
|
*
|
|
9
|
-
* @returns The encryption and recovery keystores, recovery codes and
|
|
9
|
+
* @returns The encryption and recovery keystores, recovery codes and hybrid keys
|
|
10
10
|
*/
|
|
11
11
|
declare function createEncryptionAndRecoveryKeystores(userEmail: string, baseKey: Uint8Array): Promise<{
|
|
12
12
|
encryptionKeystore: EncryptedKeystore;
|
|
13
13
|
recoveryKeystore: EncryptedKeystore;
|
|
14
14
|
recoveryCodes: string;
|
|
15
|
-
keys:
|
|
15
|
+
keys: HybridKeyPair;
|
|
16
16
|
}>;
|
|
17
17
|
/**
|
|
18
18
|
* Opens the encryption keystore and returns the email encryption keys
|
|
@@ -22,7 +22,7 @@ declare function createEncryptionAndRecoveryKeystores(userEmail: string, baseKey
|
|
|
22
22
|
* @param baseKey - The base key from which the decryption key will be derived
|
|
23
23
|
* @returns The encryption keys
|
|
24
24
|
*/
|
|
25
|
-
declare function openEncryptionKeystore(encryptedKeystore: EncryptedKeystore, baseKey: Uint8Array): Promise<
|
|
25
|
+
declare function openEncryptionKeystore(encryptedKeystore: EncryptedKeystore, baseKey: Uint8Array): Promise<HybridKeyPair>;
|
|
26
26
|
/**
|
|
27
27
|
* Opens the recovery keystore and returns the email encryption keys
|
|
28
28
|
* The decryption key is derived from the base key (stored in session storage)
|
|
@@ -31,7 +31,7 @@ declare function openEncryptionKeystore(encryptedKeystore: EncryptedKeystore, ba
|
|
|
31
31
|
* @param encryptedKeystore - The encrypted keystore containing encryption keys
|
|
32
32
|
* @returns The encryption keys
|
|
33
33
|
*/
|
|
34
|
-
declare function openRecoveryKeystore(recoveryCodes: string, encryptedKeystore: EncryptedKeystore): Promise<
|
|
34
|
+
declare function openRecoveryKeystore(recoveryCodes: string, encryptedKeystore: EncryptedKeystore): Promise<HybridKeyPair>;
|
|
35
35
|
//#endregion
|
|
36
36
|
export { createEncryptionAndRecoveryKeystores, openEncryptionKeystore, openRecoveryKeystore };
|
|
37
37
|
//# sourceMappingURL=keystore-crypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystore-crypto.d.ts","names":[],"sources":["../src/keystore-crypto/emailEncryptionKey.ts"],"mappings":";;;;;AAYA;;;;;iBAAsB,oCAAA,CACpB,SAAA,UACA,OAAA,EAAS,UAAA,GACR,OAAA;EACD,kBAAA,EAAoB,iBAAA;EACpB,gBAAA,EAAkB,iBAAA;EAClB,aAAA;EACA,IAAA,EAAM,
|
|
1
|
+
{"version":3,"file":"keystore-crypto.d.ts","names":[],"sources":["../src/keystore-crypto/emailEncryptionKey.ts"],"mappings":";;;;;AAYA;;;;;iBAAsB,oCAAA,CACpB,SAAA,UACA,OAAA,EAAS,UAAA,GACR,OAAA;EACD,kBAAA,EAAoB,iBAAA;EACpB,gBAAA,EAAkB,iBAAA;EAClB,aAAA;EACA,IAAA,EAAM,aAAA;AAAA;;;;;;;;;iBA0Bc,sBAAA,CACpB,iBAAA,EAAmB,iBAAA,EACnB,OAAA,EAAS,UAAA,GACR,OAAA,CAAQ,aAAA;;;;AAHX;;;;;iBAwBsB,oBAAA,CACpB,aAAA,UACA,iBAAA,EAAmB,iBAAA,GAClB,OAAA,CAAQ,aAAA"}
|
package/dist/keystore-crypto.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_emailEncryptionKey = require('./emailEncryptionKey-
|
|
2
|
+
const require_emailEncryptionKey = require('./emailEncryptionKey-C4X1Bwy4.js');
|
|
3
3
|
|
|
4
4
|
exports.createEncryptionAndRecoveryKeystores = require_emailEncryptionKey.createEncryptionAndRecoveryKeystores;
|
|
5
5
|
exports.openEncryptionKeystore = require_emailEncryptionKey.openEncryptionKeystore;
|
package/dist/keystore-crypto.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as openEncryptionKeystore, r as openRecoveryKeystore, t as createEncryptionAndRecoveryKeystores } from "./emailEncryptionKey-
|
|
1
|
+
import { n as openEncryptionKeystore, r as openRecoveryKeystore, t as createEncryptionAndRecoveryKeystores } from "./emailEncryptionKey-BtSPYd9M.mjs";
|
|
2
2
|
|
|
3
3
|
export { createEncryptionAndRecoveryKeystores, openEncryptionKeystore, openRecoveryKeystore };
|