internxt-crypto 0.0.13 → 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.
Files changed (81) hide show
  1. package/dist/{aes-DSDxP8uF.mjs → aes-DCb9dJqb.mjs} +7 -30
  2. package/dist/aes-DCb9dJqb.mjs.map +1 -0
  3. package/dist/{aes-bOrKZuUC.js → aes-DQo1MyCz.js} +7 -30
  4. package/dist/aes-DQo1MyCz.js.map +1 -0
  5. package/dist/constants.d.mts +5 -5
  6. package/dist/constants.d.mts.map +1 -1
  7. package/dist/constants.d.ts +5 -5
  8. package/dist/constants.d.ts.map +1 -1
  9. package/dist/constants.js +8 -8
  10. package/dist/constants.js.map +1 -1
  11. package/dist/constants.mjs +5 -5
  12. package/dist/constants.mjs.map +1 -1
  13. package/dist/derive-key.js +1 -1
  14. package/dist/derive-key.mjs +1 -1
  15. package/dist/{deriveKeysFromPassword-Ko7NxkHM.js → deriveKeysFromPassword-BYaiSGKL.js} +4 -9
  16. package/dist/{deriveKeysFromPassword-Ko7NxkHM.js.map → deriveKeysFromPassword-BYaiSGKL.js.map} +1 -1
  17. package/dist/{deriveKeysFromPassword-DJRWZ8Rw.mjs → deriveKeysFromPassword-XIwzErlL.mjs} +4 -9
  18. package/dist/{deriveKeysFromPassword-DJRWZ8Rw.mjs.map → deriveKeysFromPassword-XIwzErlL.mjs.map} +1 -1
  19. package/dist/email-crypto.js +1 -1
  20. package/dist/email-crypto.mjs +1 -1
  21. package/dist/email-search.d.mts +18 -18
  22. package/dist/email-search.d.mts.map +1 -1
  23. package/dist/email-search.d.ts +18 -18
  24. package/dist/email-search.d.ts.map +1 -1
  25. package/dist/email-search.js +14 -14
  26. package/dist/email-search.js.map +1 -1
  27. package/dist/email-search.mjs +14 -14
  28. package/dist/email-search.mjs.map +1 -1
  29. package/dist/{emailEncryptionKey-27mIHh18.mjs → emailEncryptionKey-B9xHw1h_.mjs} +6 -6
  30. package/dist/emailEncryptionKey-B9xHw1h_.mjs.map +1 -0
  31. package/dist/{emailEncryptionKey-DbaDAdoW.js → emailEncryptionKey-CQNe5W_T.js} +6 -6
  32. package/dist/emailEncryptionKey-CQNe5W_T.js.map +1 -0
  33. package/dist/{emailKeys-BJGdkLrg.js → emailKeys-C0KhtfNP.js} +28 -49
  34. package/dist/emailKeys-C0KhtfNP.js.map +1 -0
  35. package/dist/{emailKeys-Fp9WR3wl.mjs → emailKeys-D4lp9NRv.mjs} +26 -47
  36. package/dist/emailKeys-D4lp9NRv.mjs.map +1 -0
  37. package/dist/index.d.mts +11 -11
  38. package/dist/index.d.mts.map +1 -1
  39. package/dist/index.d.ts +11 -11
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +12 -12
  42. package/dist/index.mjs +7 -7
  43. package/dist/keystore-crypto.js +1 -1
  44. package/dist/keystore-crypto.mjs +1 -1
  45. package/dist/kyber768-SXnIo-Nw.mjs +47 -0
  46. package/dist/kyber768-SXnIo-Nw.mjs.map +1 -0
  47. package/dist/kyber768-WUVc2fIR.js +65 -0
  48. package/dist/kyber768-WUVc2fIR.js.map +1 -0
  49. package/dist/post-quantum-crypto.d.mts +5 -41
  50. package/dist/post-quantum-crypto.d.mts.map +1 -1
  51. package/dist/post-quantum-crypto.d.ts +5 -41
  52. package/dist/post-quantum-crypto.d.ts.map +1 -1
  53. package/dist/post-quantum-crypto.js +4 -16
  54. package/dist/post-quantum-crypto.mjs +2 -2
  55. package/dist/symmetric-crypto.d.mts +4 -4
  56. package/dist/symmetric-crypto.d.mts.map +1 -1
  57. package/dist/symmetric-crypto.d.ts +4 -4
  58. package/dist/symmetric-crypto.d.ts.map +1 -1
  59. package/dist/symmetric-crypto.js +1 -1
  60. package/dist/symmetric-crypto.mjs +1 -1
  61. package/dist/types.d.mts +5 -1
  62. package/dist/types.d.mts.map +1 -1
  63. package/dist/types.d.ts +5 -1
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/types.js.map +1 -1
  66. package/dist/types.mjs.map +1 -1
  67. package/package.json +2 -1
  68. package/dist/aes-DSDxP8uF.mjs.map +0 -1
  69. package/dist/aes-bOrKZuUC.js.map +0 -1
  70. package/dist/emailEncryptionKey-27mIHh18.mjs.map +0 -1
  71. package/dist/emailEncryptionKey-DbaDAdoW.js.map +0 -1
  72. package/dist/emailKeys-BJGdkLrg.js.map +0 -1
  73. package/dist/emailKeys-Fp9WR3wl.mjs.map +0 -1
  74. package/dist/kyber1024-PpwE1rki.mjs +0 -144
  75. package/dist/kyber1024-PpwE1rki.mjs.map +0 -1
  76. package/dist/kyber1024-jeKS8CXf.js +0 -173
  77. package/dist/kyber1024-jeKS8CXf.js.map +0 -1
  78. package/dist/kyber768-DGBB_RS7.d.ts +0 -32
  79. package/dist/kyber768-DGBB_RS7.d.ts.map +0 -1
  80. package/dist/kyber768-DzIcGg1i.d.mts +0 -32
  81. package/dist/kyber768-DzIcGg1i.d.mts.map +0 -1
