react-native-quick-crypto 0.7.2 → 1.0.0-beta.1

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 (304) hide show
  1. package/QuickCrypto.podspec +34 -0
  2. package/android/CMakeLists.txt +32 -64
  3. package/android/build.gradle +52 -125
  4. package/android/gradle.properties +3 -3
  5. package/android/src/main/cpp/cpp-adapter.cpp +9 -54
  6. package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +38 -0
  7. package/ios/QuickCryptoOnLoad.mm +19 -0
  8. package/lib/commonjs/index.js +39 -39
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/package.json +1 -0
  11. package/lib/commonjs/random.js +26 -12
  12. package/lib/commonjs/random.js.map +1 -1
  13. package/lib/commonjs/{NativeQuickCrypto/rsa.js → specs/random.nitro.js} +1 -1
  14. package/lib/commonjs/{NativeQuickCrypto/aes.js.map → specs/random.nitro.js.map} +1 -1
  15. package/lib/commonjs/utils/conversion.js +22 -0
  16. package/lib/commonjs/utils/conversion.js.map +1 -0
  17. package/lib/commonjs/utils/index.js +12 -0
  18. package/lib/commonjs/utils/index.js.map +1 -0
  19. package/lib/commonjs/utils/types.js +2 -0
  20. package/lib/{module/NativeQuickCrypto/aes.js.map → commonjs/utils/types.js.map} +1 -1
  21. package/lib/module/index.js +40 -38
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/package.json +1 -0
  24. package/lib/module/random.js +28 -12
  25. package/lib/module/random.js.map +1 -1
  26. package/lib/module/specs/random.nitro.js +4 -0
  27. package/lib/module/{NativeQuickCrypto/rsa.js.map → specs/random.nitro.js.map} +1 -1
  28. package/lib/module/utils/conversion.js +16 -0
  29. package/lib/module/utils/conversion.js.map +1 -0
  30. package/lib/module/utils/index.js +8 -0
  31. package/lib/module/utils/index.js.map +1 -0
  32. package/lib/module/utils/types.js +2 -0
  33. package/lib/{commonjs/NativeQuickCrypto/rsa.js.map → module/utils/types.js.map} +1 -1
  34. package/lib/tsconfig.tsbuildinfo +1 -0
  35. package/lib/typescript/index.d.ts +10 -141
  36. package/lib/typescript/index.d.ts.map +1 -1
  37. package/lib/typescript/random.d.ts +4 -5
  38. package/lib/typescript/random.d.ts.map +1 -1
  39. package/lib/typescript/specs/random.nitro.d.ts +9 -0
  40. package/lib/typescript/specs/random.nitro.d.ts.map +1 -0
  41. package/lib/typescript/utils/conversion.d.ts +4 -0
  42. package/lib/typescript/utils/conversion.d.ts.map +1 -0
  43. package/lib/typescript/utils/index.d.ts +6 -0
  44. package/lib/typescript/utils/index.d.ts.map +1 -0
  45. package/lib/typescript/utils/types.d.ts +5 -0
  46. package/lib/typescript/utils/types.d.ts.map +1 -0
  47. package/package.json +58 -108
  48. package/src/index.ts +38 -48
  49. package/src/random.ts +51 -48
  50. package/src/specs/random.nitro.ts +14 -0
  51. package/src/utils/conversion.ts +16 -0
  52. package/src/utils/index.ts +6 -0
  53. package/src/utils/types.ts +15 -0
  54. package/LICENSE +0 -27
  55. package/README.md +0 -203
  56. package/android/src/main/java/com/margelo/quickcrypto/QuickCryptoModule.java +0 -70
  57. package/android/src/main/java/com/margelo/quickcrypto/QuickCryptoPackage.java +0 -25
  58. package/cpp/Cipher/MGLCipherHostObject.cpp +0 -663
  59. package/cpp/Cipher/MGLCipherHostObject.h +0 -90
  60. package/cpp/Cipher/MGLCreateCipherInstaller.cpp +0 -75
  61. package/cpp/Cipher/MGLCreateCipherInstaller.h +0 -22
  62. package/cpp/Cipher/MGLCreateDecipherInstaller.cpp +0 -77
  63. package/cpp/Cipher/MGLCreateDecipherInstaller.h +0 -17
  64. package/cpp/Cipher/MGLGenerateKeyPairInstaller.cpp +0 -134
  65. package/cpp/Cipher/MGLGenerateKeyPairInstaller.h +0 -35
  66. package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.cpp +0 -63
  67. package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.h +0 -37
  68. package/cpp/Cipher/MGLPublicCipher.h +0 -120
  69. package/cpp/Cipher/MGLPublicCipherInstaller.h +0 -107
  70. package/cpp/Cipher/MGLRsa.cpp +0 -573
  71. package/cpp/Cipher/MGLRsa.h +0 -109
  72. package/cpp/HMAC/MGLHmacHostObject.cpp +0 -95
  73. package/cpp/HMAC/MGLHmacHostObject.h +0 -39
  74. package/cpp/HMAC/MGLHmacInstaller.cpp +0 -43
  75. package/cpp/HMAC/MGLHmacInstaller.h +0 -20
  76. package/cpp/Hash/MGLHashHostObject.cpp +0 -147
  77. package/cpp/Hash/MGLHashHostObject.h +0 -53
  78. package/cpp/Hash/MGLHashInstaller.cpp +0 -44
  79. package/cpp/Hash/MGLHashInstaller.h +0 -20
  80. package/cpp/JSIUtils/MGLJSIMacros.h +0 -110
  81. package/cpp/JSIUtils/MGLJSIUtils.h +0 -41
  82. package/cpp/JSIUtils/MGLSmartHostObject.cpp +0 -43
  83. package/cpp/JSIUtils/MGLSmartHostObject.h +0 -46
  84. package/cpp/JSIUtils/MGLThreadAwareHostObject.cpp +0 -24
  85. package/cpp/JSIUtils/MGLThreadAwareHostObject.h +0 -43
  86. package/cpp/JSIUtils/MGLTypedArray.cpp +0 -325
  87. package/cpp/JSIUtils/MGLTypedArray.h +0 -160
  88. package/cpp/MGLKeys.cpp +0 -1426
  89. package/cpp/MGLKeys.h +0 -203
  90. package/cpp/MGLQuickCryptoHostObject.cpp +0 -124
  91. package/cpp/MGLQuickCryptoHostObject.h +0 -30
  92. package/cpp/Random/MGLRandomHostObject.cpp +0 -96
  93. package/cpp/Random/MGLRandomHostObject.h +0 -27
  94. package/cpp/Sig/MGLSignHostObjects.cpp +0 -757
  95. package/cpp/Sig/MGLSignHostObjects.h +0 -128
  96. package/cpp/Sig/MGLSignInstaller.cpp +0 -24
  97. package/cpp/Sig/MGLSignInstaller.h +0 -29
  98. package/cpp/Sig/MGLVerifyInstaller.cpp +0 -24
  99. package/cpp/Sig/MGLVerifyInstaller.h +0 -22
  100. package/cpp/Utils/MGLDispatchQueue.cpp +0 -75
  101. package/cpp/Utils/MGLDispatchQueue.h +0 -55
  102. package/cpp/Utils/MGLUtils.cpp +0 -295
  103. package/cpp/Utils/MGLUtils.h +0 -358
  104. package/cpp/Utils/base64.h +0 -320
  105. package/cpp/Utils/logs.h +0 -38
  106. package/cpp/Utils/node.h +0 -13
  107. package/cpp/fastpbkdf2/MGLPbkdf2HostObject.cpp +0 -164
  108. package/cpp/fastpbkdf2/MGLPbkdf2HostObject.h +0 -29
  109. package/cpp/fastpbkdf2/fastpbkdf2.c +0 -352
  110. package/cpp/fastpbkdf2/fastpbkdf2.h +0 -68
  111. package/cpp/webcrypto/MGLWebCrypto.cpp +0 -125
  112. package/cpp/webcrypto/MGLWebCrypto.h +0 -32
  113. package/cpp/webcrypto/crypto_aes.cpp +0 -516
  114. package/cpp/webcrypto/crypto_aes.h +0 -79
  115. package/cpp/webcrypto/crypto_ec.cpp +0 -424
  116. package/cpp/webcrypto/crypto_ec.h +0 -78
  117. package/cpp/webcrypto/crypto_keygen.cpp +0 -86
  118. package/cpp/webcrypto/crypto_keygen.h +0 -38
  119. package/ios/QuickCrypto.xcodeproj/project.pbxproj +0 -274
  120. package/ios/QuickCrypto.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  121. package/ios/QuickCrypto.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  122. package/ios/QuickCrypto.xcodeproj/project.xcworkspace/xcuserdata/brad.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  123. package/ios/QuickCrypto.xcodeproj/xcuserdata/brad.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  124. package/ios/QuickCryptoModule.h +0 -5
  125. package/ios/QuickCryptoModule.mm +0 -42
  126. package/lib/commonjs/Cipher.js +0 -502
  127. package/lib/commonjs/Cipher.js.map +0 -1
  128. package/lib/commonjs/Hash.js +0 -99
  129. package/lib/commonjs/Hash.js.map +0 -1
  130. package/lib/commonjs/Hashnames.js +0 -87
  131. package/lib/commonjs/Hashnames.js.map +0 -1
  132. package/lib/commonjs/Hmac.js +0 -79
  133. package/lib/commonjs/Hmac.js.map +0 -1
  134. package/lib/commonjs/NativeQuickCrypto/Cipher.js +0 -30
  135. package/lib/commonjs/NativeQuickCrypto/Cipher.js.map +0 -1
  136. package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js +0 -52
  137. package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js.map +0 -1
  138. package/lib/commonjs/NativeQuickCrypto/aes.js +0 -6
  139. package/lib/commonjs/NativeQuickCrypto/hash.js +0 -2
  140. package/lib/commonjs/NativeQuickCrypto/hash.js.map +0 -1
  141. package/lib/commonjs/NativeQuickCrypto/hmac.js +0 -2
  142. package/lib/commonjs/NativeQuickCrypto/hmac.js.map +0 -1
  143. package/lib/commonjs/NativeQuickCrypto/keygen.js +0 -6
  144. package/lib/commonjs/NativeQuickCrypto/keygen.js.map +0 -1
  145. package/lib/commonjs/NativeQuickCrypto/pbkdf2.js +0 -2
  146. package/lib/commonjs/NativeQuickCrypto/pbkdf2.js.map +0 -1
  147. package/lib/commonjs/NativeQuickCrypto/random.js +0 -2
  148. package/lib/commonjs/NativeQuickCrypto/random.js.map +0 -1
  149. package/lib/commonjs/NativeQuickCrypto/sig.js +0 -19
  150. package/lib/commonjs/NativeQuickCrypto/sig.js.map +0 -1
  151. package/lib/commonjs/NativeQuickCrypto/webcrypto.js +0 -6
  152. package/lib/commonjs/NativeQuickCrypto/webcrypto.js.map +0 -1
  153. package/lib/commonjs/Utils.js +0 -608
  154. package/lib/commonjs/Utils.js.map +0 -1
  155. package/lib/commonjs/aes.js +0 -281
  156. package/lib/commonjs/aes.js.map +0 -1
  157. package/lib/commonjs/constants.js +0 -85
  158. package/lib/commonjs/constants.js.map +0 -1
  159. package/lib/commonjs/ec.js +0 -276
  160. package/lib/commonjs/ec.js.map +0 -1
  161. package/lib/commonjs/keygen.js +0 -56
  162. package/lib/commonjs/keygen.js.map +0 -1
  163. package/lib/commonjs/keys.js +0 -492
  164. package/lib/commonjs/keys.js.map +0 -1
  165. package/lib/commonjs/pbkdf2.js +0 -90
  166. package/lib/commonjs/pbkdf2.js.map +0 -1
  167. package/lib/commonjs/rsa.js +0 -248
  168. package/lib/commonjs/rsa.js.map +0 -1
  169. package/lib/commonjs/sig.js +0 -129
  170. package/lib/commonjs/sig.js.map +0 -1
  171. package/lib/commonjs/subtle.js +0 -448
  172. package/lib/commonjs/subtle.js.map +0 -1
  173. package/lib/commonjs/webcrypto.js +0 -14
  174. package/lib/commonjs/webcrypto.js.map +0 -1
  175. package/lib/module/Cipher.js +0 -489
  176. package/lib/module/Cipher.js.map +0 -1
  177. package/lib/module/Hash.js +0 -91
  178. package/lib/module/Hash.js.map +0 -1
  179. package/lib/module/Hashnames.js +0 -83
  180. package/lib/module/Hashnames.js.map +0 -1
  181. package/lib/module/Hmac.js +0 -72
  182. package/lib/module/Hmac.js.map +0 -1
  183. package/lib/module/NativeQuickCrypto/Cipher.js +0 -24
  184. package/lib/module/NativeQuickCrypto/Cipher.js.map +0 -1
  185. package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js +0 -47
  186. package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js.map +0 -1
  187. package/lib/module/NativeQuickCrypto/aes.js +0 -2
  188. package/lib/module/NativeQuickCrypto/hash.js +0 -2
  189. package/lib/module/NativeQuickCrypto/hash.js.map +0 -1
  190. package/lib/module/NativeQuickCrypto/hmac.js +0 -2
  191. package/lib/module/NativeQuickCrypto/hmac.js.map +0 -1
  192. package/lib/module/NativeQuickCrypto/keygen.js +0 -2
  193. package/lib/module/NativeQuickCrypto/keygen.js.map +0 -1
  194. package/lib/module/NativeQuickCrypto/pbkdf2.js +0 -2
  195. package/lib/module/NativeQuickCrypto/pbkdf2.js.map +0 -1
  196. package/lib/module/NativeQuickCrypto/random.js +0 -2
  197. package/lib/module/NativeQuickCrypto/random.js.map +0 -1
  198. package/lib/module/NativeQuickCrypto/rsa.js +0 -2
  199. package/lib/module/NativeQuickCrypto/sig.js +0 -15
  200. package/lib/module/NativeQuickCrypto/sig.js.map +0 -1
  201. package/lib/module/NativeQuickCrypto/webcrypto.js +0 -2
  202. package/lib/module/NativeQuickCrypto/webcrypto.js.map +0 -1
  203. package/lib/module/Utils.js +0 -537
  204. package/lib/module/Utils.js.map +0 -1
  205. package/lib/module/aes.js +0 -272
  206. package/lib/module/aes.js.map +0 -1
  207. package/lib/module/constants.js +0 -79
  208. package/lib/module/constants.js.map +0 -1
  209. package/lib/module/ec.js +0 -265
  210. package/lib/module/ec.js.map +0 -1
  211. package/lib/module/keygen.js +0 -47
  212. package/lib/module/keygen.js.map +0 -1
  213. package/lib/module/keys.js +0 -475
  214. package/lib/module/keys.js.map +0 -1
  215. package/lib/module/pbkdf2.js +0 -82
  216. package/lib/module/pbkdf2.js.map +0 -1
  217. package/lib/module/rsa.js +0 -240
  218. package/lib/module/rsa.js.map +0 -1
  219. package/lib/module/sig.js +0 -122
  220. package/lib/module/sig.js.map +0 -1
  221. package/lib/module/subtle.js +0 -441
  222. package/lib/module/subtle.js.map +0 -1
  223. package/lib/module/webcrypto.js +0 -8
  224. package/lib/module/webcrypto.js.map +0 -1
  225. package/lib/typescript/Cipher.d.ts +0 -81
  226. package/lib/typescript/Cipher.d.ts.map +0 -1
  227. package/lib/typescript/Hash.d.ts +0 -44
  228. package/lib/typescript/Hash.d.ts.map +0 -1
  229. package/lib/typescript/Hashnames.d.ts +0 -11
  230. package/lib/typescript/Hashnames.d.ts.map +0 -1
  231. package/lib/typescript/Hmac.d.ts +0 -37
  232. package/lib/typescript/Hmac.d.ts.map +0 -1
  233. package/lib/typescript/NativeQuickCrypto/Cipher.d.ts +0 -44
  234. package/lib/typescript/NativeQuickCrypto/Cipher.d.ts.map +0 -1
  235. package/lib/typescript/NativeQuickCrypto/NativeQuickCrypto.d.ts +0 -33
  236. package/lib/typescript/NativeQuickCrypto/NativeQuickCrypto.d.ts.map +0 -1
  237. package/lib/typescript/NativeQuickCrypto/aes.d.ts +0 -5
  238. package/lib/typescript/NativeQuickCrypto/aes.d.ts.map +0 -1
  239. package/lib/typescript/NativeQuickCrypto/hash.d.ts +0 -7
  240. package/lib/typescript/NativeQuickCrypto/hash.d.ts.map +0 -1
  241. package/lib/typescript/NativeQuickCrypto/hmac.d.ts +0 -6
  242. package/lib/typescript/NativeQuickCrypto/hmac.d.ts.map +0 -1
  243. package/lib/typescript/NativeQuickCrypto/keygen.d.ts +0 -4
  244. package/lib/typescript/NativeQuickCrypto/keygen.d.ts.map +0 -1
  245. package/lib/typescript/NativeQuickCrypto/pbkdf2.d.ts +0 -5
  246. package/lib/typescript/NativeQuickCrypto/pbkdf2.d.ts.map +0 -1
  247. package/lib/typescript/NativeQuickCrypto/random.d.ts +0 -5
  248. package/lib/typescript/NativeQuickCrypto/random.d.ts.map +0 -1
  249. package/lib/typescript/NativeQuickCrypto/rsa.d.ts +0 -5
  250. package/lib/typescript/NativeQuickCrypto/rsa.d.ts.map +0 -1
  251. package/lib/typescript/NativeQuickCrypto/sig.d.ts +0 -23
  252. package/lib/typescript/NativeQuickCrypto/sig.d.ts.map +0 -1
  253. package/lib/typescript/NativeQuickCrypto/webcrypto.d.ts +0 -39
  254. package/lib/typescript/NativeQuickCrypto/webcrypto.d.ts.map +0 -1
  255. package/lib/typescript/Utils.d.ts +0 -48
  256. package/lib/typescript/Utils.d.ts.map +0 -1
  257. package/lib/typescript/aes.d.ts +0 -22
  258. package/lib/typescript/aes.d.ts.map +0 -1
  259. package/lib/typescript/constants.d.ts +0 -76
  260. package/lib/typescript/constants.d.ts.map +0 -1
  261. package/lib/typescript/ec.d.ts +0 -7
  262. package/lib/typescript/ec.d.ts.map +0 -1
  263. package/lib/typescript/keygen.d.ts +0 -6
  264. package/lib/typescript/keygen.d.ts.map +0 -1
  265. package/lib/typescript/keys.d.ts +0 -206
  266. package/lib/typescript/keys.d.ts.map +0 -1
  267. package/lib/typescript/pbkdf2.d.ts +0 -12
  268. package/lib/typescript/pbkdf2.d.ts.map +0 -1
  269. package/lib/typescript/rsa.d.ts +0 -12
  270. package/lib/typescript/rsa.d.ts.map +0 -1
  271. package/lib/typescript/sig.d.ts +0 -21
  272. package/lib/typescript/sig.d.ts.map +0 -1
  273. package/lib/typescript/subtle.d.ts +0 -15
  274. package/lib/typescript/subtle.d.ts.map +0 -1
  275. package/lib/typescript/webcrypto.d.ts +0 -9
  276. package/lib/typescript/webcrypto.d.ts.map +0 -1
  277. package/react-native-quick-crypto.podspec +0 -40
  278. package/src/Cipher.ts +0 -832
  279. package/src/Hash.ts +0 -132
  280. package/src/Hashnames.ts +0 -93
  281. package/src/Hmac.ts +0 -106
  282. package/src/NativeQuickCrypto/Cipher.ts +0 -102
  283. package/src/NativeQuickCrypto/NativeQuickCrypto.ts +0 -102
  284. package/src/NativeQuickCrypto/aes.ts +0 -14
  285. package/src/NativeQuickCrypto/hash.ts +0 -10
  286. package/src/NativeQuickCrypto/hmac.ts +0 -9
  287. package/src/NativeQuickCrypto/keygen.ts +0 -7
  288. package/src/NativeQuickCrypto/pbkdf2.ts +0 -16
  289. package/src/NativeQuickCrypto/random.ts +0 -12
  290. package/src/NativeQuickCrypto/rsa.ts +0 -12
  291. package/src/NativeQuickCrypto/sig.ts +0 -44
  292. package/src/NativeQuickCrypto/webcrypto.ts +0 -72
  293. package/src/Utils.ts +0 -777
  294. package/src/aes.ts +0 -402
  295. package/src/constants.ts +0 -79
  296. package/src/ec.ts +0 -375
  297. package/src/keygen.ts +0 -80
  298. package/src/keys.ts +0 -787
  299. package/src/pbkdf2.ts +0 -169
  300. package/src/rsa.ts +0 -370
  301. package/src/sig.ts +0 -164
  302. package/src/subtle.ts +0 -639
  303. package/src/webcrypto.ts +0 -8
  304. /package/android/src/main/{AndroidManifestNew.xml → AndroidManifest.xml} +0 -0
