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.
Files changed (163) hide show
  1. package/dist/{symmetric-crypto-CrdS1Che.mjs → aes-DCb9dJqb.mjs} +10 -46
  2. package/dist/aes-DCb9dJqb.mjs.map +1 -0
  3. package/dist/{symmetric-crypto-D65zB396.js → aes-DQo1MyCz.js} +13 -54
  4. package/dist/aes-DQo1MyCz.js.map +1 -0
  5. package/dist/asymmetric-crypto.d.mts +1 -4
  6. package/dist/asymmetric-crypto.d.mts.map +1 -0
  7. package/dist/asymmetric-crypto.d.ts +1 -4
  8. package/dist/asymmetric-crypto.d.ts.map +1 -0
  9. package/dist/asymmetric-crypto.js +8 -7
  10. package/dist/asymmetric-crypto.mjs +1 -1
  11. package/dist/{chunk-DWirmd9C.mjs → chunk-DQk6qfdC.mjs} +3 -3
  12. package/dist/{chunk-Dt-PWiN7.js → chunk-EbLFQX5m.js} +3 -3
  13. package/dist/constants.d.mts +5 -5
  14. package/dist/constants.d.mts.map +1 -0
  15. package/dist/constants.d.ts +5 -5
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/constants.js +63 -30
  18. package/dist/constants.js.map +1 -0
  19. package/dist/constants.mjs +33 -2
  20. package/dist/constants.mjs.map +1 -0
  21. package/dist/derive-key.d.mts +1 -4
  22. package/dist/derive-key.d.mts.map +1 -0
  23. package/dist/derive-key.d.ts +1 -4
  24. package/dist/derive-key.d.ts.map +1 -0
  25. package/dist/derive-key.js +12 -14
  26. package/dist/derive-key.mjs +1 -4
  27. package/dist/{derive-key-CBf2WxJd.js → deriveKeysFromPassword-BYaiSGKL.js} +26 -52
  28. package/dist/deriveKeysFromPassword-BYaiSGKL.js.map +1 -0
  29. package/dist/{derive-key-Be7hS-cN.mjs → deriveKeysFromPassword-XIwzErlL.mjs} +7 -28
  30. package/dist/deriveKeysFromPassword-XIwzErlL.mjs.map +1 -0
  31. package/dist/email-crypto.d.mts +2 -5
  32. package/dist/email-crypto.d.mts.map +1 -0
  33. package/dist/email-crypto.d.ts +2 -5
  34. package/dist/email-crypto.d.ts.map +1 -0
  35. package/dist/email-crypto.js +12 -16
  36. package/dist/email-crypto.mjs +1 -6
  37. package/dist/email-search.d.mts +20 -23
  38. package/dist/email-search.d.mts.map +1 -0
  39. package/dist/email-search.d.ts +20 -23
  40. package/dist/email-search.d.ts.map +1 -0
  41. package/dist/email-search.js +25 -63
  42. package/dist/email-search.js.map +1 -1
  43. package/dist/email-search.mjs +17 -51
  44. package/dist/email-search.mjs.map +1 -1
  45. package/dist/{keystore-crypto-Bjgriq9h.mjs → emailEncryptionKey-B9xHw1h_.mjs} +12 -21
  46. package/dist/emailEncryptionKey-B9xHw1h_.mjs.map +1 -0
  47. package/dist/{keystore-crypto-B4yCVo9l.js → emailEncryptionKey-CQNe5W_T.js} +25 -40
  48. package/dist/emailEncryptionKey-CQNe5W_T.js.map +1 -0
  49. package/dist/{email-crypto-BrT98taw.js → emailKeys-C0KhtfNP.js} +67 -112
  50. package/dist/emailKeys-C0KhtfNP.js.map +1 -0
  51. package/dist/{email-crypto-DJUEjTxA.mjs → emailKeys-D4lp9NRv.mjs} +29 -75
  52. package/dist/emailKeys-D4lp9NRv.mjs.map +1 -0
  53. package/dist/{utils-DS04iUcX.mjs → genID-3Er5IowC.mjs} +4 -24
  54. package/dist/genID-3Er5IowC.mjs.map +1 -0
  55. package/dist/{utils-CNs3cyDj.js → genID-YJSl3YhL.js} +6 -31
  56. package/dist/genID-YJSl3YhL.js.map +1 -0
  57. package/dist/hash.d.mts +1 -4
  58. package/dist/hash.d.mts.map +1 -0
  59. package/dist/hash.d.ts +1 -4
  60. package/dist/hash.d.ts.map +1 -0
  61. package/dist/hash.js +11 -10
  62. package/dist/hash.mjs +1 -1
  63. package/dist/index.d.mts +19 -39
  64. package/dist/index.d.mts.map +1 -0
  65. package/dist/index.d.ts +19 -39
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +97 -88
  68. package/dist/index.mjs +12 -14
  69. package/dist/{asymmetric-crypto-CyXsV4XT.mjs → keys-BfcaiAOv.mjs} +3 -15
  70. package/dist/keys-BfcaiAOv.mjs.map +1 -0
  71. package/dist/{asymmetric-crypto-BORmLhnx.js → keys-CinT7kEY.js} +2 -20
  72. package/dist/keys-CinT7kEY.js.map +1 -0
  73. package/dist/keystore-crypto.d.mts +2 -5
  74. package/dist/keystore-crypto.d.mts.map +1 -0
  75. package/dist/keystore-crypto.d.ts +2 -5
  76. package/dist/keystore-crypto.d.ts.map +1 -0
  77. package/dist/keystore-crypto.js +5 -10
  78. package/dist/keystore-crypto.mjs +1 -7
  79. package/dist/kyber768-SXnIo-Nw.mjs +47 -0
  80. package/dist/kyber768-SXnIo-Nw.mjs.map +1 -0
  81. package/dist/kyber768-WUVc2fIR.js +65 -0
  82. package/dist/kyber768-WUVc2fIR.js.map +1 -0
  83. package/dist/{hash-BoqwNkcd.js → mac-BMb1F0dN.js} +3 -23
  84. package/dist/mac-BMb1F0dN.js.map +1 -0
  85. package/dist/{hash-CXeGAwai.mjs → mac-ZpRlx8Fs.mjs} +3 -18
  86. package/dist/mac-ZpRlx8Fs.mjs.map +1 -0
  87. package/dist/post-quantum-crypto.d.mts +32 -2
  88. package/dist/post-quantum-crypto.d.mts.map +1 -0
  89. package/dist/post-quantum-crypto.d.ts +32 -2
  90. package/dist/post-quantum-crypto.d.ts.map +1 -0
  91. package/dist/post-quantum-crypto.js +5 -16
  92. package/dist/post-quantum-crypto.mjs +2 -2
  93. package/dist/storage-service.d.mts +47 -2
  94. package/dist/storage-service.d.mts.map +1 -0
  95. package/dist/storage-service.d.ts +47 -2
  96. package/dist/storage-service.d.ts.map +1 -0
  97. package/dist/storage-service.js +58 -4
  98. package/dist/storage-service.js.map +1 -0
  99. package/dist/storage-service.mjs +55 -2
  100. package/dist/storage-service.mjs.map +1 -0
  101. package/dist/symmetric-crypto.d.mts +5 -8
  102. package/dist/symmetric-crypto.d.mts.map +1 -0
  103. package/dist/symmetric-crypto.d.ts +5 -8
  104. package/dist/symmetric-crypto.d.ts.map +1 -0
  105. package/dist/symmetric-crypto.js +9 -9
  106. package/dist/symmetric-crypto.mjs +1 -2
  107. package/dist/types.d.mts +108 -2
  108. package/dist/types.d.mts.map +1 -0
  109. package/dist/types.d.ts +108 -2
  110. package/dist/types.d.ts.map +1 -0
  111. package/dist/types.js +11 -2
  112. package/dist/types.js.map +1 -0
  113. package/dist/types.mjs +9 -2
  114. package/dist/types.mjs.map +1 -0
  115. package/dist/utils.d.mts +2 -5
  116. package/dist/utils.d.mts.map +1 -0
  117. package/dist/utils.d.ts +2 -5
  118. package/dist/utils.d.ts.map +1 -0
  119. package/dist/utils.js +16 -15
  120. package/dist/utils.mjs +1 -1
  121. package/package.json +24 -14
  122. package/dist/asymmetric-crypto-BORmLhnx.js.map +0 -1
  123. package/dist/asymmetric-crypto-CyXsV4XT.mjs.map +0 -1
  124. package/dist/constants-Ccp21E03.js +0 -208
  125. package/dist/constants-Ccp21E03.js.map +0 -1
  126. package/dist/constants-kTeX-2T0.mjs +0 -34
  127. package/dist/constants-kTeX-2T0.mjs.map +0 -1
  128. package/dist/derive-key-Be7hS-cN.mjs.map +0 -1
  129. package/dist/derive-key-CBf2WxJd.js.map +0 -1
  130. package/dist/email-crypto-BrT98taw.js.map +0 -1
  131. package/dist/email-crypto-DJUEjTxA.mjs.map +0 -1
  132. package/dist/hash-BoqwNkcd.js.map +0 -1
  133. package/dist/hash-CXeGAwai.mjs.map +0 -1
  134. package/dist/index-CQqgKsbX.d.ts +0 -50
  135. package/dist/index-CintVUbp.d.ts +0 -97
  136. package/dist/index-D5pBU_A5.d.mts +0 -50
  137. package/dist/index-MaOov-ag.d.mts +0 -97
  138. package/dist/keystore-crypto-B4yCVo9l.js.map +0 -1
  139. package/dist/keystore-crypto-Bjgriq9h.mjs.map +0 -1
  140. package/dist/keystore-service.d.mts +0 -48
  141. package/dist/keystore-service.d.ts +0 -48
  142. package/dist/keystore-service.js +0 -122
  143. package/dist/keystore-service.js.map +0 -1
  144. package/dist/keystore-service.mjs +0 -114
  145. package/dist/keystore-service.mjs.map +0 -1
  146. package/dist/post-quantum-crypto-CAi-cEkV.js +0 -189
  147. package/dist/post-quantum-crypto-CAi-cEkV.js.map +0 -1
  148. package/dist/post-quantum-crypto-Vv34t6gX.mjs +0 -154
  149. package/dist/post-quantum-crypto-Vv34t6gX.mjs.map +0 -1
  150. package/dist/storage-service-BgIK2aYZ.js +0 -82
  151. package/dist/storage-service-BgIK2aYZ.js.map +0 -1
  152. package/dist/storage-service-CubCbhY2.mjs +0 -65
  153. package/dist/storage-service-CubCbhY2.mjs.map +0 -1
  154. package/dist/symmetric-crypto-CrdS1Che.mjs.map +0 -1
  155. package/dist/symmetric-crypto-D65zB396.js.map +0 -1
  156. package/dist/types-52g887Zi.js +0 -16
  157. package/dist/types-52g887Zi.js.map +0 -1
  158. package/dist/types-BiEoleqw.mjs +0 -10
  159. package/dist/types-BiEoleqw.mjs.map +0 -1
  160. package/dist/types-Ds3ivE9W.d.ts +0 -104
  161. package/dist/types-DwQJtrTx.d.mts +0 -104
  162. package/dist/utils-CNs3cyDj.js.map +0 -1
  163. package/dist/utils-DS04iUcX.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