@@ -2,6 +2,7 @@ import { AES_ALGORITHM, AES_KEY_BIT_LENGTH, AUX_BYTE_LEN, IV_LEN_BYTES, KEY_FORM
2
2
  import { n as getBytesFromData } from "./mac-ZpRlx8Fs.mjs";
3
3
  import { concatBytes } from "@noble/hashes/utils.js";
4
4
  import { randomBytes } from "@noble/post-quantum/utils.js";
5
+ import { gcm } from "@noble/ciphers/webcrypto.js";
5
6
 
6
7
  //#region src/symmetric-crypto/keys.ts
7
8
  /**
@@ -47,13 +48,7 @@ async function genSymmetricCryptoKey() {
47
48
  * @returns The generated Uint8Array.
48
49
  */
49
50
  function genSymmetricKey() {
50
- try {
51
- const key = new Uint8Array(AES_KEY_BIT_LENGTH / 8);
52
- crypto.getRandomValues(key);
53
- return key;
54
- } catch (error) {
55
- throw new Error("Failed to generate symmetric key", { cause: error });
56
- }
51
+ return randomBytes(AES_KEY_BIT_LENGTH / 8);
57
52
  }
58
53
  /**
59
54
  * Derives CryptoKey from the given key material
@@ -110,16 +105,7 @@ async function makeAuxFixedLength(aux) {
110
105
  * @returns The resulting ciphertext
111
106
  */
112
107
  async function encryptMessage(message, encryptionKey, iv, additionalData) {
113
- try {
114
- const encrypted = await crypto.subtle.encrypt({
115
- name: AES_ALGORITHM,
116
- iv,
117
- additionalData
118
- }, encryptionKey, message);
119
- return new Uint8Array(encrypted);
120
- } catch (error) {
121
- throw new Error("Failed to encrypt symmetrically", { cause: error });
122
- }
108
+ return gcm(encryptionKey, iv, additionalData).encrypt(message);
123
109
  }
124
110
  /**
125
111
  * Symmetrically decrypts message
@@ -131,16 +117,7 @@ async function encryptMessage(message, encryptionKey, iv, additionalData) {
131
117
  * @returns The resulting decrypted message
132
118
  */
133
119
  async function decryptMessage(ciphertext, iv, encryptionKey, additionalData) {
134
- try {
135
- const decrypted = await crypto.subtle.decrypt({
136
- name: AES_ALGORITHM,
137
- iv,
138
- additionalData
139
- }, encryptionKey, ciphertext);
140
- return new Uint8Array(decrypted);
141
- } catch (error) {
142
- throw new Error("Failed to decrypt symmetrically", { cause: error });
143
- }
120
+ return gcm(encryptionKey, iv, additionalData).decrypt(ciphertext);
144
121
  }
145
122
 
146
123
  //#endregion
@@ -148,7 +125,7 @@ async function decryptMessage(ciphertext, iv, encryptionKey, additionalData) {
148
125
  /**
149
126
  * Symmetrically encrypts the message
150
127
  *
151
- * @param encryptionKey - The symmetric CryptoKey used for message encryption
128
+ * @param encryptionKey - The symmetric key used for message encryption
152
129
  * @param message - The message to encrypt
153
130
  * @param freeField - The context of the message (required for IV generation)
154
131
  * @param aux - The auxilary string
@@ -165,7 +142,7 @@ async function encryptSymmetrically(encryptionKey, message, aux, freeField) {
165
142
  /**
166
143
  * Decryps symmetrically encrypted message
167
144
  *
168
- * @param encryptionKey - The symmetric CryptoKey used for message encryption
145
+ * @param encryptionKey - The symmetric key used for message encryption
169
146
  * @param encryptedMessage - The ciphertext
170
147
  * @param aux - The auxilary string
171
148
  * @returns The resulting ciphertext.
@@ -181,4 +158,4 @@ async function decryptSymmetrically(encryptionKey, encryptedMessage, aux) {
181
158
 
182
159
  //#endregion
183
160
  export { genSymmetricCryptoKey as a, exportSymmetricCryptoKey as i, encryptSymmetrically as n, genSymmetricKey as o, deriveSymmetricCryptoKey as r, importSymmetricCryptoKey as s, decryptSymmetrically as t };
184
- //# sourceMappingURL=aes-DSDxP8uF.mjs.map
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"}
@@ -3,6 +3,7 @@ const require_constants = require('./constants.js');
3
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
- try {
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
@@ -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
- try {
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
- try {
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 CryptoKey used for message encryption
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 CryptoKey used for message encryption
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.
@@ -223,4 +200,4 @@ Object.defineProperty(exports, 'importSymmetricCryptoKey', {
223
200
  return importSymmetricCryptoKey;
224
201
  }
225
202
  });
226
- //# sourceMappingURL=aes-bOrKZuUC.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"}
@@ -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, KYBER1024_PUBLIC_KEY_LENGTH, KYBER1024_SECRET_KEY_LENGTH, KYBER512_PUBLIC_KEY_LENGTH, KYBER512_SECRET_KEY_LENGTH, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH };
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
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.mts","names":[],"sources":["../src/constants.ts"],"mappings":";cAAa,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,YAAA;AAAA,cACA,YAAA;AAAA,cAEA,sBAAA;AAAA,cACA,UAAA;AAAA,cACA,gBAAA;AAAA,cAEA,aAAA;AAAA,cAEA,oBAAA;AAAA,cACA,gBAAA;AAAA,cACA,aAAA;AAAA,cACA,cAAA;AAAA,cAGA,oBAAA;AAAA,cACA,mBAAA;AAAA,cACA,oBAAA;AAAA,cACA,yBAAA;AAAA,cACA,2BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cAEA,2BAAA;AAAA,cACA,2BAAA;AAAA,cAEA,iBAAA;AAAA,cAEA,YAAA;AAAA,cAEA,cAAA;AAAA,cACA,mBAAA;AAAA,cACA,QAAA;AAAA,cACA,UAAA"}
1
+ {"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"}
@@ -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, KYBER1024_PUBLIC_KEY_LENGTH, KYBER1024_SECRET_KEY_LENGTH, KYBER512_PUBLIC_KEY_LENGTH, KYBER512_SECRET_KEY_LENGTH, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH };
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
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","names":[],"sources":["../src/constants.ts"],"mappings":";cAAa,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,YAAA;AAAA,cACA,YAAA;AAAA,cAEA,sBAAA;AAAA,cACA,UAAA;AAAA,cACA,gBAAA;AAAA,cAEA,aAAA;AAAA,cAEA,oBAAA;AAAA,cACA,gBAAA;AAAA,cACA,aAAA;AAAA,cACA,cAAA;AAAA,cAGA,oBAAA;AAAA,cACA,mBAAA;AAAA,cACA,oBAAA;AAAA,cACA,yBAAA;AAAA,cACA,2BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cAEA,0BAAA;AAAA,cACA,0BAAA;AAAA,cAEA,2BAAA;AAAA,cACA,2BAAA;AAAA,cAEA,iBAAA;AAAA,cAEA,YAAA;AAAA,cAEA,cAAA;AAAA,cACA,mBAAA;AAAA,cACA,QAAA;AAAA,cACA,UAAA"}
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
@@ -18,18 +18,18 @@ const ARGON2ID_ITERATIONS = 4;
18
18
  const ARGON2ID_MEMORY_SIZE = 65536;
19
19
  const ARGON2ID_SALT_BYTE_LENGTH = 16;
20
20
  const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
21
- const KYBER512_PUBLIC_KEY_LENGTH = 800;
22
- const KYBER512_SECRET_KEY_LENGTH = 1632;
23
21
  const KYBER768_PUBLIC_KEY_LENGTH = 1184;
24
22
  const KYBER768_SECRET_KEY_LENGTH = 2400;
25
- const KYBER1024_PUBLIC_KEY_LENGTH = 1568;
26
- const KYBER1024_SECRET_KEY_LENGTH = 3168;
27
23
  const KYBER_SEED_LENGTH = 64;
28
24
  const HASH_BIT_LEN = 256;
29
25
  const MAX_CACHE_SIZE = 6e8;
30
26
  const MAX_EMAIL_PER_BATCH = 100;
31
27
  const DB_LABEL = "email";
32
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
33
 
34
34
  //#endregion
35
35
  exports.AES_ALGORITHM = AES_ALGORITHM;
@@ -52,13 +52,13 @@ exports.HASH_BIT_LEN = HASH_BIT_LEN;
52
52
  exports.IV_LEN_BYTES = IV_LEN_BYTES;
53
53
  exports.KEY_FORMAT = KEY_FORMAT;
54
54
  exports.KEY_WRAPPING_ALGORITHM = KEY_WRAPPING_ALGORITHM;
55
- exports.KYBER1024_PUBLIC_KEY_LENGTH = KYBER1024_PUBLIC_KEY_LENGTH;
56
- exports.KYBER1024_SECRET_KEY_LENGTH = KYBER1024_SECRET_KEY_LENGTH;
57
- exports.KYBER512_PUBLIC_KEY_LENGTH = KYBER512_PUBLIC_KEY_LENGTH;
58
- exports.KYBER512_SECRET_KEY_LENGTH = KYBER512_SECRET_KEY_LENGTH;
59
55
  exports.KYBER768_PUBLIC_KEY_LENGTH = KYBER768_PUBLIC_KEY_LENGTH;
60
56
  exports.KYBER768_SECRET_KEY_LENGTH = KYBER768_SECRET_KEY_LENGTH;
61
57
  exports.KYBER_SEED_LENGTH = KYBER_SEED_LENGTH;
62
58
  exports.MAX_CACHE_SIZE = MAX_CACHE_SIZE;
63
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
64
  //# sourceMappingURL=constants.js.map
@@ -1 +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 KYBER512_PUBLIC_KEY_LENGTH = 800;\nexport const KYBER512_SECRET_KEY_LENGTH = 1632;\n\nexport const KYBER768_PUBLIC_KEY_LENGTH = 1184;\nexport const KYBER768_SECRET_KEY_LENGTH = 2400;\n\nexport const KYBER1024_PUBLIC_KEY_LENGTH = 1568;\nexport const KYBER1024_SECRET_KEY_LENGTH = 3168;\n\nexport const KYBER_SEED_LENGTH = 64;\n\nexport const HASH_BIT_LEN = 256;\n\nexport const MAX_CACHE_SIZE = 600000000; // 600 MB\nexport const MAX_EMAIL_PER_BATCH = 100;\nexport const DB_LABEL = 'email';\nexport const DB_VERSION = 1;\n"],"mappings":";;;AAAA,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,eAAe;AAC5B,MAAa,eAAe;AAE5B,MAAa,yBAAyB;AACtC,MAAa,aAAa;AAC1B,MAAa,mBAAmB;AAEhC,MAAa,gBAAgB;AAE7B,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAChC,MAAa,gBAAgB;AAC7B,MAAa,iBAAiB;AAG9B,MAAa,uBAAuB;AACpC,MAAa,sBAAsB;AACnC,MAAa,uBAAuB;AACpC,MAAa,4BAA4B;AACzC,MAAa,8BAA8B;AAE3C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAE1C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAE1C,MAAa,8BAA8B;AAC3C,MAAa,8BAA8B;AAE3C,MAAa,oBAAoB;AAEjC,MAAa,eAAe;AAE5B,MAAa,iBAAiB;AAC9B,MAAa,sBAAsB;AACnC,MAAa,WAAW;AACxB,MAAa,aAAa"}
1
+ {"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"}
@@ -16,19 +16,19 @@ const ARGON2ID_ITERATIONS = 4;
16
16
  const ARGON2ID_MEMORY_SIZE = 65536;
17
17
  const ARGON2ID_SALT_BYTE_LENGTH = 16;
18
18
  const ARGON2ID_OUTPUT_BYTE_LENGTH = 32;
19
- const KYBER512_PUBLIC_KEY_LENGTH = 800;
20
- const KYBER512_SECRET_KEY_LENGTH = 1632;
21
19
  const KYBER768_PUBLIC_KEY_LENGTH = 1184;
22
20
  const KYBER768_SECRET_KEY_LENGTH = 2400;
23
- const KYBER1024_PUBLIC_KEY_LENGTH = 1568;
24
- const KYBER1024_SECRET_KEY_LENGTH = 3168;
25
21
  const KYBER_SEED_LENGTH = 64;
26
22
  const HASH_BIT_LEN = 256;
27
23
  const MAX_CACHE_SIZE = 6e8;
28
24
  const MAX_EMAIL_PER_BATCH = 100;
29
25
  const DB_LABEL = "email";
30
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;
31
31
 
32
32
  //#endregion
33
- export { AES_ALGORITHM, AES_KEY_BIT_LENGTH, ARGON2ID_ITERATIONS, ARGON2ID_MEMORY_SIZE, ARGON2ID_OUTPUT_BYTE_LENGTH, ARGON2ID_PARALLELISM, ARGON2ID_SALT_BYTE_LENGTH, AUX_BYTE_LEN, CONTEXT_DERIVE, CONTEXT_ENC_KEYSTORE, CONTEXT_INDEX, CONTEXT_RECOVERY, CONTEXT_WRAPPING, DB_LABEL, DB_VERSION, ECC_ALGORITHM, HASH_BIT_LEN, IV_LEN_BYTES, KEY_FORMAT, KEY_WRAPPING_ALGORITHM, KYBER1024_PUBLIC_KEY_LENGTH, KYBER1024_SECRET_KEY_LENGTH, KYBER512_PUBLIC_KEY_LENGTH, KYBER512_SECRET_KEY_LENGTH, KYBER768_PUBLIC_KEY_LENGTH, KYBER768_SECRET_KEY_LENGTH, KYBER_SEED_LENGTH, MAX_CACHE_SIZE, MAX_EMAIL_PER_BATCH };
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
34
  //# sourceMappingURL=constants.mjs.map
@@ -1 +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 KYBER512_PUBLIC_KEY_LENGTH = 800;\nexport const KYBER512_SECRET_KEY_LENGTH = 1632;\n\nexport const KYBER768_PUBLIC_KEY_LENGTH = 1184;\nexport const KYBER768_SECRET_KEY_LENGTH = 2400;\n\nexport const KYBER1024_PUBLIC_KEY_LENGTH = 1568;\nexport const KYBER1024_SECRET_KEY_LENGTH = 3168;\n\nexport const KYBER_SEED_LENGTH = 64;\n\nexport const HASH_BIT_LEN = 256;\n\nexport const MAX_CACHE_SIZE = 600000000; // 600 MB\nexport const MAX_EMAIL_PER_BATCH = 100;\nexport const DB_LABEL = 'email';\nexport const DB_VERSION = 1;\n"],"mappings":";AAAA,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,eAAe;AAC5B,MAAa,eAAe;AAE5B,MAAa,yBAAyB;AACtC,MAAa,aAAa;AAC1B,MAAa,mBAAmB;AAEhC,MAAa,gBAAgB;AAE7B,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAChC,MAAa,gBAAgB;AAC7B,MAAa,iBAAiB;AAG9B,MAAa,uBAAuB;AACpC,MAAa,sBAAsB;AACnC,MAAa,uBAAuB;AACpC,MAAa,4BAA4B;AACzC,MAAa,8BAA8B;AAE3C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAE1C,MAAa,6BAA6B;AAC1C,MAAa,6BAA6B;AAE1C,MAAa,8BAA8B;AAC3C,MAAa,8BAA8B;AAE3C,MAAa,oBAAoB;AAEjC,MAAa,eAAe;AAE5B,MAAa,iBAAiB;AAC9B,MAAa,sBAAsB;AACnC,MAAa,WAAW;AACxB,MAAa,aAAa"}
1
+ {"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"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_deriveKeysFromPassword = require('./deriveKeysFromPassword-Ko7NxkHM.js');
2
+ const require_deriveKeysFromPassword = require('./deriveKeysFromPassword-BYaiSGKL.js');
3
3
 
4
4
  exports.deriveSymmetricCryptoKeyFromContext = require_deriveKeysFromPassword.deriveSymmetricCryptoKeyFromContext;
5
5
  exports.deriveSymmetricCryptoKeyFromTwoKeys = require_deriveKeysFromPassword.deriveSymmetricCryptoKeyFromTwoKeys;
@@ -1,3 +1,3 @@
1
- import { a as verifyKeyFromPasswordHex, c as deriveSymmetricKeyFromContext, i as getKeyFromPasswordHex, l as deriveSymmetricKeyFromTwoKeys, n as getKeyFromPasswordAndSalt, o as deriveSymmetricCryptoKeyFromContext, r as getKeyFromPasswordAndSaltHex, s as deriveSymmetricCryptoKeyFromTwoKeys, t as getKeyFromPassword, u as deriveSymmetricKeyFromTwoKeysAndContext } from "./deriveKeysFromPassword-DJRWZ8Rw.mjs";
1
+ import { a as verifyKeyFromPasswordHex, c as deriveSymmetricKeyFromContext, i as getKeyFromPasswordHex, l as deriveSymmetricKeyFromTwoKeys, n as getKeyFromPasswordAndSalt, o as deriveSymmetricCryptoKeyFromContext, r as getKeyFromPasswordAndSaltHex, s as deriveSymmetricCryptoKeyFromTwoKeys, t as getKeyFromPassword, u as deriveSymmetricKeyFromTwoKeysAndContext } from "./deriveKeysFromPassword-XIwzErlL.mjs";
2
2
 
3
3
  export { deriveSymmetricCryptoKeyFromContext, deriveSymmetricCryptoKeyFromTwoKeys, deriveSymmetricKeyFromContext, deriveSymmetricKeyFromTwoKeys, deriveSymmetricKeyFromTwoKeysAndContext, getKeyFromPassword, getKeyFromPasswordAndSalt, getKeyFromPasswordAndSaltHex, getKeyFromPasswordHex, verifyKeyFromPasswordHex };
@@ -1,8 +1,9 @@
1
1
  const require_chunk = require('./chunk-EbLFQX5m.js');
2
2
  const require_constants = require('./constants.js');
3
3
  const require_genID = require('./genID-YJSl3YhL.js');
4
- const require_aes = require('./aes-bOrKZuUC.js');
4
+ const require_aes = require('./aes-DQo1MyCz.js');
5
5
  let _noble_hashes_blake3_js = require("@noble/hashes/blake3.js");
6
+ let _noble_post_quantum_utils_js = require("@noble/post-quantum/utils.js");
6
7
 
7
8
  //#region src/derive-key/deriveKeysFromKey.ts
8
9
  /**
@@ -2340,13 +2341,7 @@ async function argon2(password, salt, parallelism = require_constants.ARGON2ID_P
2340
2341
  * @returns The salt
2341
2342
  */
2342
2343
  function sampleSalt() {
2343
- try {
2344
- const salt = new Uint8Array(require_constants.ARGON2ID_SALT_BYTE_LENGTH);
2345
- crypto.getRandomValues(salt);
2346
- return salt;
2347
- } catch (error) {
2348
- throw new Error("Failed to sample salt", { cause: error });
2349
- }
2344
+ return (0, _noble_post_quantum_utils_js.randomBytes)(require_constants.ARGON2ID_SALT_BYTE_LENGTH);
2350
2345
  }
2351
2346
 
2352
2347
  //#endregion
@@ -2489,4 +2484,4 @@ Object.defineProperty(exports, 'verifyKeyFromPasswordHex', {
2489
2484
  return verifyKeyFromPasswordHex;
2490
2485
  }
2491
2486
  });
2492
- //# sourceMappingURL=deriveKeysFromPassword-Ko7NxkHM.js.map
2487
+ //# sourceMappingURL=deriveKeysFromPassword-BYaiSGKL.js.map