@@ -1,47 +0,0 @@
1
- import { NativeQuickCrypto } from './NativeQuickCrypto/NativeQuickCrypto';
2
- import { lazyDOMException, validateFunction } from './Utils';
3
- import { kAesKeyLengths } from './aes';
4
- import { SecretKeyObject } from './keys';
5
- export const generateKeyPromise = (type, options) => {
6
- return new Promise((resolve, reject) => {
7
- generateKey(type, options, (err, key) => {
8
- if (err) {
9
- reject([err, undefined]);
10
- }
11
- resolve([undefined, key]);
12
- });
13
- });
14
- };
15
- export const generateKey = (type, options, callback) => {
16
- validateLength(type, options.length);
17
- if (!validateFunction(callback)) {
18
- throw lazyDOMException('Callback is not a function', 'SyntaxError');
19
- }
20
- NativeQuickCrypto.webcrypto.generateSecretKey(options.length).then(handle => {
21
- callback(undefined, new SecretKeyObject(handle));
22
- }).catch(err => {
23
- callback(err, undefined);
24
- });
25
- };
26
- export const generateKeySync = (type, options) => {
27
- validateLength(type, options.length);
28
- const handle = NativeQuickCrypto.webcrypto.generateSecretKeySync(options.length);
29
- return new SecretKeyObject(handle);
30
- };
31
- const validateLength = (type, length) => {
32
- switch (type) {
33
- case 'aes':
34
- if (!kAesKeyLengths.includes(length)) {
35
- throw lazyDOMException('AES key length must be 128, 192, or 256 bits', 'OperationError');
36
- }
37
- break;
38
- case 'hmac':
39
- if (length < 8 || length > 2 ** 31 - 1) {
40
- throw lazyDOMException('HMAC key length must be between 8 and 2^31 - 1', 'OperationError');
41
- }
42
- break;
43
- default:
44
- throw new Error(`Unsupported key type '${type}' for generateKey()`);
45
- }
46
- };
47
- //# sourceMappingURL=keygen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["NativeQuickCrypto","lazyDOMException","validateFunction","kAesKeyLengths","SecretKeyObject","generateKeyPromise","type","options","Promise","resolve","reject","generateKey","err","key","undefined","callback","validateLength","length","webcrypto","generateSecretKey","then","handle","catch","generateKeySync","generateSecretKeySync","includes","Error"],"sourceRoot":"../../src","sources":["keygen.ts"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uCAAuC;AACzE,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,SAAS;AAC5D,SAASC,cAAc,QAAQ,OAAO;AACtC,SACEC,eAAe,QAGV,QAAQ;AAOf,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,IAAmB,EACnBC,OAAwB,KACsC;EAC9D,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCC,WAAW,CAACL,IAAI,EAAEC,OAAO,EAAE,CAACK,GAAG,EAAEC,GAAG,KAAK;MACvC,IAAID,GAAG,EAAE;QACPF,MAAM,CAAC,CAACE,GAAG,EAAEE,SAAS,CAAC,CAAC;MAC1B;MACAL,OAAO,CAAC,CAACK,SAAS,EAAED,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMF,WAAW,GAAGA,CACzBL,IAAmB,EACnBC,OAAwB,EACxBQ,QAAwB,KACf;EACTC,cAAc,CAACV,IAAI,EAAEC,OAAO,CAACU,MAAM,CAAC;EACpC,IAAI,CAACf,gBAAgB,CAACa,QAAQ,CAAC,EAAE;IAC/B,MAAMd,gBAAgB,CAAC,4BAA4B,EAAE,aAAa,CAAC;EACrE;EACAD,iBAAiB,CAACkB,SAAS,CACxBC,iBAAiB,CAACZ,OAAO,CAACU,MAAM,CAAC,CACjCG,IAAI,CAAEC,MAAM,IAAK;IAChBN,QAAQ,CAACD,SAAS,EAAE,IAAIV,eAAe,CAACiB,MAAM,CAAC,CAAC;EAClD,CAAC,CAAC,CACDC,KAAK,CAAEV,GAAG,IAAK;IACdG,QAAQ,CAACH,GAAG,EAAEE,SAAS,CAAC;EAC1B,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAMS,eAAe,GAAGA,CAC7BjB,IAAmB,EACnBC,OAAwB,KACJ;EACpBS,cAAc,CAACV,IAAI,EAAEC,OAAO,CAACU,MAAM,CAAC;EACpC,MAAMI,MAAM,GAAGrB,iBAAiB,CAACkB,SAAS,CAACM,qBAAqB,CAC9DjB,OAAO,CAACU,MACV,CAAC;EACD,OAAO,IAAIb,eAAe,CAACiB,MAAM,CAAC;AACpC,CAAC;AAED,MAAML,cAAc,GAAGA,CAACV,IAAmB,EAAEW,MAAc,KAAK;EAC9D,QAAQX,IAAI;IACV,KAAK,KAAK;MACR,IAAI,CAACH,cAAc,CAACsB,QAAQ,CAACR,MAAM,CAAC,EAAE;QACpC,MAAMhB,gBAAgB,CACpB,8CAA8C,EAC9C,gBACF,CAAC;MACH;MACA;IACF,KAAK,MAAM;MACT,IAAIgB,MAAM,GAAG,CAAC,IAAIA,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QACtC,MAAMhB,gBAAgB,CACpB,gDAAgD,EAChD,gBACF,CAAC;MACH;MACA;IACF;MACE,MAAM,IAAIyB,KAAK,CAAE,yBAAwBpB,IAAK,qBAAoB,CAAC;EACvE;AACF,CAAC","ignoreList":[]}
@@ -1,475 +0,0 @@
1
- import { binaryLikeToArrayBuffer, isStringOrBuffer } from './Utils';
2
- import { NativeQuickCrypto } from './NativeQuickCrypto/NativeQuickCrypto';
3
- export const kNamedCurveAliases = {
4
- 'P-256': 'prime256v1',
5
- 'P-384': 'secp384r1',
6
- 'P-521': 'secp521r1'
7
- };
8
- // On node this value is defined on the native side, for now I'm just creating it here in JS
9
- // TODO(osp) move this into native side to make sure they always match
10
- export let KFormatType = /*#__PURE__*/function (KFormatType) {
11
- KFormatType[KFormatType["kKeyFormatDER"] = 0] = "kKeyFormatDER";
12
- KFormatType[KFormatType["kKeyFormatPEM"] = 1] = "kKeyFormatPEM";
13
- KFormatType[KFormatType["kKeyFormatJWK"] = 2] = "kKeyFormatJWK";
14
- return KFormatType;
15
- }({});
16
- // Same as KFormatType, this enum needs to be defined on the native side
17
- export let KeyType = /*#__PURE__*/function (KeyType) {
18
- KeyType[KeyType["Secret"] = 0] = "Secret";
19
- KeyType[KeyType["Public"] = 1] = "Public";
20
- KeyType[KeyType["Private"] = 2] = "Private";
21
- return KeyType;
22
- }({});
23
- // Same as KFormatType, this enum needs to be defined on the native side
24
- export let KWebCryptoKeyFormat = /*#__PURE__*/function (KWebCryptoKeyFormat) {
25
- KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatRaw"] = 0] = "kWebCryptoKeyFormatRaw";
26
- KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatPKCS8"] = 1] = "kWebCryptoKeyFormatPKCS8";
27
- KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatSPKI"] = 2] = "kWebCryptoKeyFormatSPKI";
28
- KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatJWK"] = 3] = "kWebCryptoKeyFormatJWK";
29
- return KWebCryptoKeyFormat;
30
- }({});
31
- export let WebCryptoKeyExportStatus = /*#__PURE__*/function (WebCryptoKeyExportStatus) {
32
- WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["OK"] = 0] = "OK";
33
- WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["INVALID_KEY_TYPE"] = 1] = "INVALID_KEY_TYPE";
34
- WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["FAILED"] = 2] = "FAILED";
35
- return WebCryptoKeyExportStatus;
36
- }({});
37
- var KeyInputContext = /*#__PURE__*/function (KeyInputContext) {
38
- KeyInputContext[KeyInputContext["kConsumePublic"] = 0] = "kConsumePublic";
39
- KeyInputContext[KeyInputContext["kConsumePrivate"] = 1] = "kConsumePrivate";
40
- KeyInputContext[KeyInputContext["kCreatePublic"] = 2] = "kCreatePublic";
41
- KeyInputContext[KeyInputContext["kCreatePrivate"] = 3] = "kCreatePrivate";
42
- return KeyInputContext;
43
- }(KeyInputContext || {});
44
- export let KeyEncoding = /*#__PURE__*/function (KeyEncoding) {
45
- KeyEncoding[KeyEncoding["kKeyEncodingPKCS1"] = 0] = "kKeyEncodingPKCS1";
46
- KeyEncoding[KeyEncoding["kKeyEncodingPKCS8"] = 1] = "kKeyEncodingPKCS8";
47
- KeyEncoding[KeyEncoding["kKeyEncodingSPKI"] = 2] = "kKeyEncodingSPKI";
48
- KeyEncoding[KeyEncoding["kKeyEncodingSEC1"] = 3] = "kKeyEncodingSEC1";
49
- return KeyEncoding;
50
- }({});
51
- const encodingNames = {
52
- [KeyEncoding.kKeyEncodingPKCS1]: 'pkcs1',
53
- [KeyEncoding.kKeyEncodingPKCS8]: 'pkcs8',
54
- [KeyEncoding.kKeyEncodingSPKI]: 'spki',
55
- [KeyEncoding.kKeyEncodingSEC1]: 'sec1'
56
- };
57
- export let CipherOrWrapMode = /*#__PURE__*/function (CipherOrWrapMode) {
58
- CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherEncrypt"] = 0] = "kWebCryptoCipherEncrypt";
59
- CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherDecrypt"] = 1] = "kWebCryptoCipherDecrypt";
60
- return CipherOrWrapMode;
61
- }({}); // kWebCryptoWrapKey,
62
- // kWebCryptoUnwrapKey,
63
- function option(name, objName) {
64
- return objName === undefined ? `options.${name}` : `options.${objName}.${name}`;
65
- }
66
- function parseKeyFormat(formatStr, defaultFormat, optionName) {
67
- if (formatStr === undefined && defaultFormat !== undefined) return defaultFormat;else if (formatStr === 'pem') return KFormatType.kKeyFormatPEM;else if (formatStr === 'der') return KFormatType.kKeyFormatDER;else if (formatStr === 'jwk') return KFormatType.kKeyFormatJWK;
68
- throw new Error(`Invalid key format str: ${optionName}`);
69
- // throw new ERR_INVALID_ARG_VALUE(optionName, formatStr);
70
- }
71
- function parseKeyType(typeStr, required, keyType, isPublic, optionName) {
72
- if (typeStr === undefined && !required) {
73
- return undefined;
74
- } else if (typeStr === 'pkcs1') {
75
- if (keyType !== undefined && keyType !== 'rsa') {
76
- throw new Error(`Crypto incompatible key options: ${typeStr} can only be used for RSA keys`);
77
- }
78
- return KeyEncoding.kKeyEncodingPKCS1;
79
- } else if (typeStr === 'spki' && isPublic !== false) {
80
- return KeyEncoding.kKeyEncodingSPKI;
81
- } else if (typeStr === 'pkcs8' && isPublic !== true) {
82
- return KeyEncoding.kKeyEncodingPKCS8;
83
- } else if (typeStr === 'sec1' && isPublic !== true) {
84
- if (keyType !== undefined && keyType !== 'ec') {
85
- throw new Error(`Incompatible key options ${typeStr} can only be used for EC keys`);
86
- }
87
- return KeyEncoding.kKeyEncodingSEC1;
88
- }
89
- throw new Error(`Invalid option ${optionName} - ${typeStr}`);
90
- }
91
- function parseKeyFormatAndType(enc, keyType, isPublic, objName) {
92
- const {
93
- format: formatStr,
94
- type: typeStr
95
- } = enc;
96
- const isInput = keyType === undefined;
97
- const format = parseKeyFormat(formatStr, isInput ? KFormatType.kKeyFormatPEM : undefined, option('format', objName));
98
- const isRequired = (!isInput || format === KFormatType.kKeyFormatDER) && format !== KFormatType.kKeyFormatJWK;
99
- const type = parseKeyType(typeStr, isRequired, keyType, isPublic, option('type', objName));
100
- return {
101
- format,
102
- type
103
- };
104
- }
105
- function parseKeyEncoding(enc, keyType, isPublic, objName) {
106
- // validateObject(enc, 'options');
107
-
108
- const isInput = keyType === undefined;
109
- const {
110
- format,
111
- type
112
- } = parseKeyFormatAndType(enc, keyType, isPublic, objName);
113
- let cipher, passphrase, encoding;
114
- if (isPublic !== true) {
115
- ({
116
- cipher,
117
- passphrase,
118
- encoding
119
- } = enc);
120
- if (!isInput) {
121
- if (cipher != null) {
122
- if (typeof cipher !== 'string') throw new Error(`Invalid argument ${option('cipher', objName)}: ${cipher}`);
123
- if (format === KFormatType.kKeyFormatDER && (type === KeyEncoding.kKeyEncodingPKCS1 || type === KeyEncoding.kKeyEncodingSEC1)) {
124
- throw new Error(`Incompatible key options ${encodingNames[type]} does not support encryption`);
125
- }
126
- } else if (passphrase !== undefined) {
127
- throw new Error(`invalid argument ${option('cipher', objName)}: ${cipher}`);
128
- }
129
- }
130
- if (isInput && passphrase !== undefined && !isStringOrBuffer(passphrase) || !isInput && cipher != null && !isStringOrBuffer(passphrase)) {
131
- throw new Error(`Invalid argument value ${option('passphrase', objName)}: ${passphrase}`);
132
- }
133
- }
134
- if (passphrase !== undefined) passphrase = binaryLikeToArrayBuffer(passphrase, encoding);
135
- return {
136
- format,
137
- type,
138
- cipher,
139
- passphrase
140
- };
141
- }
142
- function prepareAsymmetricKey(key, ctx) {
143
- // TODO(osp) check, KeyObject some node object
144
- // if (isKeyObject(key)) {
145
- // // Best case: A key object, as simple as that.
146
- // return { data: getKeyObjectHandle(key, ctx) };
147
- // } else
148
- // if (isCryptoKey(key)) {
149
- // return { data: getKeyObjectHandle(key[kKeyObject], ctx) };
150
- // } else
151
- if (isStringOrBuffer(key)) {
152
- // Expect PEM by default, mostly for backward compatibility.
153
- return {
154
- format: KFormatType.kKeyFormatPEM,
155
- data: binaryLikeToArrayBuffer(key)
156
- };
157
- } else if (typeof key === 'object') {
158
- const {
159
- key: data,
160
- encoding
161
- } = key;
162
- // // The 'key' property can be a KeyObject as well to allow specifying
163
- // // additional options such as padding along with the key.
164
- // if (isKeyObject(data)) {
165
- // return { data: getKeyObjectHandle(data, ctx) };
166
- // }
167
- // else if (isCryptoKey(data))
168
- // return { data: getKeyObjectHandle(data[kKeyObject], ctx) };
169
- // else if (isJwk(data) && format === 'jwk')
170
- // return { data: getKeyObjectHandleFromJwk(data, ctx), format: 'jwk' };
171
- // Either PEM or DER using PKCS#1 or SPKI.
172
- if (!isStringOrBuffer(data)) {
173
- throw new Error('prepareAsymmetricKey: key is not a string or ArrayBuffer');
174
- }
175
- const isPublic = ctx === KeyInputContext.kConsumePrivate || ctx === KeyInputContext.kCreatePrivate ? false : undefined;
176
- return {
177
- data: binaryLikeToArrayBuffer(data, encoding),
178
- ...parseKeyEncoding(key, undefined, isPublic)
179
- };
180
- }
181
- throw new Error('[prepareAsymetricKey] Invalid argument key: ${key}');
182
- }
183
-
184
- // TODO(osp) any here is a node KeyObject
185
- export function preparePrivateKey(key) {
186
- return prepareAsymmetricKey(key, KeyInputContext.kConsumePrivate);
187
- }
188
-
189
- // TODO(osp) any here is a node KeyObject
190
- export function preparePublicOrPrivateKey(key) {
191
- return prepareAsymmetricKey(key, KeyInputContext.kConsumePublic);
192
- }
193
-
194
- // Parses the public key encoding based on an object. keyType must be undefined
195
- // when this is used to parse an input encoding and must be a valid key type if
196
- // used to parse an output encoding.
197
- export function parsePublicKeyEncoding(enc, keyType, objName) {
198
- return parseKeyEncoding(enc, keyType, keyType ? true : undefined, objName);
199
- }
200
-
201
- // Parses the private key encoding based on an object. keyType must be undefined
202
- // when this is used to parse an input encoding and must be a valid key type if
203
- // used to parse an output encoding.
204
- export function parsePrivateKeyEncoding(enc, keyType, objName) {
205
- return parseKeyEncoding(enc, keyType, false, objName);
206
- }
207
-
208
- // function getKeyObjectHandle(key: any, ctx: KeyInputContext) {
209
- // if (ctx === KeyInputContext.kConsumePublic) {
210
- // throw new Error(
211
- // 'Invalid argument type for "key". Need ArrayBuffer, TypeArray, KeyObject, CryptoKey, string'
212
- // );
213
- // }
214
-
215
- // if (key.type !== 'private') {
216
- // if (
217
- // ctx === KeyInputContext.kConsumePrivate ||
218
- // ctx === KeyInputContext.kCreatePublic
219
- // )
220
- // throw new Error(`Invalid KeyObject type: ${key.type}, expected 'public'`);
221
- // if (key.type !== 'public') {
222
- // throw new Error(
223
- // `Invalid KeyObject type: ${key.type}, expected 'private' or 'public'`
224
- // );
225
- // }
226
- // }
227
-
228
- // return key.handle;
229
- // }
230
-
231
- function prepareSecretKey(key, encoding, bufferOnly = false) {
232
- try {
233
- if (!bufferOnly) {
234
- // TODO: maybe use `key.constructor.name === 'KeyObject'` ?
235
- if (key instanceof KeyObject) {
236
- if (key.type !== 'secret') throw new Error(`invalid KeyObject type: ${key.type}, expected 'secret'`);
237
- return key.handle;
238
- }
239
- // TODO: maybe use `key.constructor.name === 'CryptoKey'` ?
240
- else if (key instanceof CryptoKey) {
241
- if (key.type !== 'secret') throw new Error(`invalid CryptoKey type: ${key.type}, expected 'secret'`);
242
- return key.keyObject.handle;
243
- }
244
- }
245
- if (key instanceof ArrayBuffer) {
246
- return key;
247
- }
248
- return binaryLikeToArrayBuffer(key, encoding);
249
- } catch (error) {
250
- throw new Error('Invalid argument type for "key". Need ArrayBuffer, TypedArray, KeyObject, CryptoKey, string', {
251
- cause: error
252
- });
253
- }
254
- }
255
- export function createSecretKey(key, encoding) {
256
- const k = prepareSecretKey(key, encoding, true);
257
- const handle = NativeQuickCrypto.webcrypto.createKeyObjectHandle();
258
- handle.init(KeyType.Secret, k);
259
- return new SecretKeyObject(handle);
260
- }
261
- export function createPublicKey(key) {
262
- const {
263
- format,
264
- type,
265
- data,
266
- passphrase
267
- } = prepareAsymmetricKey(key, KeyInputContext.kCreatePublic);
268
- const handle = NativeQuickCrypto.webcrypto.createKeyObjectHandle();
269
- if (format === KFormatType.kKeyFormatJWK) {
270
- handle.init(KeyType.Public, data);
271
- } else {
272
- handle.init(KeyType.Public, data, format, type, passphrase);
273
- }
274
- return new PublicKeyObject(handle);
275
- }
276
- export const createPrivateKey = key => {
277
- const {
278
- format,
279
- type,
280
- data,
281
- passphrase
282
- } = prepareAsymmetricKey(key, KeyInputContext.kCreatePrivate);
283
- const handle = NativeQuickCrypto.webcrypto.createKeyObjectHandle();
284
- if (format === KFormatType.kKeyFormatJWK) {
285
- handle.init(KeyType.Private, data);
286
- } else {
287
- handle.init(KeyType.Private, data, format, type, passphrase);
288
- }
289
- return new PrivateKeyObject(handle);
290
- };
291
-
292
- // const isKeyObject = (obj: any): obj is KeyObject => {
293
- // return obj != null && obj.keyType !== undefined;
294
- // };
295
-
296
- export class CryptoKey {
297
- constructor(keyObject, keyAlgorithm, keyUsages, keyExtractable) {
298
- this.keyObject = keyObject;
299
- this.keyAlgorithm = keyAlgorithm;
300
- this.keyUsages = keyUsages;
301
- this.keyExtractable = keyExtractable;
302
- }
303
- inspect(_depth, _options) {
304
- throw new Error('CryptoKey.inspect is not implemented');
305
- // if (depth < 0) return this;
306
-
307
- // const opts = {
308
- // ...options,
309
- // depth: options.depth == null ? null : options.depth - 1,
310
- // };
311
-
312
- // return `CryptoKey ${inspect(
313
- // {
314
- // type: this.type,
315
- // extractable: this.extractable,
316
- // algorithm: this.algorithm,
317
- // usages: this.usages,
318
- // },
319
- // opts
320
- // )}`;
321
- }
322
- get type() {
323
- // if (!(this instanceof CryptoKey)) throw new Error('Invalid CryptoKey');
324
- return this.keyObject.type;
325
- }
326
- get extractable() {
327
- return this.keyExtractable;
328
- }
329
- get algorithm() {
330
- return this.keyAlgorithm;
331
- }
332
- get usages() {
333
- return this.keyUsages;
334
- }
335
- }
336
- class KeyObject {
337
- type = 'unknown';
338
- export(_options) {
339
- return new ArrayBuffer(0);
340
- }
341
- constructor(type, handle) {
342
- if (type !== 'secret' && type !== 'public' && type !== 'private') throw new Error(`invalid KeyObject type: ${type}`);
343
- this.handle = handle;
344
- this.type = type;
345
- }
346
-
347
- // get type(): string {
348
- // return this.type;
349
- // }
350
-
351
- // static from(key) {
352
- // if (!isCryptoKey(key))
353
- // throw new ERR_INVALID_ARG_TYPE('key', 'CryptoKey', key);
354
- // return key[kKeyObject];
355
- // }
356
-
357
- // equals(otherKeyObject) {
358
- // if (!isKeyObject(otherKeyObject)) {
359
- // throw new ERR_INVALID_ARG_TYPE(
360
- // 'otherKeyObject',
361
- // 'KeyObject',
362
- // otherKeyObject
363
- // );
364
- // }
365
-
366
- // return (
367
- // otherKeyObject.type === this.type &&
368
- // this[kHandle].equals(otherKeyObject[kHandle])
369
- // );
370
- // }
371
- }
372
- export class SecretKeyObject extends KeyObject {
373
- constructor(handle) {
374
- super('secret', handle);
375
- }
376
-
377
- // get symmetricKeySize() {
378
- // return this[kHandle].getSymmetricKeySize();
379
- // }
380
-
381
- export(options) {
382
- if (options !== undefined) {
383
- if (options.format === 'jwk') {
384
- throw new Error('SecretKey export for jwk is not implemented');
385
- // return this.handle.exportJwk({}, false);
386
- }
387
- }
388
- return this.handle.export();
389
- }
390
- }
391
-
392
- // const kAsymmetricKeyType = Symbol('kAsymmetricKeyType');
393
- // const kAsymmetricKeyDetails = Symbol('kAsymmetricKeyDetails');
394
-
395
- // function normalizeKeyDetails(details = {}) {
396
- // if (details.publicExponent !== undefined) {
397
- // return {
398
- // ...details,
399
- // publicExponent: bigIntArrayToUnsignedBigInt(
400
- // new Uint8Array(details.publicExponent)
401
- // ),
402
- // };
403
- // }
404
- // return details;
405
- // }
406
-
407
- class AsymmetricKeyObject extends KeyObject {
408
- constructor(type, handle) {
409
- super(type, handle);
410
- }
411
- get asymmetricKeyType() {
412
- if (!this._asymmetricKeyType) {
413
- this._asymmetricKeyType = this.handle.getAsymmetricKeyType();
414
- }
415
- return this._asymmetricKeyType;
416
- }
417
-
418
- // get asymmetricKeyDetails() {
419
- // switch (this._asymmetricKeyType) {
420
- // case 'rsa':
421
- // case 'rsa-pss':
422
- // case 'dsa':
423
- // case 'ec':
424
- // return (
425
- // this[kAsymmetricKeyDetails] ||
426
- // (this[kAsymmetricKeyDetails] = normalizeKeyDetails(
427
- // this[kHandle].keyDetail({})
428
- // ))
429
- // );
430
- // default:
431
- // return {};
432
- // }
433
- // }
434
- }
435
- export class PublicKeyObject extends AsymmetricKeyObject {
436
- constructor(handle) {
437
- super('public', handle);
438
- }
439
- export(options) {
440
- if (options?.format === 'jwk') {
441
- throw new Error('PublicKey export for jwk is not implemented');
442
- // return this.handle.exportJwk({}, false);
443
- }
444
- const {
445
- format,
446
- type
447
- } = parsePublicKeyEncoding(options, this.asymmetricKeyType);
448
- return this.handle.export(format, type);
449
- }
450
- }
451
- export class PrivateKeyObject extends AsymmetricKeyObject {
452
- constructor(handle) {
453
- super('private', handle);
454
- }
455
- export(options) {
456
- if (options?.format === 'jwk') {
457
- if (options.passphrase !== undefined) {
458
- throw new Error('jwk does not support encryption');
459
- }
460
- throw new Error('PrivateKey export for jwk is not implemented');
461
- // return this.handle.exportJwk({}, false);
462
- }
463
- const {
464
- format,
465
- type,
466
- cipher,
467
- passphrase
468
- } = parsePrivateKeyEncoding(options, this.asymmetricKeyType);
469
- return this.handle.export(format, type, cipher, passphrase);
470
- }
471
- }
472
- export const isCryptoKey = obj => {
473
- return obj !== null && obj?.keyObject !== undefined;
474
- };
475
- //# sourceMappingURL=keys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["binaryLikeToArrayBuffer","isStringOrBuffer","NativeQuickCrypto","kNamedCurveAliases","KFormatType","KeyType","KWebCryptoKeyFormat","WebCryptoKeyExportStatus","KeyInputContext","KeyEncoding","encodingNames","kKeyEncodingPKCS1","kKeyEncodingPKCS8","kKeyEncodingSPKI","kKeyEncodingSEC1","CipherOrWrapMode","option","name","objName","undefined","parseKeyFormat","formatStr","defaultFormat","optionName","kKeyFormatPEM","kKeyFormatDER","kKeyFormatJWK","Error","parseKeyType","typeStr","required","keyType","isPublic","parseKeyFormatAndType","enc","format","type","isInput","isRequired","parseKeyEncoding","cipher","passphrase","encoding","prepareAsymmetricKey","key","ctx","data","kConsumePrivate","kCreatePrivate","preparePrivateKey","preparePublicOrPrivateKey","kConsumePublic","parsePublicKeyEncoding","parsePrivateKeyEncoding","prepareSecretKey","bufferOnly","KeyObject","handle","CryptoKey","keyObject","ArrayBuffer","error","cause","createSecretKey","k","webcrypto","createKeyObjectHandle","init","Secret","SecretKeyObject","createPublicKey","kCreatePublic","Public","PublicKeyObject","createPrivateKey","Private","PrivateKeyObject","constructor","keyAlgorithm","keyUsages","keyExtractable","inspect","_depth","_options","extractable","algorithm","usages","export","options","AsymmetricKeyObject","asymmetricKeyType","_asymmetricKeyType","getAsymmetricKeyType","isCryptoKey","obj"],"sourceRoot":"../../src","sources":["keys.ts"],"mappings":"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","ignoreList":[]}
@@ -1,82 +0,0 @@
1
- import { NativeQuickCrypto } from './NativeQuickCrypto/NativeQuickCrypto';
2
- import { Buffer } from '@craftzdog/react-native-buffer';
3
- import { binaryLikeToArrayBuffer, lazyDOMException, bufferLikeToArrayBuffer, normalizeHashName, HashContext } from './Utils';
4
- import { promisify } from 'util';
5
- const WRONG_PASS = 'Password must be a string, a Buffer, a typed array or a DataView';
6
- const WRONG_SALT = `Salt must be a string, a Buffer, a typed array or a DataView`;
7
- function sanitizeInput(input, errorMsg) {
8
- try {
9
- return binaryLikeToArrayBuffer(input);
10
- } catch (e) {
11
- throw errorMsg;
12
- }
13
- }
14
- const nativePbkdf2 = NativeQuickCrypto.pbkdf2;
15
- export function pbkdf2(password, salt, iterations, keylen, arg0, arg1) {
16
- let digest = 'SHA-1';
17
- let callback;
18
- if (typeof arg0 === 'string') {
19
- digest = arg0;
20
- if (typeof arg1 === 'function') {
21
- callback = arg1;
22
- }
23
- } else {
24
- if (typeof arg0 === 'function') {
25
- callback = arg0;
26
- }
27
- }
28
- if (callback === undefined) {
29
- throw new Error('No callback provided to pbkdf2');
30
- }
31
- const sanitizedPassword = sanitizeInput(password, WRONG_PASS);
32
- const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
33
- const normalizedDigest = normalizeHashName(digest, HashContext.Node);
34
- nativePbkdf2.pbkdf2(sanitizedPassword, sanitizedSalt, iterations, keylen, normalizedDigest).then(res => {
35
- callback(null, Buffer.from(res));
36
- }, e => {
37
- callback(e);
38
- });
39
- }
40
- export function pbkdf2Sync(password, salt, iterations, keylen, digest) {
41
- const sanitizedPassword = sanitizeInput(password, WRONG_PASS);
42
- const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
43
- const algo = digest ? normalizeHashName(digest, HashContext.Node) : 'sha1';
44
- let result = nativePbkdf2.pbkdf2Sync(sanitizedPassword, sanitizedSalt, iterations, keylen, algo);
45
- return Buffer.from(result);
46
- }
47
-
48
- // We need this because the typescript overload signatures in pbkdf2() above do
49
- // not play nice with promisify() below.
50
- const pbkdf2WithDigest = (password, salt, iterations, keylen, digest, callback) => pbkdf2(password, salt, iterations, keylen, digest, callback);
51
- const pbkdf2Promise = promisify(pbkdf2WithDigest);
52
- export async function pbkdf2DeriveBits(algorithm, baseKey, length) {
53
- const {
54
- iterations,
55
- hash,
56
- salt
57
- } = algorithm;
58
- const normalizedHash = normalizeHashName(hash);
59
- if (!normalizedHash) {
60
- throw lazyDOMException('hash cannot be blank', 'OperationError');
61
- }
62
- if (!iterations || iterations === 0) {
63
- throw lazyDOMException('iterations cannot be zero', 'OperationError');
64
- }
65
- if (!salt) {
66
- throw lazyDOMException(WRONG_SALT, 'OperationError');
67
- }
68
- const raw = baseKey.keyObject.export();
69
- if (length === 0) throw lazyDOMException('length cannot be zero', 'OperationError');
70
- if (length === null) throw lazyDOMException('length cannot be null', 'OperationError');
71
- if (length % 8) {
72
- throw lazyDOMException('length must be a multiple of 8', 'OperationError');
73
- }
74
- const sanitizedPassword = sanitizeInput(raw, WRONG_PASS);
75
- const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
76
- let result = await pbkdf2Promise(sanitizedPassword, sanitizedSalt, iterations, length / 8, normalizedHash);
77
- if (!result) {
78
- throw lazyDOMException('received bad result from pbkdf2()', 'OperationError');
79
- }
80
- return bufferLikeToArrayBuffer(result);
81
- }
82
- //# sourceMappingURL=pbkdf2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["NativeQuickCrypto","Buffer","binaryLikeToArrayBuffer","lazyDOMException","bufferLikeToArrayBuffer","normalizeHashName","HashContext","promisify","WRONG_PASS","WRONG_SALT","sanitizeInput","input","errorMsg","e","nativePbkdf2","pbkdf2","password","salt","iterations","keylen","arg0","arg1","digest","callback","undefined","Error","sanitizedPassword","sanitizedSalt","normalizedDigest","Node","then","res","from","pbkdf2Sync","algo","result","pbkdf2WithDigest","pbkdf2Promise","pbkdf2DeriveBits","algorithm","baseKey","length","hash","normalizedHash","raw","keyObject","export"],"sourceRoot":"../../src","sources":["pbkdf2.ts"],"mappings":"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","ignoreList":[]}