@tonysamperi/krypto 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/LICENCE +21 -0
  2. package/README.md +119 -0
  3. package/dist/cjs/algo/aes.class.d.cts +16 -0
  4. package/dist/cjs/algo/des.class.d.cts +19 -0
  5. package/dist/cjs/algo/index.d.cts +7 -0
  6. package/dist/cjs/algo/md5.class.d.cts +13 -0
  7. package/dist/cjs/algo/sha1.class.d.cts +9 -0
  8. package/dist/cjs/algo/sha256.class.d.cts +9 -0
  9. package/dist/cjs/algo/sha512.class.d.cts +9 -0
  10. package/dist/cjs/algo/triple-des.class.d.cts +16 -0
  11. package/dist/cjs/enc/base64.class.d.cts +31 -0
  12. package/dist/cjs/enc/encoder.model.d.cts +6 -0
  13. package/dist/cjs/enc/hex.class.d.cts +27 -0
  14. package/dist/cjs/enc/index.d.cts +6 -0
  15. package/dist/cjs/enc/latin1.class.d.cts +27 -0
  16. package/dist/cjs/enc/utf16.class.d.cts +28 -0
  17. package/dist/cjs/enc/utf8.class.d.cts +28 -0
  18. package/dist/cjs/format/formatter.interface.d.cts +5 -0
  19. package/dist/cjs/format/open-ssl.class.d.cts +27 -0
  20. package/dist/cjs/helpers/aes.helper.d.cts +2 -0
  21. package/dist/cjs/helpers/des.helper.d.cts +2 -0
  22. package/dist/cjs/helpers/index.d.cts +7 -0
  23. package/dist/cjs/helpers/md5.helper.d.cts +2 -0
  24. package/dist/cjs/helpers/sha1.helper.d.cts +2 -0
  25. package/dist/cjs/helpers/sha256.helper.d.cts +2 -0
  26. package/dist/cjs/helpers/sha512.helper.d.cts +2 -0
  27. package/dist/cjs/helpers/triple-des.helper.d.cts +2 -0
  28. package/dist/cjs/index.cjs +1 -0
  29. package/dist/cjs/index.d.cts +7 -0
  30. package/dist/cjs/kdf/evpkdf.class.d.cts +42 -0
  31. package/dist/cjs/kdf/index.d.cts +3 -0
  32. package/dist/cjs/kdf/kdf.model.d.cts +7 -0
  33. package/dist/cjs/kdf/open-ssl-kdf.class.d.cts +21 -0
  34. package/dist/cjs/kdf/pbkdf2.class.d.cts +18 -0
  35. package/dist/cjs/lib/block-cipher.class.d.cts +13 -0
  36. package/dist/cjs/lib/buffered-block-algorithm-config.interface.d.cts +13 -0
  37. package/dist/cjs/lib/buffered-block-algorithm.class.d.cts +54 -0
  38. package/dist/cjs/lib/cipher-helper.class.d.cts +10 -0
  39. package/dist/cjs/lib/cipher-params.class.d.cts +53 -0
  40. package/dist/cjs/lib/cipher.class.d.cts +112 -0
  41. package/dist/cjs/lib/hasher-constructor.type.d.cts +3 -0
  42. package/dist/cjs/lib/hasher-helper.type.d.cts +3 -0
  43. package/dist/cjs/lib/hasher.class.d.cts +58 -0
  44. package/dist/cjs/lib/hmac.class.d.cts +11 -0
  45. package/dist/cjs/lib/index.d.cts +8 -0
  46. package/dist/cjs/lib/password-based-cipher.class.d.cts +54 -0
  47. package/dist/cjs/lib/serializable-cipher.class.d.cts +73 -0
  48. package/dist/cjs/lib/word-array.class.d.cts +75 -0
  49. package/dist/cjs/lib/x64-word-array.class.d.cts +10 -0
  50. package/dist/cjs/lib/x64-word.class.d.cts +14 -0
  51. package/dist/cjs/mode/block-cipher-mode-algorithm.class.d.cts +20 -0
  52. package/dist/cjs/mode/block-cipher-mode.class.d.cts +28 -0
  53. package/dist/cjs/mode/cbc/cbc-decryptor.class.d.cts +17 -0
  54. package/dist/cjs/mode/cbc/cbc-encryptor.class.d.cts +17 -0
  55. package/dist/cjs/mode/cbc/cbc.class.d.cts +10 -0
  56. package/dist/cjs/mode/ctr/ctr-decryptor.class.d.cts +3 -0
  57. package/dist/cjs/mode/ctr/ctr-encryptor.class.d.cts +16 -0
  58. package/dist/cjs/mode/ctr/ctr.class.d.cts +10 -0
  59. package/dist/cjs/mode/ecb/ecb-decryptor.class.d.cts +14 -0
  60. package/dist/cjs/mode/ecb/ecb-encryptor.class.d.cts +14 -0
  61. package/dist/cjs/mode/ecb/ecb.class.d.cts +10 -0
  62. package/dist/cjs/mode/index.d.cts +11 -0
  63. package/dist/cjs/pad/index.d.cts +4 -0
  64. package/dist/cjs/pad/no-padding.class.d.cts +25 -0
  65. package/dist/cjs/pad/padding.model.d.cts +6 -0
  66. package/dist/cjs/pad/pkcs7.class.d.cts +25 -0
  67. package/dist/cjs/pad/zero-padding.class.d.cts +25 -0
  68. package/dist/esm/algo/aes.class.d.ts +16 -0
  69. package/dist/esm/algo/aes.class.js +138 -0
  70. package/dist/esm/algo/des.class.d.ts +19 -0
  71. package/dist/esm/algo/des.class.js +733 -0
  72. package/dist/esm/algo/index.d.ts +7 -0
  73. package/dist/esm/algo/index.js +7 -0
  74. package/dist/esm/algo/md5.class.d.ts +13 -0
  75. package/dist/esm/algo/md5.class.js +137 -0
  76. package/dist/esm/algo/sha1.class.d.ts +9 -0
  77. package/dist/esm/algo/sha1.class.js +66 -0
  78. package/dist/esm/algo/sha256.class.d.ts +9 -0
  79. package/dist/esm/algo/sha256.class.js +96 -0
  80. package/dist/esm/algo/sha512.class.d.ts +9 -0
  81. package/dist/esm/algo/sha512.class.js +221 -0
  82. package/dist/esm/algo/triple-des.class.d.ts +16 -0
  83. package/dist/esm/algo/triple-des.class.js +37 -0
  84. package/dist/esm/enc/base64.class.d.ts +31 -0
  85. package/dist/esm/enc/base64.class.js +80 -0
  86. package/dist/esm/enc/encoder.model.d.ts +6 -0
  87. package/dist/esm/enc/encoder.model.js +5 -0
  88. package/dist/esm/enc/hex.class.d.ts +27 -0
  89. package/dist/esm/enc/hex.class.js +45 -0
  90. package/dist/esm/enc/index.d.ts +6 -0
  91. package/dist/esm/enc/index.js +6 -0
  92. package/dist/esm/enc/latin1.class.d.ts +27 -0
  93. package/dist/esm/enc/latin1.class.js +44 -0
  94. package/dist/esm/enc/utf16.class.d.ts +28 -0
  95. package/dist/esm/enc/utf16.class.js +46 -0
  96. package/dist/esm/enc/utf8.class.d.ts +28 -0
  97. package/dist/esm/enc/utf8.class.js +39 -0
  98. package/dist/esm/format/formatter.interface.d.ts +5 -0
  99. package/dist/esm/format/formatter.interface.js +0 -0
  100. package/dist/esm/format/open-ssl.class.d.ts +27 -0
  101. package/dist/esm/format/open-ssl.class.js +57 -0
  102. package/dist/esm/helpers/aes.helper.d.ts +2 -0
  103. package/dist/esm/helpers/aes.helper.js +6 -0
  104. package/dist/esm/helpers/des.helper.d.ts +2 -0
  105. package/dist/esm/helpers/des.helper.js +6 -0
  106. package/dist/esm/helpers/index.d.ts +7 -0
  107. package/dist/esm/helpers/index.js +16 -0
  108. package/dist/esm/helpers/md5.helper.d.ts +2 -0
  109. package/dist/esm/helpers/md5.helper.js +6 -0
  110. package/dist/esm/helpers/sha1.helper.d.ts +2 -0
  111. package/dist/esm/helpers/sha1.helper.js +6 -0
  112. package/dist/esm/helpers/sha256.helper.d.ts +2 -0
  113. package/dist/esm/helpers/sha256.helper.js +6 -0
  114. package/dist/esm/helpers/sha512.helper.d.ts +2 -0
  115. package/dist/esm/helpers/sha512.helper.js +6 -0
  116. package/dist/esm/helpers/triple-des.helper.d.ts +2 -0
  117. package/dist/esm/helpers/triple-des.helper.js +6 -0
  118. package/dist/esm/index.d.ts +7 -0
  119. package/dist/esm/index.js +43 -0
  120. package/dist/esm/kdf/evpkdf.class.d.ts +42 -0
  121. package/dist/esm/kdf/evpkdf.class.js +59 -0
  122. package/dist/esm/kdf/index.d.ts +3 -0
  123. package/dist/esm/kdf/index.js +3 -0
  124. package/dist/esm/kdf/kdf.model.d.ts +7 -0
  125. package/dist/esm/kdf/kdf.model.js +5 -0
  126. package/dist/esm/kdf/open-ssl-kdf.class.d.ts +21 -0
  127. package/dist/esm/kdf/open-ssl-kdf.class.js +32 -0
  128. package/dist/esm/kdf/pbkdf2.class.d.ts +18 -0
  129. package/dist/esm/kdf/pbkdf2.class.js +43 -0
  130. package/dist/esm/lib/block-cipher.class.d.ts +13 -0
  131. package/dist/esm/lib/block-cipher.class.js +55 -0
  132. package/dist/esm/lib/buffered-block-algorithm-config.interface.d.ts +13 -0
  133. package/dist/esm/lib/buffered-block-algorithm-config.interface.js +0 -0
  134. package/dist/esm/lib/buffered-block-algorithm.class.d.ts +54 -0
  135. package/dist/esm/lib/buffered-block-algorithm.class.js +99 -0
  136. package/dist/esm/lib/cipher-helper.class.d.ts +10 -0
  137. package/dist/esm/lib/cipher-helper.class.js +24 -0
  138. package/dist/esm/lib/cipher-params.class.d.ts +53 -0
  139. package/dist/esm/lib/cipher-params.class.js +89 -0
  140. package/dist/esm/lib/cipher.class.d.ts +112 -0
  141. package/dist/esm/lib/cipher.class.js +112 -0
  142. package/dist/esm/lib/hasher-constructor.type.d.ts +3 -0
  143. package/dist/esm/lib/hasher-constructor.type.js +0 -0
  144. package/dist/esm/lib/hasher-helper.type.d.ts +3 -0
  145. package/dist/esm/lib/hasher-helper.type.js +0 -0
  146. package/dist/esm/lib/hasher.class.d.ts +58 -0
  147. package/dist/esm/lib/hasher.class.js +77 -0
  148. package/dist/esm/lib/hmac.class.d.ts +11 -0
  149. package/dist/esm/lib/hmac.class.js +39 -0
  150. package/dist/esm/lib/index.d.ts +8 -0
  151. package/dist/esm/lib/index.js +18 -0
  152. package/dist/esm/lib/password-based-cipher.class.d.ts +54 -0
  153. package/dist/esm/lib/password-based-cipher.class.js +92 -0
  154. package/dist/esm/lib/serializable-cipher.class.d.ts +73 -0
  155. package/dist/esm/lib/serializable-cipher.class.js +108 -0
  156. package/dist/esm/lib/word-array.class.d.ts +75 -0
  157. package/dist/esm/lib/word-array.class.js +123 -0
  158. package/dist/esm/lib/x64-word-array.class.d.ts +10 -0
  159. package/dist/esm/lib/x64-word-array.class.js +25 -0
  160. package/dist/esm/lib/x64-word.class.d.ts +14 -0
  161. package/dist/esm/lib/x64-word.class.js +47 -0
  162. package/dist/esm/mode/block-cipher-mode-algorithm.class.d.ts +20 -0
  163. package/dist/esm/mode/block-cipher-mode-algorithm.class.js +22 -0
  164. package/dist/esm/mode/block-cipher-mode.class.d.ts +28 -0
  165. package/dist/esm/mode/block-cipher-mode.class.js +36 -0
  166. package/dist/esm/mode/cbc/cbc-decryptor.class.d.ts +17 -0
  167. package/dist/esm/mode/cbc/cbc-decryptor.class.js +40 -0
  168. package/dist/esm/mode/cbc/cbc-encryptor.class.d.ts +17 -0
  169. package/dist/esm/mode/cbc/cbc-encryptor.class.js +39 -0
  170. package/dist/esm/mode/cbc/cbc.class.d.ts +10 -0
  171. package/dist/esm/mode/cbc/cbc.class.js +10 -0
  172. package/dist/esm/mode/ctr/ctr-decryptor.class.d.ts +3 -0
  173. package/dist/esm/mode/ctr/ctr-decryptor.class.js +6 -0
  174. package/dist/esm/mode/ctr/ctr-encryptor.class.d.ts +16 -0
  175. package/dist/esm/mode/ctr/ctr-encryptor.class.js +33 -0
  176. package/dist/esm/mode/ctr/ctr.class.d.ts +10 -0
  177. package/dist/esm/mode/ctr/ctr.class.js +10 -0
  178. package/dist/esm/mode/ecb/ecb-decryptor.class.d.ts +14 -0
  179. package/dist/esm/mode/ecb/ecb-decryptor.class.js +19 -0
  180. package/dist/esm/mode/ecb/ecb-encryptor.class.d.ts +14 -0
  181. package/dist/esm/mode/ecb/ecb-encryptor.class.js +19 -0
  182. package/dist/esm/mode/ecb/ecb.class.d.ts +10 -0
  183. package/dist/esm/mode/ecb/ecb.class.js +10 -0
  184. package/dist/esm/mode/index.d.ts +11 -0
  185. package/dist/esm/mode/index.js +24 -0
  186. package/dist/esm/pad/index.d.ts +4 -0
  187. package/dist/esm/pad/index.js +8 -0
  188. package/dist/esm/pad/no-padding.class.d.ts +25 -0
  189. package/dist/esm/pad/no-padding.class.js +28 -0
  190. package/dist/esm/pad/padding.model.d.ts +6 -0
  191. package/dist/esm/pad/padding.model.js +5 -0
  192. package/dist/esm/pad/pkcs7.class.d.ts +25 -0
  193. package/dist/esm/pad/pkcs7.class.js +40 -0
  194. package/dist/esm/pad/zero-padding.class.d.ts +25 -0
  195. package/dist/esm/pad/zero-padding.class.js +38 -0
  196. package/package.json +82 -0