- import { t as __exportAll } from "./chunk-DWirmd9C.mjs";
2
- import { c as AUX_BYTE_LEN, n as AES_KEY_BIT_LENGTH, t as AES_ALGORITHM, v as IV_LEN_BYTES, y as KEY_FORMAT } from "./constants-kTeX-2T0.mjs";
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
- try {
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
- try {
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
- try {
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 CryptoKey used for message encryption
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 CryptoKey used for message encryption
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
- //#region src/symmetric-crypto/index.ts
185
- var symmetric_crypto_exports = /* @__PURE__ */ __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
- //#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-Dt-PWiN7.js');
2
- const require_constants = require('./constants-Ccp21E03.js');
3
- const require_hash = require('./hash-BoqwNkcd.js');
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
- 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
@@ -63,7 +58,7 @@ function genSymmetricKey() {
63
58
  */
64
59
  async function deriveSymmetricCryptoKey(keyMaterial) {
65
60
  try {
66
- return importSymmetricCryptoKey(require_hash.getBytesFromData(require_constants.AES_KEY_BIT_LENGTH / 8, keyMaterial));
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 = require_hash.getBytesFromData(4, freeField);
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 require_hash.getBytesFromData(require_constants.AUX_BYTE_LEN, aux);
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
- 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.
@@ -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
- Object.defineProperty(exports, 'symmetric_crypto_exports', {
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, index_d_exports as t };
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, index_d_exports as t };
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
- const require_asymmetric_crypto = require('./asymmetric-crypto-BORmLhnx.js');
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_keys = require('./keys-CinT7kEY.js');
2
3
 
3
- exports.deriveSecretKey = require_asymmetric_crypto.deriveSecretKey;
4
- exports.exportPrivateKey = require_asymmetric_crypto.exportPrivateKey;
5
- exports.exportPublicKey = require_asymmetric_crypto.exportPublicKey;
6
- exports.generateEccKeys = require_asymmetric_crypto.generateEccKeys;
7
- exports.importPrivateKey = require_asymmetric_crypto.importPrivateKey;
8
- exports.importPublicKey = require_asymmetric_crypto.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 importPrivateKey, i as generateEccKeys, n as exportPrivateKey, o as importPublicKey, r as exportPublicKey, s as deriveSecretKey } from "./asymmetric-crypto-CyXsV4XT.mjs";
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 rolldown:runtime
1
+ //#region \0rolldown/runtime.js
2
2
  var __defProp = Object.defineProperty;
3
- var __exportAll = (all, symbols) => {
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 (symbols) {
11
+ if (!no_symbols) {
12
12
  __defProp(target, Symbol.toStringTag, { value: "Module" });
13
13
  }
14
14
  return target;
@@ -1,4 +1,4 @@
1
- //#region rolldown:runtime
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, symbols) => {
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 (symbols) {
17
+ if (!no_symbols) {
18
18
  __defProp(target, Symbol.toStringTag, { value: "Module" });
19
19
  }
20
20
  return target;
@@ -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
@@ -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"}
@@ -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
@@ -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
- const require_constants = require('./constants-Ccp21E03.js');
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
- exports.AES_ALGORITHM = require_constants.AES_ALGORITHM;
4
- exports.AES_KEY_BIT_LENGTH = require_constants.AES_KEY_BIT_LENGTH;
5
- exports.ARGON2ID_ITERATIONS = require_constants.ARGON2ID_ITERATIONS;
6
- exports.ARGON2ID_MEMORY_SIZE = require_constants.ARGON2ID_MEMORY_SIZE;
7
- exports.ARGON2ID_OUTPUT_BYTE_LENGTH = require_constants.ARGON2ID_OUTPUT_BYTE_LENGTH;
8
- exports.ARGON2ID_PARALLELISM = require_constants.ARGON2ID_PARALLELISM;
9
- exports.ARGON2ID_SALT_BYTE_LENGTH = require_constants.ARGON2ID_SALT_BYTE_LENGTH;
10
- exports.AUX_BYTE_LEN = require_constants.AUX_BYTE_LEN;
11
- exports.CONTEXT_DERIVE = require_constants.CONTEXT_DERIVE;
12
- exports.CONTEXT_ENC_KEYSTORE = require_constants.CONTEXT_ENC_KEYSTORE;
13
- exports.CONTEXT_INDEX = require_constants.CONTEXT_INDEX;
14
- exports.CONTEXT_RECOVERY = require_constants.CONTEXT_RECOVERY;
15
- exports.CONTEXT_WRAPPING = require_constants.CONTEXT_WRAPPING;
16
- exports.DB_LABEL = require_constants.DB_LABEL;
17
- exports.DB_VERSION = require_constants.DB_VERSION;
18
- exports.ECC_ALGORITHM = require_constants.ECC_ALGORITHM;
19
- exports.HASH_BIT_LEN = require_constants.HASH_BIT_LEN;
20
- exports.IV_LEN_BYTES = require_constants.IV_LEN_BYTES;
21
- exports.KEY_FORMAT = require_constants.KEY_FORMAT;
22
- exports.KEY_WRAPPING_ALGORITHM = require_constants.KEY_WRAPPING_ALGORITHM;
23
- exports.KYBER1024_PUBLIC_KEY_LENGTH = require_constants.KYBER1024_PUBLIC_KEY_LENGTH;
24
- exports.KYBER1024_SECRET_KEY_LENGTH = require_constants.KYBER1024_SECRET_KEY_LENGTH;
25
- exports.KYBER512_PUBLIC_KEY_LENGTH = require_constants.KYBER512_PUBLIC_KEY_LENGTH;
26
- exports.KYBER512_SECRET_KEY_LENGTH = require_constants.KYBER512_SECRET_KEY_LENGTH;
27
- exports.KYBER768_PUBLIC_KEY_LENGTH = require_constants.KYBER768_PUBLIC_KEY_LENGTH;
28
- exports.KYBER768_SECRET_KEY_LENGTH = require_constants.KYBER768_SECRET_KEY_LENGTH;
29
- exports.KYBER_SEED_LENGTH = require_constants.KYBER_SEED_LENGTH;
30
- exports.MAX_CACHE_SIZE = require_constants.MAX_CACHE_SIZE;
31
- exports.MAX_EMAIL_PER_BATCH = require_constants.MAX_EMAIL_PER_BATCH;
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"}
@@ -1,3 +1,34 @@
1
- import { C as KYBER512_PUBLIC_KEY_LENGTH, D as KYBER_SEED_LENGTH, E as KYBER768_SECRET_KEY_LENGTH, O as MAX_CACHE_SIZE, S as KYBER1024_SECRET_KEY_LENGTH, T as KYBER768_PUBLIC_KEY_LENGTH, _ as HASH_BIT_LEN, a as ARGON2ID_OUTPUT_BYTE_LENGTH, b as KEY_WRAPPING_ALGORITHM, c as AUX_BYTE_LEN, d as CONTEXT_INDEX, f as CONTEXT_RECOVERY, g as ECC_ALGORITHM, h as DB_VERSION, i as ARGON2ID_MEMORY_SIZE, k as MAX_EMAIL_PER_BATCH, l as CONTEXT_DERIVE, m as DB_LABEL, n as AES_KEY_BIT_LENGTH, o as ARGON2ID_PARALLELISM, p as CONTEXT_WRAPPING, r as ARGON2ID_ITERATIONS, s as ARGON2ID_SALT_BYTE_LENGTH, t as AES_ALGORITHM, u as CONTEXT_ENC_KEYSTORE, v as IV_LEN_BYTES, w as KYBER512_SECRET_KEY_LENGTH, x as KYBER1024_PUBLIC_KEY_LENGTH, y as KEY_FORMAT } from "./constants-kTeX-2T0.mjs";
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
- 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
+ //#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"}
@@ -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, index_d_exports as t, verifyKeyFromPasswordHex };
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"}
@@ -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, index_d_exports as t, verifyKeyFromPasswordHex };
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"}