internxt-crypto 0.0.11 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{symmetric-crypto-CrdS1Che.mjs → aes-DCb9dJqb.mjs} +10 -46
- package/dist/aes-DCb9dJqb.mjs.map +1 -0
- package/dist/{symmetric-crypto-D65zB396.js → aes-DQo1MyCz.js} +13 -54
- package/dist/aes-DQo1MyCz.js.map +1 -0
- package/dist/asymmetric-crypto.d.mts +1 -4
- package/dist/asymmetric-crypto.d.mts.map +1 -0
- package/dist/asymmetric-crypto.d.ts +1 -4
- package/dist/asymmetric-crypto.d.ts.map +1 -0
- package/dist/asymmetric-crypto.js +8 -7
- package/dist/asymmetric-crypto.mjs +1 -1
- package/dist/{chunk-DWirmd9C.mjs → chunk-DQk6qfdC.mjs} +3 -3
- package/dist/{chunk-Dt-PWiN7.js → chunk-EbLFQX5m.js} +3 -3
- package/dist/constants.d.mts +5 -5
- package/dist/constants.d.mts.map +1 -0
- package/dist/constants.d.ts +5 -5
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +63 -30
- package/dist/constants.js.map +1 -0
- package/dist/constants.mjs +33 -2
- package/dist/constants.mjs.map +1 -0
- package/dist/derive-key.d.mts +1 -4
- package/dist/derive-key.d.mts.map +1 -0
- package/dist/derive-key.d.ts +1 -4
- package/dist/derive-key.d.ts.map +1 -0
- package/dist/derive-key.js +12 -14
- package/dist/derive-key.mjs +1 -4
- package/dist/{derive-key-CBf2WxJd.js → deriveKeysFromPassword-BYaiSGKL.js} +26 -52
- package/dist/deriveKeysFromPassword-BYaiSGKL.js.map +1 -0
- package/dist/{derive-key-Be7hS-cN.mjs → deriveKeysFromPassword-XIwzErlL.mjs} +7 -28
- package/dist/deriveKeysFromPassword-XIwzErlL.mjs.map +1 -0
- package/dist/email-crypto.d.mts +2 -5
- package/dist/email-crypto.d.mts.map +1 -0
- package/dist/email-crypto.d.ts +2 -5
- package/dist/email-crypto.d.ts.map +1 -0
- package/dist/email-crypto.js +12 -16
- package/dist/email-crypto.mjs +1 -6
- package/dist/email-search.d.mts +20 -23
- package/dist/email-search.d.mts.map +1 -0
- package/dist/email-search.d.ts +20 -23
- package/dist/email-search.d.ts.map +1 -0
- package/dist/email-search.js +25 -63
- package/dist/email-search.js.map +1 -1
- package/dist/email-search.mjs +17 -51
- package/dist/email-search.mjs.map +1 -1
- package/dist/{keystore-crypto-Bjgriq9h.mjs → emailEncryptionKey-B9xHw1h_.mjs} +12 -21
- package/dist/emailEncryptionKey-B9xHw1h_.mjs.map +1 -0
- package/dist/{keystore-crypto-B4yCVo9l.js → emailEncryptionKey-CQNe5W_T.js} +25 -40
- package/dist/emailEncryptionKey-CQNe5W_T.js.map +1 -0
- package/dist/{email-crypto-BrT98taw.js → emailKeys-C0KhtfNP.js} +67 -112
- package/dist/emailKeys-C0KhtfNP.js.map +1 -0
- package/dist/{email-crypto-DJUEjTxA.mjs → emailKeys-D4lp9NRv.mjs} +29 -75
- package/dist/emailKeys-D4lp9NRv.mjs.map +1 -0
- package/dist/{utils-DS04iUcX.mjs → genID-3Er5IowC.mjs} +4 -24
- package/dist/genID-3Er5IowC.mjs.map +1 -0
- package/dist/{utils-CNs3cyDj.js → genID-YJSl3YhL.js} +6 -31
- package/dist/genID-YJSl3YhL.js.map +1 -0
- package/dist/hash.d.mts +1 -4
- package/dist/hash.d.mts.map +1 -0
- package/dist/hash.d.ts +1 -4
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +11 -10
- package/dist/hash.mjs +1 -1
- package/dist/index.d.mts +19 -39
- package/dist/index.d.mts.map +1 -0
- package/dist/index.d.ts +19 -39
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +97 -88
- package/dist/index.mjs +12 -14
- package/dist/{asymmetric-crypto-CyXsV4XT.mjs → keys-BfcaiAOv.mjs} +3 -15
- package/dist/keys-BfcaiAOv.mjs.map +1 -0
- package/dist/{asymmetric-crypto-BORmLhnx.js → keys-CinT7kEY.js} +2 -20
- package/dist/keys-CinT7kEY.js.map +1 -0
- package/dist/keystore-crypto.d.mts +2 -5
- package/dist/keystore-crypto.d.mts.map +1 -0
- package/dist/keystore-crypto.d.ts +2 -5
- package/dist/keystore-crypto.d.ts.map +1 -0
- package/dist/keystore-crypto.js +5 -10
- package/dist/keystore-crypto.mjs +1 -7
- package/dist/kyber768-SXnIo-Nw.mjs +47 -0
- package/dist/kyber768-SXnIo-Nw.mjs.map +1 -0
- package/dist/kyber768-WUVc2fIR.js +65 -0
- package/dist/kyber768-WUVc2fIR.js.map +1 -0
- package/dist/{hash-BoqwNkcd.js → mac-BMb1F0dN.js} +3 -23
- package/dist/mac-BMb1F0dN.js.map +1 -0
- package/dist/{hash-CXeGAwai.mjs → mac-ZpRlx8Fs.mjs} +3 -18
- package/dist/mac-ZpRlx8Fs.mjs.map +1 -0
- package/dist/post-quantum-crypto.d.mts +32 -2
- package/dist/post-quantum-crypto.d.mts.map +1 -0
- package/dist/post-quantum-crypto.d.ts +32 -2
- package/dist/post-quantum-crypto.d.ts.map +1 -0
- package/dist/post-quantum-crypto.js +5 -16
- package/dist/post-quantum-crypto.mjs +2 -2
- package/dist/storage-service.d.mts +47 -2
- package/dist/storage-service.d.mts.map +1 -0
- package/dist/storage-service.d.ts +47 -2
- package/dist/storage-service.d.ts.map +1 -0
- package/dist/storage-service.js +58 -4
- package/dist/storage-service.js.map +1 -0
- package/dist/storage-service.mjs +55 -2
- package/dist/storage-service.mjs.map +1 -0
- package/dist/symmetric-crypto.d.mts +5 -8
- package/dist/symmetric-crypto.d.mts.map +1 -0
- package/dist/symmetric-crypto.d.ts +5 -8
- package/dist/symmetric-crypto.d.ts.map +1 -0
- package/dist/symmetric-crypto.js +9 -9
- package/dist/symmetric-crypto.mjs +1 -2
- package/dist/types.d.mts +108 -2
- package/dist/types.d.mts.map +1 -0
- package/dist/types.d.ts +108 -2
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -2
- package/dist/types.js.map +1 -0
- package/dist/types.mjs +9 -2
- package/dist/types.mjs.map +1 -0
- package/dist/utils.d.mts +2 -5
- package/dist/utils.d.mts.map +1 -0
- package/dist/utils.d.ts +2 -5
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +16 -15
- package/dist/utils.mjs +1 -1
- package/package.json +24 -14
- package/dist/asymmetric-crypto-BORmLhnx.js.map +0 -1
- package/dist/asymmetric-crypto-CyXsV4XT.mjs.map +0 -1
- package/dist/constants-Ccp21E03.js +0 -208
- package/dist/constants-Ccp21E03.js.map +0 -1
- package/dist/constants-kTeX-2T0.mjs +0 -34
- package/dist/constants-kTeX-2T0.mjs.map +0 -1
- package/dist/derive-key-Be7hS-cN.mjs.map +0 -1
- package/dist/derive-key-CBf2WxJd.js.map +0 -1
- package/dist/email-crypto-BrT98taw.js.map +0 -1
- package/dist/email-crypto-DJUEjTxA.mjs.map +0 -1
- package/dist/hash-BoqwNkcd.js.map +0 -1
- package/dist/hash-CXeGAwai.mjs.map +0 -1
- package/dist/index-CQqgKsbX.d.ts +0 -50
- package/dist/index-CintVUbp.d.ts +0 -97
- package/dist/index-D5pBU_A5.d.mts +0 -50
- package/dist/index-MaOov-ag.d.mts +0 -97
- package/dist/keystore-crypto-B4yCVo9l.js.map +0 -1
- package/dist/keystore-crypto-Bjgriq9h.mjs.map +0 -1
- package/dist/keystore-service.d.mts +0 -48
- package/dist/keystore-service.d.ts +0 -48
- package/dist/keystore-service.js +0 -122
- package/dist/keystore-service.js.map +0 -1
- package/dist/keystore-service.mjs +0 -114
- package/dist/keystore-service.mjs.map +0 -1
- package/dist/post-quantum-crypto-CAi-cEkV.js +0 -189
- package/dist/post-quantum-crypto-CAi-cEkV.js.map +0 -1
- package/dist/post-quantum-crypto-Vv34t6gX.mjs +0 -154
- package/dist/post-quantum-crypto-Vv34t6gX.mjs.map +0 -1
- package/dist/storage-service-BgIK2aYZ.js +0 -82
- package/dist/storage-service-BgIK2aYZ.js.map +0 -1
- package/dist/storage-service-CubCbhY2.mjs +0 -65
- package/dist/storage-service-CubCbhY2.mjs.map +0 -1
- package/dist/symmetric-crypto-CrdS1Che.mjs.map +0 -1
- package/dist/symmetric-crypto-D65zB396.js.map +0 -1
- package/dist/types-52g887Zi.js +0 -16
- package/dist/types-52g887Zi.js.map +0 -1
- package/dist/types-BiEoleqw.mjs +0 -10
- package/dist/types-BiEoleqw.mjs.map +0 -1
- package/dist/types-Ds3ivE9W.d.ts +0 -104
- package/dist/types-DwQJtrTx.d.mts +0 -104
- package/dist/utils-CNs3cyDj.js.map +0 -1
- package/dist/utils-DS04iUcX.mjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { r as getBytesFromData } from "./hash-CXeGAwai.mjs";
|
|
1
|
+
import { AES_ALGORITHM, AES_KEY_BIT_LENGTH, AUX_BYTE_LEN, IV_LEN_BYTES, KEY_FORMAT } from "./constants.mjs";
|
|
2
|
+
import { n as getBytesFromData } from "./mac-ZpRlx8Fs.mjs";
|
|
4
3
|
import { concatBytes } from "@noble/hashes/utils.js";
|
|
5
4
|
import { randomBytes } from "@noble/post-quantum/utils.js";
|
|
5
|
+
import { gcm } from "@noble/ciphers/webcrypto.js";
|
|
6
6
|
|
|
7
7
|
//#region src/symmetric-crypto/keys.ts
|
|
8
8
|
/**
|
|
@@ -48,13 +48,7 @@ async function genSymmetricCryptoKey() {
|
|
|
48
48
|
* @returns The generated Uint8Array.
|
|
49
49
|
*/
|
|
50
50
|
function genSymmetricKey() {
|
|
51
|
-
|
|
52
|
-
const key = new Uint8Array(AES_KEY_BIT_LENGTH / 8);
|
|
53
|
-
crypto.getRandomValues(key);
|
|
54
|
-
return key;
|
|
55
|
-
} catch (error) {
|
|
56
|
-
throw new Error("Failed to generate symmetric key", { cause: error });
|
|
57
|
-
}
|
|
51
|
+
return randomBytes(AES_KEY_BIT_LENGTH / 8);
|
|
58
52
|
}
|
|
59
53
|
/**
|
|
60
54
|
* Derives CryptoKey from the given key material
|
|
@@ -111,16 +105,7 @@ async function makeAuxFixedLength(aux) {
|
|
|
111
105
|
* @returns The resulting ciphertext
|
|
112
106
|
*/
|
|
113
107
|
async function encryptMessage(message, encryptionKey, iv, additionalData) {
|
|
114
|
-
|
|
115
|
-
const encrypted = await crypto.subtle.encrypt({
|
|
116
|
-
name: AES_ALGORITHM,
|
|
117
|
-
iv,
|
|
118
|
-
additionalData
|
|
119
|
-
}, encryptionKey, message);
|
|
120
|
-
return new Uint8Array(encrypted);
|
|
121
|
-
} catch (error) {
|
|
122
|
-
throw new Error("Failed to encrypt symmetrically", { cause: error });
|
|
123
|
-
}
|
|
108
|
+
return gcm(encryptionKey, iv, additionalData).encrypt(message);
|
|
124
109
|
}
|
|
125
110
|
/**
|
|
126
111
|
* Symmetrically decrypts message
|
|
@@ -132,16 +117,7 @@ async function encryptMessage(message, encryptionKey, iv, additionalData) {
|
|
|
132
117
|
* @returns The resulting decrypted message
|
|
133
118
|
*/
|
|
134
119
|
async function decryptMessage(ciphertext, iv, encryptionKey, additionalData) {
|
|
135
|
-
|
|
136
|
-
const decrypted = await crypto.subtle.decrypt({
|
|
137
|
-
name: AES_ALGORITHM,
|
|
138
|
-
iv,
|
|
139
|
-
additionalData
|
|
140
|
-
}, encryptionKey, ciphertext);
|
|
141
|
-
return new Uint8Array(decrypted);
|
|
142
|
-
} catch (error) {
|
|
143
|
-
throw new Error("Failed to decrypt symmetrically", { cause: error });
|
|
144
|
-
}
|
|
120
|
+
return gcm(encryptionKey, iv, additionalData).decrypt(ciphertext);
|
|
145
121
|
}
|
|
146
122
|
|
|
147
123
|
//#endregion
|
|
@@ -149,7 +125,7 @@ async function decryptMessage(ciphertext, iv, encryptionKey, additionalData) {
|
|
|
149
125
|
/**
|
|
150
126
|
* Symmetrically encrypts the message
|
|
151
127
|
*
|
|
152
|
-
* @param encryptionKey - The symmetric
|
|
128
|
+
* @param encryptionKey - The symmetric key used for message encryption
|
|
153
129
|
* @param message - The message to encrypt
|
|
154
130
|
* @param freeField - The context of the message (required for IV generation)
|
|
155
131
|
* @param aux - The auxilary string
|
|
@@ -166,7 +142,7 @@ async function encryptSymmetrically(encryptionKey, message, aux, freeField) {
|
|
|
166
142
|
/**
|
|
167
143
|
* Decryps symmetrically encrypted message
|
|
168
144
|
*
|
|
169
|
-
* @param encryptionKey - The symmetric
|
|
145
|
+
* @param encryptionKey - The symmetric key used for message encryption
|
|
170
146
|
* @param encryptedMessage - The ciphertext
|
|
171
147
|
* @param aux - The auxilary string
|
|
172
148
|
* @returns The resulting ciphertext.
|
|
@@ -181,17 +157,5 @@ async function decryptSymmetrically(encryptionKey, encryptedMessage, aux) {
|
|
|
181
157
|
}
|
|
182
158
|
|
|
183
159
|
//#endregion
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
decryptSymmetrically: () => decryptSymmetrically,
|
|
187
|
-
deriveSymmetricCryptoKey: () => deriveSymmetricCryptoKey,
|
|
188
|
-
encryptSymmetrically: () => encryptSymmetrically,
|
|
189
|
-
exportSymmetricCryptoKey: () => exportSymmetricCryptoKey,
|
|
190
|
-
genSymmetricCryptoKey: () => genSymmetricCryptoKey,
|
|
191
|
-
genSymmetricKey: () => genSymmetricKey,
|
|
192
|
-
importSymmetricCryptoKey: () => importSymmetricCryptoKey
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
//#endregion
|
|
196
|
-
export { exportSymmetricCryptoKey as a, importSymmetricCryptoKey as c, deriveSymmetricCryptoKey as i, decryptSymmetrically as n, genSymmetricCryptoKey as o, encryptSymmetrically as r, genSymmetricKey as s, symmetric_crypto_exports as t };
|
|
197
|
-
//# sourceMappingURL=symmetric-crypto-CrdS1Che.mjs.map
|
|
160
|
+
export { genSymmetricCryptoKey as a, exportSymmetricCryptoKey as i, encryptSymmetrically as n, genSymmetricKey as o, deriveSymmetricCryptoKey as r, importSymmetricCryptoKey as s, decryptSymmetrically as t };
|
|
161
|
+
//# sourceMappingURL=aes-DCb9dJqb.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aes-DCb9dJqb.mjs","names":["aeadCipher"],"sources":["../src/symmetric-crypto/keys.ts","../src/symmetric-crypto/core.ts","../src/symmetric-crypto/aes.ts"],"sourcesContent":["import { AES_ALGORITHM, AES_KEY_BIT_LENGTH, KEY_FORMAT } from '../constants';\nimport { randomBytes } from '@noble/post-quantum/utils.js';\nimport { getBytesFromData } from '../hash';\n\n/**\n * Converts Uint8Array into CryptoKey\n *\n * @param keyData - The Uint8Array representation of the symmetric key\n * @returns The resulting symmetric CryptoKey.\n */\nexport async function importSymmetricCryptoKey(keyData: Uint8Array | ArrayBuffer): Promise<CryptoKey> {\n return crypto.subtle.importKey(\n KEY_FORMAT,\n new Uint8Array(keyData),\n {\n name: AES_ALGORITHM,\n length: AES_KEY_BIT_LENGTH,\n },\n true,\n ['encrypt', 'decrypt'],\n );\n}\n\n/**\n * Converts CryptoKey into Uint8Array\n *\n * @param key - The symmetric CryptoKey\n * @returns The resulting Uint8Array.\n */\nexport async function exportSymmetricCryptoKey(key: CryptoKey): Promise<Uint8Array> {\n try {\n const rawKey = await crypto.subtle.exportKey(KEY_FORMAT, key);\n return new Uint8Array(rawKey);\n } catch (error) {\n throw new Error('Failed to export symmetric CryptoKey', { cause: error });\n }\n}\n\n/**\n * Generates symmetric CryptoKey\n *\n * @returns The generated CryptoKey.\n */\nexport async function genSymmetricCryptoKey(): Promise<CryptoKey> {\n return crypto.subtle.generateKey(\n {\n name: AES_ALGORITHM,\n length: AES_KEY_BIT_LENGTH,\n },\n true,\n ['encrypt', 'decrypt'],\n );\n}\n\n/**\n * Generates symmetric key as Uint8Array\n *\n * @returns The generated Uint8Array.\n */\nexport function genSymmetricKey(): Uint8Array {\n return randomBytes(AES_KEY_BIT_LENGTH / 8);\n}\n\n/**\n * Derives CryptoKey from the given key material\n *\n * @returns The derived CryptoKey.\n */\nexport async function deriveSymmetricCryptoKey(keyMaterial: Uint8Array): Promise<CryptoKey> {\n try {\n const hashBuffer = getBytesFromData(AES_KEY_BIT_LENGTH / 8, keyMaterial);\n return importSymmetricCryptoKey(hashBuffer);\n } catch (error) {\n throw new Error('Failed to derive CryptoKey from the given key material', { cause: error });\n }\n}\n","import { gcm as aeadCipher } from '@noble/ciphers/webcrypto.js';\nimport { randomBytes } from '@noble/post-quantum/utils.js';\nimport { getBytesFromData } from '../hash';\nimport { AUX_BYTE_LEN, IV_LEN_BYTES } from '../constants';\n\n/**\n * Creates an initialization vector (IV) using RGB-based construction (8.2.2 NIST Special Publication 800-38D)\n * Constructs a 128-bits IV from 2 fileds: the random field (at least 96 bits) and the free field (32 bits).\n * If free filed is empty, then the entier 128-bit IV is sampled randomly.\n *\n * @param freeFiled - The string with an unrestricted content. Can be a device identifier, etc.\n * @returns The resulting 128-bits initialization vector.\n */\nexport function createNISTbasedIV(freeField?: Uint8Array): Uint8Array {\n try {\n if (!freeField) {\n return randomBytes(IV_LEN_BYTES);\n }\n\n const iv = new Uint8Array(16);\n\n const randFiled = randomBytes(12);\n iv.set(randFiled, 0);\n\n const freeFiledFixedLength = getBytesFromData(4, freeField);\n iv.set(freeFiledFixedLength, 12);\n\n return iv;\n } catch (error) {\n throw new Error('Failed to create IV', { cause: error });\n }\n}\n\n/**\n * Hashes aux string to make it fixed-length\n *\n * @param aux - The auxilay string of arbitrary length\n * @returns The resulting fixed-length auxilary string.\n */\nexport async function makeAuxFixedLength(aux: Uint8Array): Promise<Uint8Array> {\n return getBytesFromData(AUX_BYTE_LEN, aux);\n}\n\n/**\n * Symmetrically encrypts message\n *\n * @param message - The message to encrypt\n * @param encryptionKey - The encryption key\n * @param iv - The initialization vector\n * @param additionalData - The auxilary data\n * @returns The resulting ciphertext\n */\nexport async function encryptMessage(\n message: Uint8Array,\n encryptionKey: Uint8Array,\n iv: Uint8Array,\n additionalData: Uint8Array,\n): Promise<Uint8Array> {\n return aeadCipher(encryptionKey, iv, additionalData).encrypt(message);\n}\n\n/**\n * Symmetrically decrypts message\n *\n * @param ciphertext - The encrypted message\n * @param ciphertext - The initialization vector\n * @param encryptionKey - The encryption key\n * @param additionalData - The auxilary data\n * @returns The resulting decrypted message\n */\nexport async function decryptMessage(\n ciphertext: Uint8Array,\n iv: Uint8Array,\n encryptionKey: Uint8Array,\n additionalData: Uint8Array,\n): Promise<Uint8Array> {\n return aeadCipher(encryptionKey, iv, additionalData).decrypt(ciphertext);\n}\n","import { createNISTbasedIV, makeAuxFixedLength, encryptMessage, decryptMessage } from './core';\nimport { concatBytes } from '@noble/hashes/utils.js';\nimport { IV_LEN_BYTES } from '../constants';\n\n/**\n * Symmetrically encrypts the message\n *\n * @param encryptionKey - The symmetric key used for message encryption\n * @param message - The message to encrypt\n * @param freeField - The context of the message (required for IV generation)\n * @param aux - The auxilary string\n * @returns The resulting ciphertext.\n */\nexport async function encryptSymmetrically(\n encryptionKey: Uint8Array,\n message: Uint8Array,\n aux: Uint8Array,\n freeField?: Uint8Array,\n): Promise<Uint8Array> {\n try {\n const iv = createNISTbasedIV(freeField);\n const additionalData = await makeAuxFixedLength(aux);\n const ciphertext = await encryptMessage(message, encryptionKey, iv, additionalData);\n return concatBytes(ciphertext, iv);\n } catch (error) {\n throw new Error('Failed to encrypt symmetrically', { cause: error });\n }\n}\n\n/**\n * Decryps symmetrically encrypted message\n *\n * @param encryptionKey - The symmetric key used for message encryption\n * @param encryptedMessage - The ciphertext\n * @param aux - The auxilary string\n * @returns The resulting ciphertext.\n */\nexport async function decryptSymmetrically(\n encryptionKey: Uint8Array,\n encryptedMessage: Uint8Array,\n aux: Uint8Array,\n): Promise<Uint8Array> {\n try {\n const additionalData = await makeAuxFixedLength(aux);\n const ciphertext = encryptedMessage.slice(0, encryptedMessage.length - IV_LEN_BYTES);\n const iv = encryptedMessage.slice(encryptedMessage.length - IV_LEN_BYTES);\n const result = await decryptMessage(ciphertext, iv, encryptionKey, additionalData);\n return result;\n } catch (error) {\n throw new Error('Failed to decrypt symmetrically', { cause: error });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAUA,eAAsB,yBAAyB,SAAuD;AACpG,QAAO,OAAO,OAAO,UACnB,YACA,IAAI,WAAW,QAAQ,EACvB;EACE,MAAM;EACN,QAAQ;EACT,EACD,MACA,CAAC,WAAW,UAAU,CACvB;;;;;;;;AASH,eAAsB,yBAAyB,KAAqC;AAClF,KAAI;EACF,MAAM,SAAS,MAAM,OAAO,OAAO,UAAU,YAAY,IAAI;AAC7D,SAAO,IAAI,WAAW,OAAO;UACtB,OAAO;AACd,QAAM,IAAI,MAAM,wCAAwC,EAAE,OAAO,OAAO,CAAC;;;;;;;;AAS7E,eAAsB,wBAA4C;AAChE,QAAO,OAAO,OAAO,YACnB;EACE,MAAM;EACN,QAAQ;EACT,EACD,MACA,CAAC,WAAW,UAAU,CACvB;;;;;;;AAQH,SAAgB,kBAA8B;AAC5C,QAAO,YAAY,qBAAqB,EAAE;;;;;;;AAQ5C,eAAsB,yBAAyB,aAA6C;AAC1F,KAAI;AAEF,SAAO,yBADY,iBAAiB,qBAAqB,GAAG,YAAY,CAC7B;UACpC,OAAO;AACd,QAAM,IAAI,MAAM,0DAA0D,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;;;;;AC5D/F,SAAgB,kBAAkB,WAAoC;AACpE,KAAI;AACF,MAAI,CAAC,UACH,QAAO,YAAY,aAAa;EAGlC,MAAM,KAAK,IAAI,WAAW,GAAG;EAE7B,MAAM,YAAY,YAAY,GAAG;AACjC,KAAG,IAAI,WAAW,EAAE;EAEpB,MAAM,uBAAuB,iBAAiB,GAAG,UAAU;AAC3D,KAAG,IAAI,sBAAsB,GAAG;AAEhC,SAAO;UACA,OAAO;AACd,QAAM,IAAI,MAAM,uBAAuB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;AAU5D,eAAsB,mBAAmB,KAAsC;AAC7E,QAAO,iBAAiB,cAAc,IAAI;;;;;;;;;;;AAY5C,eAAsB,eACpB,SACA,eACA,IACA,gBACqB;AACrB,QAAOA,IAAW,eAAe,IAAI,eAAe,CAAC,QAAQ,QAAQ;;;;;;;;;;;AAYvE,eAAsB,eACpB,YACA,IACA,eACA,gBACqB;AACrB,QAAOA,IAAW,eAAe,IAAI,eAAe,CAAC,QAAQ,WAAW;;;;;;;;;;;;;;AC/D1E,eAAsB,qBACpB,eACA,SACA,KACA,WACqB;AACrB,KAAI;EACF,MAAM,KAAK,kBAAkB,UAAU;AAGvC,SAAO,YADY,MAAM,eAAe,SAAS,eAAe,IADzC,MAAM,mBAAmB,IAAI,CAC+B,EACpD,GAAG;UAC3B,OAAO;AACd,QAAM,IAAI,MAAM,mCAAmC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;;AAYxE,eAAsB,qBACpB,eACA,kBACA,KACqB;AACrB,KAAI;EACF,MAAM,iBAAiB,MAAM,mBAAmB,IAAI;AAIpD,SADe,MAAM,eAFF,iBAAiB,MAAM,GAAG,iBAAiB,SAAS,aAAa,EACzE,iBAAiB,MAAM,iBAAiB,SAAS,aAAa,EACrB,eAAe,eAAe;UAE3E,OAAO;AACd,QAAM,IAAI,MAAM,mCAAmC,EAAE,OAAO,OAAO,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
const require_chunk = require('./chunk-
|
|
2
|
-
const require_constants = require('./constants
|
|
3
|
-
const
|
|
1
|
+
const require_chunk = require('./chunk-EbLFQX5m.js');
|
|
2
|
+
const require_constants = require('./constants.js');
|
|
3
|
+
const require_mac = require('./mac-BMb1F0dN.js');
|
|
4
4
|
let _noble_hashes_utils_js = require("@noble/hashes/utils.js");
|
|
5
5
|
let _noble_post_quantum_utils_js = require("@noble/post-quantum/utils.js");
|
|
6
|
+
let _noble_ciphers_webcrypto_js = require("@noble/ciphers/webcrypto.js");
|
|
6
7
|
|
|
7
8
|
//#region src/symmetric-crypto/keys.ts
|
|
8
9
|
/**
|
|
@@ -48,13 +49,7 @@ async function genSymmetricCryptoKey() {
|
|
|
48
49
|
* @returns The generated Uint8Array.
|
|
49
50
|
*/
|
|
50
51
|
function genSymmetricKey() {
|
|
51
|
-
|
|
52
|
-
const key = new Uint8Array(require_constants.AES_KEY_BIT_LENGTH / 8);
|
|
53
|
-
crypto.getRandomValues(key);
|
|
54
|
-
return key;
|
|
55
|
-
} catch (error) {
|
|
56
|
-
throw new Error("Failed to generate symmetric key", { cause: error });
|
|
57
|
-
}
|
|
52
|
+
return (0, _noble_post_quantum_utils_js.randomBytes)(require_constants.AES_KEY_BIT_LENGTH / 8);
|
|
58
53
|
}
|
|
59
54
|
/**
|
|
60
55
|
* Derives CryptoKey from the given key material
|
|
@@ -63,7 +58,7 @@ function genSymmetricKey() {
|
|
|
63
58
|
*/
|
|
64
59
|
async function deriveSymmetricCryptoKey(keyMaterial) {
|
|
65
60
|
try {
|
|
66
|
-
return importSymmetricCryptoKey(
|
|
61
|
+
return importSymmetricCryptoKey(require_mac.getBytesFromData(require_constants.AES_KEY_BIT_LENGTH / 8, keyMaterial));
|
|
67
62
|
} catch (error) {
|
|
68
63
|
throw new Error("Failed to derive CryptoKey from the given key material", { cause: error });
|
|
69
64
|
}
|
|
@@ -85,7 +80,7 @@ function createNISTbasedIV(freeField) {
|
|
|
85
80
|
const iv = new Uint8Array(16);
|
|
86
81
|
const randFiled = (0, _noble_post_quantum_utils_js.randomBytes)(12);
|
|
87
82
|
iv.set(randFiled, 0);
|
|
88
|
-
const freeFiledFixedLength =
|
|
83
|
+
const freeFiledFixedLength = require_mac.getBytesFromData(4, freeField);
|
|
89
84
|
iv.set(freeFiledFixedLength, 12);
|
|
90
85
|
return iv;
|
|
91
86
|
} catch (error) {
|
|
@@ -99,7 +94,7 @@ function createNISTbasedIV(freeField) {
|
|
|
99
94
|
* @returns The resulting fixed-length auxilary string.
|
|
100
95
|
*/
|
|
101
96
|
async function makeAuxFixedLength(aux) {
|
|
102
|
-
return
|
|
97
|
+
return require_mac.getBytesFromData(require_constants.AUX_BYTE_LEN, aux);
|
|
103
98
|
}
|
|
104
99
|
/**
|
|
105
100
|
* Symmetrically encrypts message
|
|
@@ -111,16 +106,7 @@ async function makeAuxFixedLength(aux) {
|
|
|
111
106
|
* @returns The resulting ciphertext
|
|
112
107
|
*/
|
|
113
108
|
async function encryptMessage(message, encryptionKey, iv, additionalData) {
|
|
114
|
-
|
|
115
|
-
const encrypted = await crypto.subtle.encrypt({
|
|
116
|
-
name: require_constants.AES_ALGORITHM,
|
|
117
|
-
iv,
|
|
118
|
-
additionalData
|
|
119
|
-
}, encryptionKey, message);
|
|
120
|
-
return new Uint8Array(encrypted);
|
|
121
|
-
} catch (error) {
|
|
122
|
-
throw new Error("Failed to encrypt symmetrically", { cause: error });
|
|
123
|
-
}
|
|
109
|
+
return (0, _noble_ciphers_webcrypto_js.gcm)(encryptionKey, iv, additionalData).encrypt(message);
|
|
124
110
|
}
|
|
125
111
|
/**
|
|
126
112
|
* Symmetrically decrypts message
|
|
@@ -132,16 +118,7 @@ async function encryptMessage(message, encryptionKey, iv, additionalData) {
|
|
|
132
118
|
* @returns The resulting decrypted message
|
|
133
119
|
*/
|
|
134
120
|
async function decryptMessage(ciphertext, iv, encryptionKey, additionalData) {
|
|
135
|
-
|
|
136
|
-
const decrypted = await crypto.subtle.decrypt({
|
|
137
|
-
name: require_constants.AES_ALGORITHM,
|
|
138
|
-
iv,
|
|
139
|
-
additionalData
|
|
140
|
-
}, encryptionKey, ciphertext);
|
|
141
|
-
return new Uint8Array(decrypted);
|
|
142
|
-
} catch (error) {
|
|
143
|
-
throw new Error("Failed to decrypt symmetrically", { cause: error });
|
|
144
|
-
}
|
|
121
|
+
return (0, _noble_ciphers_webcrypto_js.gcm)(encryptionKey, iv, additionalData).decrypt(ciphertext);
|
|
145
122
|
}
|
|
146
123
|
|
|
147
124
|
//#endregion
|
|
@@ -149,7 +126,7 @@ async function decryptMessage(ciphertext, iv, encryptionKey, additionalData) {
|
|
|
149
126
|
/**
|
|
150
127
|
* Symmetrically encrypts the message
|
|
151
128
|
*
|
|
152
|
-
* @param encryptionKey - The symmetric
|
|
129
|
+
* @param encryptionKey - The symmetric key used for message encryption
|
|
153
130
|
* @param message - The message to encrypt
|
|
154
131
|
* @param freeField - The context of the message (required for IV generation)
|
|
155
132
|
* @param aux - The auxilary string
|
|
@@ -166,7 +143,7 @@ async function encryptSymmetrically(encryptionKey, message, aux, freeField) {
|
|
|
166
143
|
/**
|
|
167
144
|
* Decryps symmetrically encrypted message
|
|
168
145
|
*
|
|
169
|
-
* @param encryptionKey - The symmetric
|
|
146
|
+
* @param encryptionKey - The symmetric key used for message encryption
|
|
170
147
|
* @param encryptedMessage - The ciphertext
|
|
171
148
|
* @param aux - The auxilary string
|
|
172
149
|
* @returns The resulting ciphertext.
|
|
@@ -180,18 +157,6 @@ async function decryptSymmetrically(encryptionKey, encryptedMessage, aux) {
|
|
|
180
157
|
}
|
|
181
158
|
}
|
|
182
159
|
|
|
183
|
-
//#endregion
|
|
184
|
-
//#region src/symmetric-crypto/index.ts
|
|
185
|
-
var symmetric_crypto_exports = /* @__PURE__ */ require_chunk.__exportAll({
|
|
186
|
-
decryptSymmetrically: () => decryptSymmetrically,
|
|
187
|
-
deriveSymmetricCryptoKey: () => deriveSymmetricCryptoKey,
|
|
188
|
-
encryptSymmetrically: () => encryptSymmetrically,
|
|
189
|
-
exportSymmetricCryptoKey: () => exportSymmetricCryptoKey,
|
|
190
|
-
genSymmetricCryptoKey: () => genSymmetricCryptoKey,
|
|
191
|
-
genSymmetricKey: () => genSymmetricKey,
|
|
192
|
-
importSymmetricCryptoKey: () => importSymmetricCryptoKey
|
|
193
|
-
});
|
|
194
|
-
|
|
195
160
|
//#endregion
|
|
196
161
|
Object.defineProperty(exports, 'decryptSymmetrically', {
|
|
197
162
|
enumerable: true,
|
|
@@ -235,10 +200,4 @@ Object.defineProperty(exports, 'importSymmetricCryptoKey', {
|
|
|
235
200
|
return importSymmetricCryptoKey;
|
|
236
201
|
}
|
|
237
202
|
});
|
|
238
|
-
|
|
239
|
-
enumerable: true,
|
|
240
|
-
get: function () {
|
|
241
|
-
return symmetric_crypto_exports;
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
//# sourceMappingURL=symmetric-crypto-D65zB396.js.map
|
|
203
|
+
//# sourceMappingURL=aes-DQo1MyCz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aes-DQo1MyCz.js","names":["KEY_FORMAT","AES_ALGORITHM","AES_KEY_BIT_LENGTH","getBytesFromData","IV_LEN_BYTES","getBytesFromData","AUX_BYTE_LEN","IV_LEN_BYTES"],"sources":["../src/symmetric-crypto/keys.ts","../src/symmetric-crypto/core.ts","../src/symmetric-crypto/aes.ts"],"sourcesContent":["import { AES_ALGORITHM, AES_KEY_BIT_LENGTH, KEY_FORMAT } from '../constants';\nimport { randomBytes } from '@noble/post-quantum/utils.js';\nimport { getBytesFromData } from '../hash';\n\n/**\n * Converts Uint8Array into CryptoKey\n *\n * @param keyData - The Uint8Array representation of the symmetric key\n * @returns The resulting symmetric CryptoKey.\n */\nexport async function importSymmetricCryptoKey(keyData: Uint8Array | ArrayBuffer): Promise<CryptoKey> {\n return crypto.subtle.importKey(\n KEY_FORMAT,\n new Uint8Array(keyData),\n {\n name: AES_ALGORITHM,\n length: AES_KEY_BIT_LENGTH,\n },\n true,\n ['encrypt', 'decrypt'],\n );\n}\n\n/**\n * Converts CryptoKey into Uint8Array\n *\n * @param key - The symmetric CryptoKey\n * @returns The resulting Uint8Array.\n */\nexport async function exportSymmetricCryptoKey(key: CryptoKey): Promise<Uint8Array> {\n try {\n const rawKey = await crypto.subtle.exportKey(KEY_FORMAT, key);\n return new Uint8Array(rawKey);\n } catch (error) {\n throw new Error('Failed to export symmetric CryptoKey', { cause: error });\n }\n}\n\n/**\n * Generates symmetric CryptoKey\n *\n * @returns The generated CryptoKey.\n */\nexport async function genSymmetricCryptoKey(): Promise<CryptoKey> {\n return crypto.subtle.generateKey(\n {\n name: AES_ALGORITHM,\n length: AES_KEY_BIT_LENGTH,\n },\n true,\n ['encrypt', 'decrypt'],\n );\n}\n\n/**\n * Generates symmetric key as Uint8Array\n *\n * @returns The generated Uint8Array.\n */\nexport function genSymmetricKey(): Uint8Array {\n return randomBytes(AES_KEY_BIT_LENGTH / 8);\n}\n\n/**\n * Derives CryptoKey from the given key material\n *\n * @returns The derived CryptoKey.\n */\nexport async function deriveSymmetricCryptoKey(keyMaterial: Uint8Array): Promise<CryptoKey> {\n try {\n const hashBuffer = getBytesFromData(AES_KEY_BIT_LENGTH / 8, keyMaterial);\n return importSymmetricCryptoKey(hashBuffer);\n } catch (error) {\n throw new Error('Failed to derive CryptoKey from the given key material', { cause: error });\n }\n}\n","import { gcm as aeadCipher } from '@noble/ciphers/webcrypto.js';\nimport { randomBytes } from '@noble/post-quantum/utils.js';\nimport { getBytesFromData } from '../hash';\nimport { AUX_BYTE_LEN, IV_LEN_BYTES } from '../constants';\n\n/**\n * Creates an initialization vector (IV) using RGB-based construction (8.2.2 NIST Special Publication 800-38D)\n * Constructs a 128-bits IV from 2 fileds: the random field (at least 96 bits) and the free field (32 bits).\n * If free filed is empty, then the entier 128-bit IV is sampled randomly.\n *\n * @param freeFiled - The string with an unrestricted content. Can be a device identifier, etc.\n * @returns The resulting 128-bits initialization vector.\n */\nexport function createNISTbasedIV(freeField?: Uint8Array): Uint8Array {\n try {\n if (!freeField) {\n return randomBytes(IV_LEN_BYTES);\n }\n\n const iv = new Uint8Array(16);\n\n const randFiled = randomBytes(12);\n iv.set(randFiled, 0);\n\n const freeFiledFixedLength = getBytesFromData(4, freeField);\n iv.set(freeFiledFixedLength, 12);\n\n return iv;\n } catch (error) {\n throw new Error('Failed to create IV', { cause: error });\n }\n}\n\n/**\n * Hashes aux string to make it fixed-length\n *\n * @param aux - The auxilay string of arbitrary length\n * @returns The resulting fixed-length auxilary string.\n */\nexport async function makeAuxFixedLength(aux: Uint8Array): Promise<Uint8Array> {\n return getBytesFromData(AUX_BYTE_LEN, aux);\n}\n\n/**\n * Symmetrically encrypts message\n *\n * @param message - The message to encrypt\n * @param encryptionKey - The encryption key\n * @param iv - The initialization vector\n * @param additionalData - The auxilary data\n * @returns The resulting ciphertext\n */\nexport async function encryptMessage(\n message: Uint8Array,\n encryptionKey: Uint8Array,\n iv: Uint8Array,\n additionalData: Uint8Array,\n): Promise<Uint8Array> {\n return aeadCipher(encryptionKey, iv, additionalData).encrypt(message);\n}\n\n/**\n * Symmetrically decrypts message\n *\n * @param ciphertext - The encrypted message\n * @param ciphertext - The initialization vector\n * @param encryptionKey - The encryption key\n * @param additionalData - The auxilary data\n * @returns The resulting decrypted message\n */\nexport async function decryptMessage(\n ciphertext: Uint8Array,\n iv: Uint8Array,\n encryptionKey: Uint8Array,\n additionalData: Uint8Array,\n): Promise<Uint8Array> {\n return aeadCipher(encryptionKey, iv, additionalData).decrypt(ciphertext);\n}\n","import { createNISTbasedIV, makeAuxFixedLength, encryptMessage, decryptMessage } from './core';\nimport { concatBytes } from '@noble/hashes/utils.js';\nimport { IV_LEN_BYTES } from '../constants';\n\n/**\n * Symmetrically encrypts the message\n *\n * @param encryptionKey - The symmetric key used for message encryption\n * @param message - The message to encrypt\n * @param freeField - The context of the message (required for IV generation)\n * @param aux - The auxilary string\n * @returns The resulting ciphertext.\n */\nexport async function encryptSymmetrically(\n encryptionKey: Uint8Array,\n message: Uint8Array,\n aux: Uint8Array,\n freeField?: Uint8Array,\n): Promise<Uint8Array> {\n try {\n const iv = createNISTbasedIV(freeField);\n const additionalData = await makeAuxFixedLength(aux);\n const ciphertext = await encryptMessage(message, encryptionKey, iv, additionalData);\n return concatBytes(ciphertext, iv);\n } catch (error) {\n throw new Error('Failed to encrypt symmetrically', { cause: error });\n }\n}\n\n/**\n * Decryps symmetrically encrypted message\n *\n * @param encryptionKey - The symmetric key used for message encryption\n * @param encryptedMessage - The ciphertext\n * @param aux - The auxilary string\n * @returns The resulting ciphertext.\n */\nexport async function decryptSymmetrically(\n encryptionKey: Uint8Array,\n encryptedMessage: Uint8Array,\n aux: Uint8Array,\n): Promise<Uint8Array> {\n try {\n const additionalData = await makeAuxFixedLength(aux);\n const ciphertext = encryptedMessage.slice(0, encryptedMessage.length - IV_LEN_BYTES);\n const iv = encryptedMessage.slice(encryptedMessage.length - IV_LEN_BYTES);\n const result = await decryptMessage(ciphertext, iv, encryptionKey, additionalData);\n return result;\n } catch (error) {\n throw new Error('Failed to decrypt symmetrically', { cause: error });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAUA,eAAsB,yBAAyB,SAAuD;AACpG,QAAO,OAAO,OAAO,UACnBA,8BACA,IAAI,WAAW,QAAQ,EACvB;EACE,MAAMC;EACN,QAAQC;EACT,EACD,MACA,CAAC,WAAW,UAAU,CACvB;;;;;;;;AASH,eAAsB,yBAAyB,KAAqC;AAClF,KAAI;EACF,MAAM,SAAS,MAAM,OAAO,OAAO,UAAUF,8BAAY,IAAI;AAC7D,SAAO,IAAI,WAAW,OAAO;UACtB,OAAO;AACd,QAAM,IAAI,MAAM,wCAAwC,EAAE,OAAO,OAAO,CAAC;;;;;;;;AAS7E,eAAsB,wBAA4C;AAChE,QAAO,OAAO,OAAO,YACnB;EACE,MAAMC;EACN,QAAQC;EACT,EACD,MACA,CAAC,WAAW,UAAU,CACvB;;;;;;;AAQH,SAAgB,kBAA8B;AAC5C,sDAAmBA,uCAAqB,EAAE;;;;;;;AAQ5C,eAAsB,yBAAyB,aAA6C;AAC1F,KAAI;AAEF,SAAO,yBADYC,6BAAiBD,uCAAqB,GAAG,YAAY,CAC7B;UACpC,OAAO;AACd,QAAM,IAAI,MAAM,0DAA0D,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;;;;;AC5D/F,SAAgB,kBAAkB,WAAoC;AACpE,KAAI;AACF,MAAI,CAAC,UACH,sDAAmBE,+BAAa;EAGlC,MAAM,KAAK,IAAI,WAAW,GAAG;EAE7B,MAAM,0DAAwB,GAAG;AACjC,KAAG,IAAI,WAAW,EAAE;EAEpB,MAAM,uBAAuBC,6BAAiB,GAAG,UAAU;AAC3D,KAAG,IAAI,sBAAsB,GAAG;AAEhC,SAAO;UACA,OAAO;AACd,QAAM,IAAI,MAAM,uBAAuB,EAAE,OAAO,OAAO,CAAC;;;;;;;;;AAU5D,eAAsB,mBAAmB,KAAsC;AAC7E,QAAOA,6BAAiBC,gCAAc,IAAI;;;;;;;;;;;AAY5C,eAAsB,eACpB,SACA,eACA,IACA,gBACqB;AACrB,6CAAkB,eAAe,IAAI,eAAe,CAAC,QAAQ,QAAQ;;;;;;;;;;;AAYvE,eAAsB,eACpB,YACA,IACA,eACA,gBACqB;AACrB,6CAAkB,eAAe,IAAI,eAAe,CAAC,QAAQ,WAAW;;;;;;;;;;;;;;AC/D1E,eAAsB,qBACpB,eACA,SACA,KACA,WACqB;AACrB,KAAI;EACF,MAAM,KAAK,kBAAkB,UAAU;AAGvC,iDADmB,MAAM,eAAe,SAAS,eAAe,IADzC,MAAM,mBAAmB,IAAI,CAC+B,EACpD,GAAG;UAC3B,OAAO;AACd,QAAM,IAAI,MAAM,mCAAmC,EAAE,OAAO,OAAO,CAAC;;;;;;;;;;;AAYxE,eAAsB,qBACpB,eACA,kBACA,KACqB;AACrB,KAAI;EACF,MAAM,iBAAiB,MAAM,mBAAmB,IAAI;AAIpD,SADe,MAAM,eAFF,iBAAiB,MAAM,GAAG,iBAAiB,SAASC,+BAAa,EACzE,iBAAiB,MAAM,iBAAiB,SAASA,+BAAa,EACrB,eAAe,eAAe;UAE3E,OAAO;AACd,QAAM,IAAI,MAAM,mCAAmC,EAAE,OAAO,OAAO,CAAC"}
|
|
@@ -39,9 +39,6 @@ declare function exportPrivateKey(key: CryptoKey): Promise<Uint8Array>;
|
|
|
39
39
|
* @returns The CryptoKey representation of the private key
|
|
40
40
|
*/
|
|
41
41
|
declare function importPrivateKey(pkcs8KeyData: Uint8Array): Promise<CryptoKey>;
|
|
42
|
-
declare namespace index_d_exports {
|
|
43
|
-
export { deriveSecretKey, exportPrivateKey, exportPublicKey, generateEccKeys, importPrivateKey, importPublicKey };
|
|
44
|
-
}
|
|
45
42
|
//#endregion
|
|
46
|
-
export { deriveSecretKey, exportPrivateKey, exportPublicKey, generateEccKeys, importPrivateKey, importPublicKey
|
|
43
|
+
export { deriveSecretKey, exportPrivateKey, exportPublicKey, generateEccKeys, importPrivateKey, importPublicKey };
|
|
47
44
|
//# sourceMappingURL=asymmetric-crypto.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asymmetric-crypto.d.mts","names":[],"sources":["../src/asymmetric-crypto/ellipticCurve.ts","../src/asymmetric-crypto/keys.ts"],"mappings":";;AASA;;;;;;iBAAsB,eAAA,CAAgB,kBAAA,EAAoB,SAAA,EAAW,aAAA,EAAe,SAAA,GAAY,OAAA,CAAQ,UAAA;;;;AAAxG;;;;iBCFsB,eAAA,CAAA,GAAmB,OAAA,CAAQ,aAAA;;;;;;iBAmB3B,eAAA,CAAgB,GAAA,EAAK,SAAA,GAAY,OAAA,CAAQ,UAAA;;;;;;iBAczC,eAAA,CAAgB,WAAA,EAAa,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;AAjCxE;;iBAsDsB,gBAAA,CAAiB,GAAA,EAAK,SAAA,GAAY,OAAA,CAAQ,UAAA;;;AAnChE;;;iBAiDsB,gBAAA,CAAiB,YAAA,EAAc,UAAA,GAAa,OAAA,CAAQ,SAAA"}
|
|
@@ -39,9 +39,6 @@ declare function exportPrivateKey(key: CryptoKey): Promise<Uint8Array>;
|
|
|
39
39
|
* @returns The CryptoKey representation of the private key
|
|
40
40
|
*/
|
|
41
41
|
declare function importPrivateKey(pkcs8KeyData: Uint8Array): Promise<CryptoKey>;
|
|
42
|
-
declare namespace index_d_exports {
|
|
43
|
-
export { deriveSecretKey, exportPrivateKey, exportPublicKey, generateEccKeys, importPrivateKey, importPublicKey };
|
|
44
|
-
}
|
|
45
42
|
//#endregion
|
|
46
|
-
export { deriveSecretKey, exportPrivateKey, exportPublicKey, generateEccKeys, importPrivateKey, importPublicKey
|
|
43
|
+
export { deriveSecretKey, exportPrivateKey, exportPublicKey, generateEccKeys, importPrivateKey, importPublicKey };
|
|
47
44
|
//# sourceMappingURL=asymmetric-crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asymmetric-crypto.d.ts","names":[],"sources":["../src/asymmetric-crypto/ellipticCurve.ts","../src/asymmetric-crypto/keys.ts"],"mappings":";;AASA;;;;;;iBAAsB,eAAA,CAAgB,kBAAA,EAAoB,SAAA,EAAW,aAAA,EAAe,SAAA,GAAY,OAAA,CAAQ,UAAA;;;;AAAxG;;;;iBCFsB,eAAA,CAAA,GAAmB,OAAA,CAAQ,aAAA;;;;;;iBAmB3B,eAAA,CAAgB,GAAA,EAAK,SAAA,GAAY,OAAA,CAAQ,UAAA;;;;;;iBAczC,eAAA,CAAgB,WAAA,EAAa,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;AAjCxE;;iBAsDsB,gBAAA,CAAiB,GAAA,EAAK,SAAA,GAAY,OAAA,CAAQ,UAAA;;;AAnChE;;;iBAiDsB,gBAAA,CAAiB,YAAA,EAAc,UAAA,GAAa,OAAA,CAAQ,SAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_keys = require('./keys-CinT7kEY.js');
|
|
2
3
|
|
|
3
|
-
exports.deriveSecretKey =
|
|
4
|
-
exports.exportPrivateKey =
|
|
5
|
-
exports.exportPublicKey =
|
|
6
|
-
exports.generateEccKeys =
|
|
7
|
-
exports.importPrivateKey =
|
|
8
|
-
exports.importPublicKey =
|
|
4
|
+
exports.deriveSecretKey = require_keys.deriveSecretKey;
|
|
5
|
+
exports.exportPrivateKey = require_keys.exportPrivateKey;
|
|
6
|
+
exports.exportPublicKey = require_keys.exportPublicKey;
|
|
7
|
+
exports.generateEccKeys = require_keys.generateEccKeys;
|
|
8
|
+
exports.importPrivateKey = require_keys.importPrivateKey;
|
|
9
|
+
exports.importPublicKey = require_keys.importPublicKey;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as importPublicKey, i as importPrivateKey, n as exportPublicKey, o as deriveSecretKey, r as generateEccKeys, t as exportPrivateKey } from "./keys-BfcaiAOv.mjs";
|
|
2
2
|
|
|
3
3
|
export { deriveSecretKey, exportPrivateKey, exportPublicKey, generateEccKeys, importPrivateKey, importPublicKey };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __exportAll = (all,
|
|
3
|
+
var __exportAll = (all, no_symbols) => {
|
|
4
4
|
let target = {};
|
|
5
5
|
for (var name in all) {
|
|
6
6
|
__defProp(target, name, {
|
|
@@ -8,7 +8,7 @@ var __exportAll = (all, symbols) => {
|
|
|
8
8
|
enumerable: true
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
|
-
if (
|
|
11
|
+
if (!no_symbols) {
|
|
12
12
|
__defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
13
13
|
}
|
|
14
14
|
return target;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
2
|
var __create = Object.create;
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -6,7 +6,7 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
8
|
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
9
|
-
var __exportAll = (all,
|
|
9
|
+
var __exportAll = (all, no_symbols) => {
|
|
10
10
|
let target = {};
|
|
11
11
|
for (var name in all) {
|
|
12
12
|
__defProp(target, name, {
|
|
@@ -14,7 +14,7 @@ var __exportAll = (all, symbols) => {
|
|
|
14
14
|
enumerable: true
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
-
if (
|
|
17
|
+
if (!no_symbols) {
|
|
18
18
|
__defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
19
19
|
}
|
|
20
20
|
return target;
|
package/dist/constants.d.mts
CHANGED
|
@@ -16,18 +16,18 @@ declare const ARGON2ID_ITERATIONS = 4;
|
|
|
16
16
|
declare const ARGON2ID_MEMORY_SIZE = 65536;
|
|
17
17
|
declare const ARGON2ID_SALT_BYTE_LENGTH = 16;
|
|
18
18
|
declare const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
|
|
19
|
-
declare const KYBER512_PUBLIC_KEY_LENGTH = 800;
|
|
20
|
-
declare const KYBER512_SECRET_KEY_LENGTH = 1632;
|
|
21
19
|
declare const KYBER768_PUBLIC_KEY_LENGTH = 1184;
|
|
22
20
|
declare const KYBER768_SECRET_KEY_LENGTH = 2400;
|
|
23
|
-
declare const KYBER1024_PUBLIC_KEY_LENGTH = 1568;
|
|
24
|
-
declare const KYBER1024_SECRET_KEY_LENGTH = 3168;
|
|
25
21
|
declare const KYBER_SEED_LENGTH = 64;
|
|
26
22
|
declare const HASH_BIT_LEN = 256;
|
|
27
23
|
declare const MAX_CACHE_SIZE = 600000000;
|
|
28
24
|
declare const MAX_EMAIL_PER_BATCH = 100;
|
|
29
25
|
declare const DB_LABEL = "email";
|
|
30
26
|
declare const DB_VERSION = 1;
|
|
27
|
+
declare const XWING_PUBLIC_KEY_LENGTH = 1216;
|
|
28
|
+
declare const XWING_SECRET_KEY_LENGTH = 32;
|
|
29
|
+
declare const XWING_SEED_BYTE_LENGTH = 32;
|
|
30
|
+
declare const XWING_CIPHERTEXT_BYTE_LENGTH = 1120;
|
|
31
31
|
//#endregion
|
|
32
|
-
export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_BYTE_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, HASH_BIT_LEN, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM,
|
|
32
|
+
export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_BYTE_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, HASH_BIT_LEN, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, 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 };
|
|
33
33
|
//# sourceMappingURL=constants.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.mts","names":[],"sources":["../src/constants.ts"],"mappings":";cAAa,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,YAAA;AAAA,cACA,YAAA;AAAA,cAEA,sBAAA;AAAA,cACA,UAAA;AAAA,cACA,gBAAA;AAAA,cAEA,aAAA;AAAA,cAEA,oBAAA;AAAA,cACA,gBAAA;AAAA,cACA,aAAA;AAAA,cACA,cAAA;AAAA,cAGA,oBAAA;AAAA,cACA,mBAAA;AAAA,cACA,oBAAA;AAAA,cACA,yBAAA;AAAA,cACA,2BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cACA,iBAAA;AAAA,cAEA,YAAA;AAAA,cAEA,cAAA;AAAA,cACA,mBAAA;AAAA,cACA,QAAA;AAAA,cACA,UAAA;AAAA,cAEA,uBAAA;AAAA,cACA,uBAAA;AAAA,cACA,sBAAA;AAAA,cACA,4BAAA"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -16,18 +16,18 @@ declare const ARGON2ID_ITERATIONS = 4;
|
|
|
16
16
|
declare const ARGON2ID_MEMORY_SIZE = 65536;
|
|
17
17
|
declare const ARGON2ID_SALT_BYTE_LENGTH = 16;
|
|
18
18
|
declare const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
|
|
19
|
-
declare const KYBER512_PUBLIC_KEY_LENGTH = 800;
|
|
20
|
-
declare const KYBER512_SECRET_KEY_LENGTH = 1632;
|
|
21
19
|
declare const KYBER768_PUBLIC_KEY_LENGTH = 1184;
|
|
22
20
|
declare const KYBER768_SECRET_KEY_LENGTH = 2400;
|
|
23
|
-
declare const KYBER1024_PUBLIC_KEY_LENGTH = 1568;
|
|
24
|
-
declare const KYBER1024_SECRET_KEY_LENGTH = 3168;
|
|
25
21
|
declare const KYBER_SEED_LENGTH = 64;
|
|
26
22
|
declare const HASH_BIT_LEN = 256;
|
|
27
23
|
declare const MAX_CACHE_SIZE = 600000000;
|
|
28
24
|
declare const MAX_EMAIL_PER_BATCH = 100;
|
|
29
25
|
declare const DB_LABEL = "email";
|
|
30
26
|
declare const DB_VERSION = 1;
|
|
27
|
+
declare const XWING_PUBLIC_KEY_LENGTH = 1216;
|
|
28
|
+
declare const XWING_SECRET_KEY_LENGTH = 32;
|
|
29
|
+
declare const XWING_SEED_BYTE_LENGTH = 32;
|
|
30
|
+
declare const XWING_CIPHERTEXT_BYTE_LENGTH = 1120;
|
|
31
31
|
//#endregion
|
|
32
|
-
export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_BYTE_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, HASH_BIT_LEN, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM,
|
|
32
|
+
export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_BYTE_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, HASH_BIT_LEN, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, 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 };
|
|
33
33
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","names":[],"sources":["../src/constants.ts"],"mappings":";cAAa,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,YAAA;AAAA,cACA,YAAA;AAAA,cAEA,sBAAA;AAAA,cACA,UAAA;AAAA,cACA,gBAAA;AAAA,cAEA,aAAA;AAAA,cAEA,oBAAA;AAAA,cACA,gBAAA;AAAA,cACA,aAAA;AAAA,cACA,cAAA;AAAA,cAGA,oBAAA;AAAA,cACA,mBAAA;AAAA,cACA,oBAAA;AAAA,cACA,yBAAA;AAAA,cACA,2BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cACA,iBAAA;AAAA,cAEA,YAAA;AAAA,cAEA,cAAA;AAAA,cACA,mBAAA;AAAA,cACA,QAAA;AAAA,cACA,UAAA;AAAA,cAEA,uBAAA;AAAA,cACA,uBAAA;AAAA,cACA,sBAAA;AAAA,cACA,4BAAA"}
|
package/dist/constants.js
CHANGED
|
@@ -1,31 +1,64 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
3
|
+
//#region src/constants.ts
|
|
4
|
+
const AES_ALGORITHM = "AES-GCM";
|
|
5
|
+
const AES_KEY_BIT_LENGTH = 256;
|
|
6
|
+
const AUX_BYTE_LEN = 16;
|
|
7
|
+
const IV_LEN_BYTES = 16;
|
|
8
|
+
const KEY_WRAPPING_ALGORITHM = "AES-KW";
|
|
9
|
+
const KEY_FORMAT = "raw";
|
|
10
|
+
const CONTEXT_WRAPPING = "CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets";
|
|
11
|
+
const ECC_ALGORITHM = "X25519";
|
|
12
|
+
const CONTEXT_ENC_KEYSTORE = "CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore";
|
|
13
|
+
const CONTEXT_RECOVERY = "CRYPTO library 2025-07-30 16:20:00 key for account recovery";
|
|
14
|
+
const CONTEXT_INDEX = "CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices";
|
|
15
|
+
const CONTEXT_DERIVE = "CRYPTO library 2025-08-27 17:08:00 derive one key from two keys";
|
|
16
|
+
const ARGON2ID_PARALLELISM = 3;
|
|
17
|
+
const ARGON2ID_ITERATIONS = 4;
|
|
18
|
+
const ARGON2ID_MEMORY_SIZE = 65536;
|
|
19
|
+
const ARGON2ID_SALT_BYTE_LENGTH = 16;
|
|
20
|
+
const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
|
|
21
|
+
const KYBER768_PUBLIC_KEY_LENGTH = 1184;
|
|
22
|
+
const KYBER768_SECRET_KEY_LENGTH = 2400;
|
|
23
|
+
const KYBER_SEED_LENGTH = 64;
|
|
24
|
+
const HASH_BIT_LEN = 256;
|
|
25
|
+
const MAX_CACHE_SIZE = 6e8;
|
|
26
|
+
const MAX_EMAIL_PER_BATCH = 100;
|
|
27
|
+
const DB_LABEL = "email";
|
|
28
|
+
const DB_VERSION = 1;
|
|
29
|
+
const XWING_PUBLIC_KEY_LENGTH = 1216;
|
|
30
|
+
const XWING_SECRET_KEY_LENGTH = 32;
|
|
31
|
+
const XWING_SEED_BYTE_LENGTH = 32;
|
|
32
|
+
const XWING_CIPHERTEXT_BYTE_LENGTH = 1120;
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
exports.AES_ALGORITHM = AES_ALGORITHM;
|
|
36
|
+
exports.AES_KEY_BIT_LENGTH = AES_KEY_BIT_LENGTH;
|
|
37
|
+
exports.ARGON2ID_ITERATIONS = ARGON2ID_ITERATIONS;
|
|
38
|
+
exports.ARGON2ID_MEMORY_SIZE = ARGON2ID_MEMORY_SIZE;
|
|
39
|
+
exports.ARGON2ID_OUTPUT_BYTE_LENGTH = ARGON2ID_OUTPUT_BYTE_LENGTH;
|
|
40
|
+
exports.ARGON2ID_PARALLELISM = ARGON2ID_PARALLELISM;
|
|
41
|
+
exports.ARGON2ID_SALT_BYTE_LENGTH = ARGON2ID_SALT_BYTE_LENGTH;
|
|
42
|
+
exports.AUX_BYTE_LEN = AUX_BYTE_LEN;
|
|
43
|
+
exports.CONTEXT_DERIVE = CONTEXT_DERIVE;
|
|
44
|
+
exports.CONTEXT_ENC_KEYSTORE = CONTEXT_ENC_KEYSTORE;
|
|
45
|
+
exports.CONTEXT_INDEX = CONTEXT_INDEX;
|
|
46
|
+
exports.CONTEXT_RECOVERY = CONTEXT_RECOVERY;
|
|
47
|
+
exports.CONTEXT_WRAPPING = CONTEXT_WRAPPING;
|
|
48
|
+
exports.DB_LABEL = DB_LABEL;
|
|
49
|
+
exports.DB_VERSION = DB_VERSION;
|
|
50
|
+
exports.ECC_ALGORITHM = ECC_ALGORITHM;
|
|
51
|
+
exports.HASH_BIT_LEN = HASH_BIT_LEN;
|
|
52
|
+
exports.IV_LEN_BYTES = IV_LEN_BYTES;
|
|
53
|
+
exports.KEY_FORMAT = KEY_FORMAT;
|
|
54
|
+
exports.KEY_WRAPPING_ALGORITHM = KEY_WRAPPING_ALGORITHM;
|
|
55
|
+
exports.KYBER768_PUBLIC_KEY_LENGTH = KYBER768_PUBLIC_KEY_LENGTH;
|
|
56
|
+
exports.KYBER768_SECRET_KEY_LENGTH = KYBER768_SECRET_KEY_LENGTH;
|
|
57
|
+
exports.KYBER_SEED_LENGTH = KYBER_SEED_LENGTH;
|
|
58
|
+
exports.MAX_CACHE_SIZE = MAX_CACHE_SIZE;
|
|
59
|
+
exports.MAX_EMAIL_PER_BATCH = MAX_EMAIL_PER_BATCH;
|
|
60
|
+
exports.XWING_CIPHERTEXT_BYTE_LENGTH = XWING_CIPHERTEXT_BYTE_LENGTH;
|
|
61
|
+
exports.XWING_PUBLIC_KEY_LENGTH = XWING_PUBLIC_KEY_LENGTH;
|
|
62
|
+
exports.XWING_SECRET_KEY_LENGTH = XWING_SECRET_KEY_LENGTH;
|
|
63
|
+
exports.XWING_SEED_BYTE_LENGTH = XWING_SEED_BYTE_LENGTH;
|
|
64
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const AES_ALGORITHM = 'AES-GCM';\nexport const AES_KEY_BIT_LENGTH = 256;\nexport const AUX_BYTE_LEN = 16;\nexport const IV_LEN_BYTES = 16;\n\nexport const KEY_WRAPPING_ALGORITHM = 'AES-KW';\nexport const KEY_FORMAT = 'raw';\nexport const CONTEXT_WRAPPING = 'CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets';\n\nexport const ECC_ALGORITHM = 'X25519';\n\nexport const CONTEXT_ENC_KEYSTORE = 'CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore';\nexport const CONTEXT_RECOVERY = 'CRYPTO library 2025-07-30 16:20:00 key for account recovery';\nexport const CONTEXT_INDEX = 'CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices';\nexport const CONTEXT_DERIVE = 'CRYPTO library 2025-08-27 17:08:00 derive one key from two keys';\n\n// Second recommended parameter set from RFC 9106\nexport const ARGON2ID_PARALLELISM = 3;\nexport const ARGON2ID_ITERATIONS = 4;\nexport const ARGON2ID_MEMORY_SIZE = 65536;\nexport const ARGON2ID_SALT_BYTE_LENGTH = 16;\nexport const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;\n\nexport const KYBER768_PUBLIC_KEY_LENGTH = 1184;\nexport const KYBER768_SECRET_KEY_LENGTH = 2400;\nexport const KYBER_SEED_LENGTH = 64;\n\nexport const HASH_BIT_LEN = 256;\n\nexport const MAX_CACHE_SIZE = 600000000; // 600 MB\nexport const MAX_EMAIL_PER_BATCH = 100;\nexport const DB_LABEL = 'email';\nexport const DB_VERSION = 1;\n\nexport const XWING_PUBLIC_KEY_LENGTH = 1216;\nexport const XWING_SECRET_KEY_LENGTH = 32;\nexport const XWING_SEED_BYTE_LENGTH = 32;\nexport const XWING_CIPHERTEXT_BYTE_LENGTH = 1120;\n"],"mappings":";;;AAAA,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,eAAe;AAC5B,MAAa,eAAe;AAE5B,MAAa,yBAAyB;AACtC,MAAa,aAAa;AAC1B,MAAa,mBAAmB;AAEhC,MAAa,gBAAgB;AAE7B,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAChC,MAAa,gBAAgB;AAC7B,MAAa,iBAAiB;AAG9B,MAAa,uBAAuB;AACpC,MAAa,sBAAsB;AACnC,MAAa,uBAAuB;AACpC,MAAa,4BAA4B;AACzC,MAAa,8BAA8B;AAE3C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAC1C,MAAa,oBAAoB;AAEjC,MAAa,eAAe;AAE5B,MAAa,iBAAiB;AAC9B,MAAa,sBAAsB;AACnC,MAAa,WAAW;AACxB,MAAa,aAAa;AAE1B,MAAa,0BAA0B;AACvC,MAAa,0BAA0B;AACvC,MAAa,yBAAyB;AACtC,MAAa,+BAA+B"}
|
package/dist/constants.mjs
CHANGED
|
@@ -1,3 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/constants.ts
|
|
2
|
+
const AES_ALGORITHM = "AES-GCM";
|
|
3
|
+
const AES_KEY_BIT_LENGTH = 256;
|
|
4
|
+
const AUX_BYTE_LEN = 16;
|
|
5
|
+
const IV_LEN_BYTES = 16;
|
|
6
|
+
const KEY_WRAPPING_ALGORITHM = "AES-KW";
|
|
7
|
+
const KEY_FORMAT = "raw";
|
|
8
|
+
const CONTEXT_WRAPPING = "CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets";
|
|
9
|
+
const ECC_ALGORITHM = "X25519";
|
|
10
|
+
const CONTEXT_ENC_KEYSTORE = "CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore";
|
|
11
|
+
const CONTEXT_RECOVERY = "CRYPTO library 2025-07-30 16:20:00 key for account recovery";
|
|
12
|
+
const CONTEXT_INDEX = "CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices";
|
|
13
|
+
const CONTEXT_DERIVE = "CRYPTO library 2025-08-27 17:08:00 derive one key from two keys";
|
|
14
|
+
const ARGON2ID_PARALLELISM = 3;
|
|
15
|
+
const ARGON2ID_ITERATIONS = 4;
|
|
16
|
+
const ARGON2ID_MEMORY_SIZE = 65536;
|
|
17
|
+
const ARGON2ID_SALT_BYTE_LENGTH = 16;
|
|
18
|
+
const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
|
|
19
|
+
const KYBER768_PUBLIC_KEY_LENGTH = 1184;
|
|
20
|
+
const KYBER768_SECRET_KEY_LENGTH = 2400;
|
|
21
|
+
const KYBER_SEED_LENGTH = 64;
|
|
22
|
+
const HASH_BIT_LEN = 256;
|
|
23
|
+
const MAX_CACHE_SIZE = 6e8;
|
|
24
|
+
const MAX_EMAIL_PER_BATCH = 100;
|
|
25
|
+
const DB_LABEL = "email";
|
|
26
|
+
const DB_VERSION = 1;
|
|
27
|
+
const XWING_PUBLIC_KEY_LENGTH = 1216;
|
|
28
|
+
const XWING_SECRET_KEY_LENGTH = 32;
|
|
29
|
+
const XWING_SEED_BYTE_LENGTH = 32;
|
|
30
|
+
const XWING_CIPHERTEXT_BYTE_LENGTH = 1120;
|
|
2
31
|
|
|
3
|
-
|
|
32
|
+
//#endregion
|
|
33
|
+
export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_BYTE_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, HASH_BIT_LEN, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, 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 };
|
|
34
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const AES_ALGORITHM = 'AES-GCM';\nexport const AES_KEY_BIT_LENGTH = 256;\nexport const AUX_BYTE_LEN = 16;\nexport const IV_LEN_BYTES = 16;\n\nexport const KEY_WRAPPING_ALGORITHM = 'AES-KW';\nexport const KEY_FORMAT = 'raw';\nexport const CONTEXT_WRAPPING = 'CRYPTO library 2025-08-22 18:10:00 key derived from ecc and kyber secrets';\n\nexport const ECC_ALGORITHM = 'X25519';\n\nexport const CONTEXT_ENC_KEYSTORE = 'CRYPTO library 2025-07-30 16:18:03 key for opening encryption keys keystore';\nexport const CONTEXT_RECOVERY = 'CRYPTO library 2025-07-30 16:20:00 key for account recovery';\nexport const CONTEXT_INDEX = 'CRYPTO library 2025-07-30 17:20:00 key for protecting current search indices';\nexport const CONTEXT_DERIVE = 'CRYPTO library 2025-08-27 17:08:00 derive one key from two keys';\n\n// Second recommended parameter set from RFC 9106\nexport const ARGON2ID_PARALLELISM = 3;\nexport const ARGON2ID_ITERATIONS = 4;\nexport const ARGON2ID_MEMORY_SIZE = 65536;\nexport const ARGON2ID_SALT_BYTE_LENGTH = 16;\nexport const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;\n\nexport const KYBER768_PUBLIC_KEY_LENGTH = 1184;\nexport const KYBER768_SECRET_KEY_LENGTH = 2400;\nexport const KYBER_SEED_LENGTH = 64;\n\nexport const HASH_BIT_LEN = 256;\n\nexport const MAX_CACHE_SIZE = 600000000; // 600 MB\nexport const MAX_EMAIL_PER_BATCH = 100;\nexport const DB_LABEL = 'email';\nexport const DB_VERSION = 1;\n\nexport const XWING_PUBLIC_KEY_LENGTH = 1216;\nexport const XWING_SECRET_KEY_LENGTH = 32;\nexport const XWING_SEED_BYTE_LENGTH = 32;\nexport const XWING_CIPHERTEXT_BYTE_LENGTH = 1120;\n"],"mappings":";AAAA,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,eAAe;AAC5B,MAAa,eAAe;AAE5B,MAAa,yBAAyB;AACtC,MAAa,aAAa;AAC1B,MAAa,mBAAmB;AAEhC,MAAa,gBAAgB;AAE7B,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAChC,MAAa,gBAAgB;AAC7B,MAAa,iBAAiB;AAG9B,MAAa,uBAAuB;AACpC,MAAa,sBAAsB;AACnC,MAAa,uBAAuB;AACpC,MAAa,4BAA4B;AACzC,MAAa,8BAA8B;AAE3C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAC1C,MAAa,oBAAoB;AAEjC,MAAa,eAAe;AAE5B,MAAa,iBAAiB;AAC9B,MAAa,sBAAsB;AACnC,MAAa,WAAW;AACxB,MAAa,aAAa;AAE1B,MAAa,0BAA0B;AACvC,MAAa,0BAA0B;AACvC,MAAa,yBAAyB;AACtC,MAAa,+BAA+B"}
|
package/dist/derive-key.d.mts
CHANGED
|
@@ -89,9 +89,6 @@ declare function getKeyFromPasswordAndSaltHex(password: string, saltHex: string)
|
|
|
89
89
|
* @returns The result of the key verification
|
|
90
90
|
*/
|
|
91
91
|
declare function verifyKeyFromPasswordHex(password: string, saltHex: string, keyHex: string): Promise<boolean>;
|
|
92
|
-
declare namespace index_d_exports {
|
|
93
|
-
export { deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, deriveSymmetricKeyFromTwoKeysAndContext, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex, verifyKeyFromPasswordHex };
|
|
94
|
-
}
|
|
95
92
|
//#endregion
|
|
96
|
-
export { deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, deriveSymmetricKeyFromTwoKeysAndContext, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex,
|
|
93
|
+
export { deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, deriveSymmetricKeyFromTwoKeysAndContext, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex, verifyKeyFromPasswordHex };
|
|
97
94
|
//# sourceMappingURL=derive-key.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive-key.d.mts","names":[],"sources":["../src/derive-key/deriveKeysFromKey.ts","../src/derive-key/deriveKeysFromPassword.ts"],"mappings":";;AAaA;;;;;;;iBAAgB,6BAAA,CAA8B,OAAA,UAAiB,OAAA,EAAS,UAAA,GAAa,UAAA;;;AAYrF;;;;;;iBAAsB,mCAAA,CAAoC,OAAA,UAAiB,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;;;;;iBAwBzF,6BAAA,CAA8B,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,GAAa,UAAA;AAAnF;;;;;;;AAAA,iBAWsB,mCAAA,CAAoC,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;;;;;AAAvG;iBAkBgB,uCAAA,CACd,IAAA,EAAM,UAAA,EACN,IAAA,EAAM,UAAA,EACN,OAAA,WACC,UAAA;;;;AArEH;;;;;iBCJsB,kBAAA,CAAmB,QAAA,WAAmB,OAAA;EAAU,GAAA,EAAK,UAAA;EAAY,IAAA,EAAM,UAAA;AAAA;;ADgB7F;;;;;;iBCIsB,yBAAA,CAA0B,QAAA,UAAkB,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,UAAA;;;;;;;iBAoBvE,qBAAA,CAAsB,QAAA,WAAmB,OAAA;EAAU,MAAA;EAAgB,OAAA;AAAA;;;;;;;;iBAgBnE,4BAAA,CAA6B,QAAA,UAAkB,OAAA,WAAkB,OAAA;;;;;;ADLvF;;;iBCuBsB,wBAAA,CAAyB,QAAA,UAAkB,OAAA,UAAiB,MAAA,WAAiB,OAAA"}
|
package/dist/derive-key.d.ts
CHANGED
|
@@ -89,9 +89,6 @@ declare function getKeyFromPasswordAndSaltHex(password: string, saltHex: string)
|
|
|
89
89
|
* @returns The result of the key verification
|
|
90
90
|
*/
|
|
91
91
|
declare function verifyKeyFromPasswordHex(password: string, saltHex: string, keyHex: string): Promise<boolean>;
|
|
92
|
-
declare namespace index_d_exports {
|
|
93
|
-
export { deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, deriveSymmetricKeyFromTwoKeysAndContext, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex, verifyKeyFromPasswordHex };
|
|
94
|
-
}
|
|
95
92
|
//#endregion
|
|
96
|
-
export { deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, deriveSymmetricKeyFromTwoKeysAndContext, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex,
|
|
93
|
+
export { deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, deriveSymmetricKeyFromTwoKeysAndContext, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex, verifyKeyFromPasswordHex };
|
|
97
94
|
//# sourceMappingURL=derive-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive-key.d.ts","names":[],"sources":["../src/derive-key/deriveKeysFromKey.ts","../src/derive-key/deriveKeysFromPassword.ts"],"mappings":";;AAaA;;;;;;;iBAAgB,6BAAA,CAA8B,OAAA,UAAiB,OAAA,EAAS,UAAA,GAAa,UAAA;;;AAYrF;;;;;;iBAAsB,mCAAA,CAAoC,OAAA,UAAiB,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;;;;;iBAwBzF,6BAAA,CAA8B,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,GAAa,UAAA;AAAnF;;;;;;;AAAA,iBAWsB,mCAAA,CAAoC,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,SAAA;;;;;;;;AAAvG;iBAkBgB,uCAAA,CACd,IAAA,EAAM,UAAA,EACN,IAAA,EAAM,UAAA,EACN,OAAA,WACC,UAAA;;;;AArEH;;;;;iBCJsB,kBAAA,CAAmB,QAAA,WAAmB,OAAA;EAAU,GAAA,EAAK,UAAA;EAAY,IAAA,EAAM,UAAA;AAAA;;ADgB7F;;;;;;iBCIsB,yBAAA,CAA0B,QAAA,UAAkB,IAAA,EAAM,UAAA,GAAa,OAAA,CAAQ,UAAA;;;;;;;iBAoBvE,qBAAA,CAAsB,QAAA,WAAmB,OAAA;EAAU,MAAA;EAAgB,OAAA;AAAA;;;;;;;;iBAgBnE,4BAAA,CAA6B,QAAA,UAAkB,OAAA,WAAkB,OAAA;;;;;;ADLvF;;;iBCuBsB,wBAAA,CAAyB,QAAA,UAAkB,OAAA,UAAiB,MAAA,WAAiB,OAAA"}
|