@@ -0,0 +1,733 @@
1
+ import { BlockCipher } from "../lib/block-cipher.class.js";
2
+ const PC1 = [
3
+ 57,
4
+ 49,
5
+ 41,
6
+ 33,
7
+ 25,
8
+ 17,
9
+ 9,
10
+ 1,
11
+ 58,
12
+ 50,
13
+ 42,
14
+ 34,
15
+ 26,
16
+ 18,
17
+ 10,
18
+ 2,
19
+ 59,
20
+ 51,
21
+ 43,
22
+ 35,
23
+ 27,
24
+ 19,
25
+ 11,
26
+ 3,
27
+ 60,
28
+ 52,
29
+ 44,
30
+ 36,
31
+ 63,
32
+ 55,
33
+ 47,
34
+ 39,
35
+ 31,
36
+ 23,
37
+ 15,
38
+ 7,
39
+ 62,
40
+ 54,
41
+ 46,
42
+ 38,
43
+ 30,
44
+ 22,
45
+ 14,
46
+ 6,
47
+ 61,
48
+ 53,
49
+ 45,
50
+ 37,
51
+ 29,
52
+ 21,
53
+ 13,
54
+ 5,
55
+ 28,
56
+ 20,
57
+ 12,
58
+ 4
59
+ ];
60
+ const PC2 = [
61
+ 14,
62
+ 17,
63
+ 11,
64
+ 24,
65
+ 1,
66
+ 5,
67
+ 3,
68
+ 28,
69
+ 15,
70
+ 6,
71
+ 21,
72
+ 10,
73
+ 23,
74
+ 19,
75
+ 12,
76
+ 4,
77
+ 26,
78
+ 8,
79
+ 16,
80
+ 7,
81
+ 27,
82
+ 20,
83
+ 13,
84
+ 2,
85
+ 41,
86
+ 52,
87
+ 31,
88
+ 37,
89
+ 47,
90
+ 55,
91
+ 30,
92
+ 40,
93
+ 51,
94
+ 45,
95
+ 33,
96
+ 48,
97
+ 44,
98
+ 49,
99
+ 39,
100
+ 56,
101
+ 34,
102
+ 53,
103
+ 46,
104
+ 42,
105
+ 50,
106
+ 36,
107
+ 29,
108
+ 32
109
+ ];
110
+ const BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
111
+ const SBOX_P = [
112
+ {
113
+ 0: 8421888,
114
+ 268435456: 32768,
115
+ 536870912: 8421378,
116
+ 805306368: 2,
117
+ 1073741824: 512,
118
+ 1342177280: 8421890,
119
+ 1610612736: 8389122,
120
+ 1879048192: 8388608,
121
+ 2147483648: 514,
122
+ 2415919104: 8389120,
123
+ 2684354560: 33280,
124
+ 2952790016: 8421376,
125
+ 3221225472: 32770,
126
+ 3489660928: 8388610,
127
+ 3758096384: 0,
128
+ 4026531840: 33282,
129
+ 134217728: 0,
130
+ 402653184: 8421890,
131
+ 671088640: 33282,
132
+ 939524096: 32768,
133
+ 1207959552: 8421888,
134
+ 1476395008: 512,
135
+ 1744830464: 8421378,
136
+ 2013265920: 2,
137
+ 2281701376: 8389120,
138
+ 2550136832: 33280,
139
+ 2818572288: 8421376,
140
+ 3087007744: 8389122,
141
+ 3355443200: 8388610,
142
+ 3623878656: 32770,
143
+ 3892314112: 514,
144
+ 4160749568: 8388608,
145
+ 1: 32768,
146
+ 268435457: 2,
147
+ 536870913: 8421888,
148
+ 805306369: 8388608,
149
+ 1073741825: 8421378,
150
+ 1342177281: 33280,
151
+ 1610612737: 512,
152
+ 1879048193: 8389122,
153
+ 2147483649: 8421890,
154
+ 2415919105: 8421376,
155
+ 2684354561: 8388610,
156
+ 2952790017: 33282,
157
+ 3221225473: 514,
158
+ 3489660929: 8389120,
159
+ 3758096385: 32770,
160
+ 4026531841: 0,
161
+ 134217729: 8421890,
162
+ 402653185: 8421376,
163
+ 671088641: 8388608,
164
+ 939524097: 512,
165
+ 1207959553: 32768,
166
+ 1476395009: 8388610,
167
+ 1744830465: 2,
168
+ 2013265921: 33282,
169
+ 2281701377: 32770,
170
+ 2550136833: 8389122,
171
+ 2818572289: 514,
172
+ 3087007745: 8421888,
173
+ 3355443201: 8389120,
174
+ 3623878657: 0,
175
+ 3892314113: 33280,
176
+ 4160749569: 8421378
177
+ },
178
+ {
179
+ 0: 1074282512,
180
+ 16777216: 16384,
181
+ 33554432: 524288,
182
+ 50331648: 1074266128,
183
+ 67108864: 1073741840,
184
+ 83886080: 1074282496,
185
+ 100663296: 1073758208,
186
+ 117440512: 16,
187
+ 134217728: 540672,
188
+ 150994944: 1073758224,
189
+ 167772160: 1073741824,
190
+ 184549376: 540688,
191
+ 201326592: 524304,
192
+ 218103808: 0,
193
+ 234881024: 16400,
194
+ 251658240: 1074266112,
195
+ 8388608: 1073758208,
196
+ 25165824: 540688,
197
+ 41943040: 16,
198
+ 58720256: 1073758224,
199
+ 75497472: 1074282512,
200
+ 92274688: 1073741824,
201
+ 109051904: 524288,
202
+ 125829120: 1074266128,
203
+ 142606336: 524304,
204
+ 159383552: 0,
205
+ 176160768: 16384,
206
+ 192937984: 1074266112,
207
+ 209715200: 1073741840,
208
+ 226492416: 540672,
209
+ 243269632: 1074282496,
210
+ 260046848: 16400,
211
+ 268435456: 0,
212
+ 285212672: 1074266128,
213
+ 301989888: 1073758224,
214
+ 318767104: 1074282496,
215
+ 335544320: 1074266112,
216
+ 352321536: 16,
217
+ 369098752: 540688,
218
+ 385875968: 16384,
219
+ 402653184: 16400,
220
+ 419430400: 524288,
221
+ 436207616: 524304,
222
+ 452984832: 1073741840,
223
+ 469762048: 540672,
224
+ 486539264: 1073758208,
225
+ 503316480: 1073741824,
226
+ 520093696: 1074282512,
227
+ 276824064: 540688,
228
+ 293601280: 524288,
229
+ 310378496: 1074266112,
230
+ 327155712: 16384,
231
+ 343932928: 1073758208,
232
+ 360710144: 1074282512,
233
+ 377487360: 16,
234
+ 394264576: 1073741824,
235
+ 411041792: 1074282496,
236
+ 427819008: 1073741840,
237
+ 444596224: 1073758224,
238
+ 461373440: 524304,
239
+ 478150656: 0,
240
+ 494927872: 16400,
241
+ 511705088: 1074266128,
242
+ 528482304: 540672
243
+ },
244
+ {
245
+ 0: 260,
246
+ 1048576: 0,
247
+ 2097152: 67109120,
248
+ 3145728: 65796,
249
+ 4194304: 65540,
250
+ 5242880: 67108868,
251
+ 6291456: 67174660,
252
+ 7340032: 67174400,
253
+ 8388608: 67108864,
254
+ 9437184: 67174656,
255
+ 10485760: 65792,
256
+ 11534336: 67174404,
257
+ 12582912: 67109124,
258
+ 13631488: 65536,
259
+ 14680064: 4,
260
+ 15728640: 256,
261
+ 524288: 67174656,
262
+ 1572864: 67174404,
263
+ 2621440: 0,
264
+ 3670016: 67109120,
265
+ 4718592: 67108868,
266
+ 5767168: 65536,
267
+ 6815744: 65540,
268
+ 7864320: 260,
269
+ 8912896: 4,
270
+ 9961472: 256,
271
+ 11010048: 67174400,
272
+ 12058624: 65796,
273
+ 13107200: 65792,
274
+ 14155776: 67109124,
275
+ 15204352: 67174660,
276
+ 16252928: 67108864,
277
+ 16777216: 67174656,
278
+ 17825792: 65540,
279
+ 18874368: 65536,
280
+ 19922944: 67109120,
281
+ 20971520: 256,
282
+ 22020096: 67174660,
283
+ 23068672: 67108868,
284
+ 24117248: 0,
285
+ 25165824: 67109124,
286
+ 26214400: 67108864,
287
+ 27262976: 4,
288
+ 28311552: 65792,
289
+ 29360128: 67174400,
290
+ 30408704: 260,
291
+ 31457280: 65796,
292
+ 32505856: 67174404,
293
+ 17301504: 67108864,
294
+ 18350080: 260,
295
+ 19398656: 67174656,
296
+ 20447232: 0,
297
+ 21495808: 65540,
298
+ 22544384: 67109120,
299
+ 23592960: 256,
300
+ 24641536: 67174404,
301
+ 25690112: 65536,
302
+ 26738688: 67174660,
303
+ 27787264: 65796,
304
+ 28835840: 67108868,
305
+ 29884416: 67109124,
306
+ 30932992: 67174400,
307
+ 31981568: 4,
308
+ 33030144: 65792
309
+ },
310
+ {
311
+ 0: 2151682048,
312
+ 65536: 2147487808,
313
+ 131072: 4198464,
314
+ 196608: 2151677952,
315
+ 262144: 0,
316
+ 327680: 4198400,
317
+ 393216: 2147483712,
318
+ 458752: 4194368,
319
+ 524288: 2147483648,
320
+ 589824: 4194304,
321
+ 655360: 64,
322
+ 720896: 2147487744,
323
+ 786432: 2151678016,
324
+ 851968: 4160,
325
+ 917504: 4096,
326
+ 983040: 2151682112,
327
+ 32768: 2147487808,
328
+ 98304: 64,
329
+ 163840: 2151678016,
330
+ 229376: 2147487744,
331
+ 294912: 4198400,
332
+ 360448: 2151682112,
333
+ 425984: 0,
334
+ 491520: 2151677952,
335
+ 557056: 4096,
336
+ 622592: 2151682048,
337
+ 688128: 4194304,
338
+ 753664: 4160,
339
+ 819200: 2147483648,
340
+ 884736: 4194368,
341
+ 950272: 4198464,
342
+ 1015808: 2147483712,
343
+ 1048576: 4194368,
344
+ 1114112: 4198400,
345
+ 1179648: 2147483712,
346
+ 1245184: 0,
347
+ 1310720: 4160,
348
+ 1376256: 2151678016,
349
+ 1441792: 2151682048,
350
+ 1507328: 2147487808,
351
+ 1572864: 2151682112,
352
+ 1638400: 2147483648,
353
+ 1703936: 2151677952,
354
+ 1769472: 4198464,
355
+ 1835008: 2147487744,
356
+ 1900544: 4194304,
357
+ 1966080: 64,
358
+ 2031616: 4096,
359
+ 1081344: 2151677952,
360
+ 1146880: 2151682112,
361
+ 1212416: 0,
362
+ 1277952: 4198400,
363
+ 1343488: 4194368,
364
+ 1409024: 2147483648,
365
+ 1474560: 2147487808,
366
+ 1540096: 64,
367
+ 1605632: 2147483712,
368
+ 1671168: 4096,
369
+ 1736704: 2147487744,
370
+ 1802240: 2151678016,
371
+ 1867776: 4160,
372
+ 1933312: 2151682048,
373
+ 1998848: 4194304,
374
+ 2064384: 4198464
375
+ },
376
+ {
377
+ 0: 128,
378
+ 4096: 17039360,
379
+ 8192: 262144,
380
+ 12288: 536870912,
381
+ 16384: 537133184,
382
+ 20480: 16777344,
383
+ 24576: 553648256,
384
+ 28672: 262272,
385
+ 32768: 16777216,
386
+ 36864: 537133056,
387
+ 40960: 536871040,
388
+ 45056: 553910400,
389
+ 49152: 553910272,
390
+ 53248: 0,
391
+ 57344: 17039488,
392
+ 61440: 553648128,
393
+ 2048: 17039488,
394
+ 6144: 553648256,
395
+ 10240: 128,
396
+ 14336: 17039360,
397
+ 18432: 262144,
398
+ 22528: 537133184,
399
+ 26624: 553910272,
400
+ 30720: 536870912,
401
+ 34816: 537133056,
402
+ 38912: 0,
403
+ 43008: 553910400,
404
+ 47104: 16777344,
405
+ 51200: 536871040,
406
+ 55296: 553648128,
407
+ 59392: 16777216,
408
+ 63488: 262272,
409
+ 65536: 262144,
410
+ 69632: 128,
411
+ 73728: 536870912,
412
+ 77824: 553648256,
413
+ 81920: 16777344,
414
+ 86016: 553910272,
415
+ 90112: 537133184,
416
+ 94208: 16777216,
417
+ 98304: 553910400,
418
+ 102400: 553648128,
419
+ 106496: 17039360,
420
+ 110592: 537133056,
421
+ 114688: 262272,
422
+ 118784: 536871040,
423
+ 122880: 0,
424
+ 126976: 17039488,
425
+ 67584: 553648256,
426
+ 71680: 16777216,
427
+ 75776: 17039360,
428
+ 79872: 537133184,
429
+ 83968: 536870912,
430
+ 88064: 17039488,
431
+ 92160: 128,
432
+ 96256: 553910272,
433
+ 100352: 262272,
434
+ 104448: 553910400,
435
+ 108544: 0,
436
+ 112640: 553648128,
437
+ 116736: 16777344,
438
+ 120832: 262144,
439
+ 124928: 537133056,
440
+ 129024: 536871040
441
+ },
442
+ {
443
+ 0: 268435464,
444
+ 256: 8192,
445
+ 512: 270532608,
446
+ 768: 270540808,
447
+ 1024: 268443648,
448
+ 1280: 2097152,
449
+ 1536: 2097160,
450
+ 1792: 268435456,
451
+ 2048: 0,
452
+ 2304: 268443656,
453
+ 2560: 2105344,
454
+ 2816: 8,
455
+ 3072: 270532616,
456
+ 3328: 2105352,
457
+ 3584: 8200,
458
+ 3840: 270540800,
459
+ 128: 270532608,
460
+ 384: 270540808,
461
+ 640: 8,
462
+ 896: 2097152,
463
+ 1152: 2105352,
464
+ 1408: 268435464,
465
+ 1664: 268443648,
466
+ 1920: 8200,
467
+ 2176: 2097160,
468
+ 2432: 8192,
469
+ 2688: 268443656,
470
+ 2944: 270532616,
471
+ 3200: 0,
472
+ 3456: 270540800,
473
+ 3712: 2105344,
474
+ 3968: 268435456,
475
+ 4096: 268443648,
476
+ 4352: 270532616,
477
+ 4608: 270540808,
478
+ 4864: 8200,
479
+ 5120: 2097152,
480
+ 5376: 268435456,
481
+ 5632: 268435464,
482
+ 5888: 2105344,
483
+ 6144: 2105352,
484
+ 6400: 0,
485
+ 6656: 8,
486
+ 6912: 270532608,
487
+ 7168: 8192,
488
+ 7424: 268443656,
489
+ 7680: 270540800,
490
+ 7936: 2097160,
491
+ 4224: 8,
492
+ 4480: 2105344,
493
+ 4736: 2097152,
494
+ 4992: 268435464,
495
+ 5248: 268443648,
496
+ 5504: 8200,
497
+ 5760: 270540808,
498
+ 6016: 270532608,
499
+ 6272: 270540800,
500
+ 6528: 270532616,
501
+ 6784: 8192,
502
+ 7040: 2105352,
503
+ 7296: 2097160,
504
+ 7552: 0,
505
+ 7808: 268435456,
506
+ 8064: 268443656
507
+ },
508
+ {
509
+ 0: 1048576,
510
+ 16: 33555457,
511
+ 32: 1024,
512
+ 48: 1049601,
513
+ 64: 34604033,
514
+ 80: 0,
515
+ 96: 1,
516
+ 112: 34603009,
517
+ 128: 33555456,
518
+ 144: 1048577,
519
+ 160: 33554433,
520
+ 176: 34604032,
521
+ 192: 34603008,
522
+ 208: 1025,
523
+ 224: 1049600,
524
+ 240: 33554432,
525
+ 8: 34603009,
526
+ 24: 0,
527
+ 40: 33555457,
528
+ 56: 34604032,
529
+ 72: 1048576,
530
+ 88: 33554433,
531
+ 104: 33554432,
532
+ 120: 1025,
533
+ 136: 1049601,
534
+ 152: 33555456,
535
+ 168: 34603008,
536
+ 184: 1048577,
537
+ 200: 1024,
538
+ 216: 34604033,
539
+ 232: 1,
540
+ 248: 1049600,
541
+ 256: 33554432,
542
+ 272: 1048576,
543
+ 288: 33555457,
544
+ 304: 34603009,
545
+ 320: 1048577,
546
+ 336: 33555456,
547
+ 352: 34604032,
548
+ 368: 1049601,
549
+ 384: 1025,
550
+ 400: 34604033,
551
+ 416: 1049600,
552
+ 432: 1,
553
+ 448: 0,
554
+ 464: 34603008,
555
+ 480: 33554433,
556
+ 496: 1024,
557
+ 264: 1049600,
558
+ 280: 33555457,
559
+ 296: 34603009,
560
+ 312: 1,
561
+ 328: 33554432,
562
+ 344: 1048576,
563
+ 360: 1025,
564
+ 376: 34604032,
565
+ 392: 33554433,
566
+ 408: 34603008,
567
+ 424: 0,
568
+ 440: 34604033,
569
+ 456: 1049601,
570
+ 472: 1024,
571
+ 488: 33555456,
572
+ 504: 1048577
573
+ },
574
+ {
575
+ 0: 134219808,
576
+ 1: 131072,
577
+ 2: 134217728,
578
+ 3: 32,
579
+ 4: 131104,
580
+ 5: 134350880,
581
+ 6: 134350848,
582
+ 7: 2048,
583
+ 8: 134348800,
584
+ 9: 134219776,
585
+ 10: 133120,
586
+ 11: 134348832,
587
+ 12: 2080,
588
+ 13: 0,
589
+ 14: 134217760,
590
+ 15: 133152,
591
+ 2147483648: 2048,
592
+ 2147483649: 134350880,
593
+ 2147483650: 134219808,
594
+ 2147483651: 134217728,
595
+ 2147483652: 134348800,
596
+ 2147483653: 133120,
597
+ 2147483654: 133152,
598
+ 2147483655: 32,
599
+ 2147483656: 134217760,
600
+ 2147483657: 2080,
601
+ 2147483658: 131104,
602
+ 2147483659: 134350848,
603
+ 2147483660: 0,
604
+ 2147483661: 134348832,
605
+ 2147483662: 134219776,
606
+ 2147483663: 131072,
607
+ 16: 133152,
608
+ 17: 134350848,
609
+ 18: 32,
610
+ 19: 2048,
611
+ 20: 134219776,
612
+ 21: 134217760,
613
+ 22: 134348832,
614
+ 23: 131072,
615
+ 24: 0,
616
+ 25: 131104,
617
+ 26: 134348800,
618
+ 27: 134219808,
619
+ 28: 134350880,
620
+ 29: 133120,
621
+ 30: 2080,
622
+ 31: 134217728,
623
+ 2147483664: 131072,
624
+ 2147483665: 2048,
625
+ 2147483666: 134348832,
626
+ 2147483667: 133152,
627
+ 2147483668: 32,
628
+ 2147483669: 134348800,
629
+ 2147483670: 134217728,
630
+ 2147483671: 134219808,
631
+ 2147483672: 134350880,
632
+ 2147483673: 134217760,
633
+ 2147483674: 134219776,
634
+ 2147483675: 0,
635
+ 2147483676: 133120,
636
+ 2147483677: 2080,
637
+ 2147483678: 131104,
638
+ 2147483679: 134350848
639
+ }
640
+ ];
641
+ const SBOX_MASK = [
642
+ 4160749569,
643
+ 528482304,
644
+ 33030144,
645
+ 2064384,
646
+ 129024,
647
+ 8064,
648
+ 504,
649
+ 2147483679
650
+ ];
651
+ class DES extends BlockCipher {
652
+ constructor(xformMode, key, cfg) {
653
+ super(xformMode, key, cfg);
654
+ this._invSubKeys = [];
655
+ this._lBlock = 0;
656
+ this._rBlock = 0;
657
+ this._subKeys = [];
658
+ this.reset();
659
+ }
660
+ decryptBlock(m, offset) {
661
+ this._doCryptBlock(m, offset, this._invSubKeys);
662
+ }
663
+ encryptBlock(m, offset) {
664
+ this._doCryptBlock(m, offset, this._subKeys);
665
+ }
666
+ reset() {
667
+ super.reset();
668
+ const keyBits = [];
669
+ for (let i = 0; i < 56; i++) {
670
+ const keyBitPos = PC1[i] - 1;
671
+ keyBits[i] = this._key.words[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1;
672
+ }
673
+ this._subKeys = [];
674
+ for (let nSubKey = 0; nSubKey < 16; nSubKey++) {
675
+ this._subKeys[nSubKey] = [];
676
+ const bitShift = BIT_SHIFTS[nSubKey];
677
+ for (let i = 0; i < 24; i++) {
678
+ this._subKeys[nSubKey][i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6;
679
+ this._subKeys[nSubKey][4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6;
680
+ }
681
+ this._subKeys[nSubKey][0] = this._subKeys[nSubKey][0] << 1 | this._subKeys[nSubKey][0] >>> 31;
682
+ for (let i = 1; i < 7; i++) {
683
+ this._subKeys[nSubKey][i] = this._subKeys[nSubKey][i] >>> (i - 1) * 4 + 3;
684
+ }
685
+ this._subKeys[nSubKey][7] = this._subKeys[nSubKey][7] << 5 | this._subKeys[nSubKey][7] >>> 27;
686
+ }
687
+ this._invSubKeys = [];
688
+ for (let i = 0; i < 16; i++) {
689
+ this._invSubKeys[i] = this._subKeys[15 - i];
690
+ }
691
+ }
692
+ _doCryptBlock(m, offset, subKeys) {
693
+ this._lBlock = m[offset];
694
+ this._rBlock = m[offset + 1];
695
+ this._exchangeLR(4, 252645135);
696
+ this._exchangeLR(16, 65535);
697
+ this._exchangeRL(2, 858993459);
698
+ this._exchangeRL(8, 16711935);
699
+ this._exchangeLR(1, 1431655765);
700
+ for (let round = 0; round < 16; round++) {
701
+ const subKey = subKeys[round];
702
+ let f = 0;
703
+ for (let i = 0; i < 8; i++) {
704
+ f |= SBOX_P[i][((this._rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
705
+ }
706
+ [this._lBlock, this._rBlock] = [this._rBlock, this._lBlock ^ f];
707
+ }
708
+ [this._lBlock, this._rBlock] = [this._rBlock, this._lBlock];
709
+ this._exchangeLR(1, 1431655765);
710
+ this._exchangeRL(8, 16711935);
711
+ this._exchangeRL(2, 858993459);
712
+ this._exchangeLR(16, 65535);
713
+ this._exchangeLR(4, 252645135);
714
+ m[offset] = this._lBlock;
715
+ m[offset + 1] = this._rBlock;
716
+ }
717
+ _exchangeLR(offset, mask) {
718
+ const t = (this._lBlock >>> offset ^ this._rBlock) & mask;
719
+ this._rBlock ^= t;
720
+ this._lBlock ^= t << offset;
721
+ }
722
+ _exchangeRL(offset, mask) {
723
+ const t = (this._rBlock >>> offset ^ this._lBlock) & mask;
724
+ this._lBlock ^= t;
725
+ this._rBlock ^= t << offset;
726
+ }
727
+ }
728
+ DES.blockSize = 64 / 32;
729
+ DES.ivSize = 64 / 32;
730
+ DES.keySize = 64 / 32;
731
+ export {
732
+ DES
733
+ };
@@ -0,0 +1,7 @@
1
+ export * from "./aes.class.js";
2
+ export * from "./des.class.js";
3
+ export * from "./md5.class.js";
4
+ export * from "./triple-des.class.js";
5
+ export * from "./sha1.class.js";
6
+ export * from "./sha256.class.js";
7
+ export * from "./sha512.class.js";