react-native-quick-crypto 0.7.3 → 1.0.0-beta.2

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 (309) hide show
  1. package/QuickCrypto.podspec +34 -0
  2. package/README.md +13 -46
  3. package/android/CMakeLists.txt +32 -64
  4. package/android/build.gradle +52 -125
  5. package/android/gradle.properties +4 -4
  6. package/android/src/main/cpp/cpp-adapter.cpp +9 -54
  7. package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +38 -0
  8. package/cpp/random/HybridRandom.cpp +34 -0
  9. package/cpp/random/HybridRandom.hpp +44 -0
  10. package/cpp/utils/Utils.hpp +9 -0
  11. package/ios/QuickCryptoOnLoad.mm +19 -0
  12. package/lib/commonjs/index.js +39 -39
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/commonjs/random.js +26 -12
  15. package/lib/commonjs/random.js.map +1 -1
  16. package/lib/commonjs/{NativeQuickCrypto/rsa.js → specs/random.nitro.js} +1 -1
  17. package/lib/commonjs/{NativeQuickCrypto/aes.js.map → specs/random.nitro.js.map} +1 -1
  18. package/lib/commonjs/utils/conversion.js +22 -0
  19. package/lib/commonjs/utils/conversion.js.map +1 -0
  20. package/lib/commonjs/utils/index.js +12 -0
  21. package/lib/commonjs/utils/index.js.map +1 -0
  22. package/lib/commonjs/utils/types.js +2 -0
  23. package/lib/{module/NativeQuickCrypto/aes.js.map → commonjs/utils/types.js.map} +1 -1
  24. package/lib/module/index.js +38 -38
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/module/random.js +26 -12
  27. package/lib/module/random.js.map +1 -1
  28. package/lib/module/specs/random.nitro.js +4 -0
  29. package/lib/module/{NativeQuickCrypto/rsa.js.map → specs/random.nitro.js.map} +1 -1
  30. package/lib/module/utils/conversion.js +16 -0
  31. package/lib/module/utils/conversion.js.map +1 -0
  32. package/lib/module/utils/index.js +8 -0
  33. package/lib/module/utils/index.js.map +1 -0
  34. package/lib/module/utils/types.js +2 -0
  35. package/lib/{commonjs/NativeQuickCrypto/rsa.js.map → module/utils/types.js.map} +1 -1
  36. package/lib/tsconfig.tsbuildinfo +1 -0
  37. package/lib/typescript/index.d.ts +10 -141
  38. package/lib/typescript/index.d.ts.map +1 -1
  39. package/lib/typescript/random.d.ts +4 -5
  40. package/lib/typescript/random.d.ts.map +1 -1
  41. package/lib/typescript/specs/random.nitro.d.ts +9 -0
  42. package/lib/typescript/specs/random.nitro.d.ts.map +1 -0
  43. package/lib/typescript/utils/conversion.d.ts +4 -0
  44. package/lib/typescript/utils/conversion.d.ts.map +1 -0
  45. package/lib/typescript/utils/index.d.ts +6 -0
  46. package/lib/typescript/utils/index.d.ts.map +1 -0
  47. package/lib/typescript/utils/types.d.ts +5 -0
  48. package/lib/typescript/utils/types.d.ts.map +1 -0
  49. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +45 -0
  50. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +26 -0
  51. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +57 -0
  52. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +9 -0
  53. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +25 -0
  54. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +29 -0
  55. package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +23 -0
  56. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +62 -0
  57. package/package.json +50 -106
  58. package/src/index.ts +38 -48
  59. package/src/random.ts +51 -48
  60. package/src/specs/random.nitro.ts +14 -0
  61. package/src/utils/conversion.ts +16 -0
  62. package/src/utils/index.ts +6 -0
  63. package/src/utils/types.ts +15 -0
  64. package/LICENSE +0 -27
  65. package/android/src/main/java/com/margelo/quickcrypto/QuickCryptoModule.java +0 -70
  66. package/android/src/main/java/com/margelo/quickcrypto/QuickCryptoPackage.java +0 -25
  67. package/cpp/Cipher/MGLCipherHostObject.cpp +0 -663
  68. package/cpp/Cipher/MGLCipherHostObject.h +0 -90
  69. package/cpp/Cipher/MGLCreateCipherInstaller.cpp +0 -75
  70. package/cpp/Cipher/MGLCreateCipherInstaller.h +0 -22
  71. package/cpp/Cipher/MGLCreateDecipherInstaller.cpp +0 -77
  72. package/cpp/Cipher/MGLCreateDecipherInstaller.h +0 -17
  73. package/cpp/Cipher/MGLGenerateKeyPairInstaller.cpp +0 -134
  74. package/cpp/Cipher/MGLGenerateKeyPairInstaller.h +0 -35
  75. package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.cpp +0 -63
  76. package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.h +0 -37
  77. package/cpp/Cipher/MGLPublicCipher.h +0 -124
  78. package/cpp/Cipher/MGLPublicCipherInstaller.h +0 -107
  79. package/cpp/Cipher/MGLRsa.cpp +0 -573
  80. package/cpp/Cipher/MGLRsa.h +0 -109
  81. package/cpp/HMAC/MGLHmacHostObject.cpp +0 -95
  82. package/cpp/HMAC/MGLHmacHostObject.h +0 -39
  83. package/cpp/HMAC/MGLHmacInstaller.cpp +0 -43
  84. package/cpp/HMAC/MGLHmacInstaller.h +0 -20
  85. package/cpp/Hash/MGLHashHostObject.cpp +0 -147
  86. package/cpp/Hash/MGLHashHostObject.h +0 -53
  87. package/cpp/Hash/MGLHashInstaller.cpp +0 -44
  88. package/cpp/Hash/MGLHashInstaller.h +0 -20
  89. package/cpp/JSIUtils/MGLJSIMacros.h +0 -110
  90. package/cpp/JSIUtils/MGLJSIUtils.h +0 -41
  91. package/cpp/JSIUtils/MGLSmartHostObject.cpp +0 -43
  92. package/cpp/JSIUtils/MGLSmartHostObject.h +0 -46
  93. package/cpp/JSIUtils/MGLThreadAwareHostObject.cpp +0 -24
  94. package/cpp/JSIUtils/MGLThreadAwareHostObject.h +0 -43
  95. package/cpp/JSIUtils/MGLTypedArray.cpp +0 -325
  96. package/cpp/JSIUtils/MGLTypedArray.h +0 -160
  97. package/cpp/MGLKeys.cpp +0 -1426
  98. package/cpp/MGLKeys.h +0 -203
  99. package/cpp/MGLQuickCryptoHostObject.cpp +0 -127
  100. package/cpp/MGLQuickCryptoHostObject.h +0 -30
  101. package/cpp/Random/MGLRandomHostObject.cpp +0 -96
  102. package/cpp/Random/MGLRandomHostObject.h +0 -27
  103. package/cpp/Sig/MGLSignHostObjects.cpp +0 -757
  104. package/cpp/Sig/MGLSignHostObjects.h +0 -128
  105. package/cpp/Sig/MGLSignInstaller.cpp +0 -24
  106. package/cpp/Sig/MGLSignInstaller.h +0 -29
  107. package/cpp/Sig/MGLVerifyInstaller.cpp +0 -24
  108. package/cpp/Sig/MGLVerifyInstaller.h +0 -22
  109. package/cpp/Utils/MGLDispatchQueue.cpp +0 -75
  110. package/cpp/Utils/MGLDispatchQueue.h +0 -55
  111. package/cpp/Utils/MGLUtils.cpp +0 -295
  112. package/cpp/Utils/MGLUtils.h +0 -358
  113. package/cpp/Utils/base64.h +0 -320
  114. package/cpp/Utils/logs.h +0 -38
  115. package/cpp/Utils/node.h +0 -13
  116. package/cpp/fastpbkdf2/MGLPbkdf2HostObject.cpp +0 -164
  117. package/cpp/fastpbkdf2/MGLPbkdf2HostObject.h +0 -29
  118. package/cpp/fastpbkdf2/fastpbkdf2.c +0 -352
  119. package/cpp/fastpbkdf2/fastpbkdf2.h +0 -68
  120. package/cpp/webcrypto/MGLWebCrypto.cpp +0 -125
  121. package/cpp/webcrypto/MGLWebCrypto.h +0 -32
  122. package/cpp/webcrypto/crypto_aes.cpp +0 -516
  123. package/cpp/webcrypto/crypto_aes.h +0 -79
  124. package/cpp/webcrypto/crypto_ec.cpp +0 -424
  125. package/cpp/webcrypto/crypto_ec.h +0 -78
  126. package/cpp/webcrypto/crypto_keygen.cpp +0 -86
  127. package/cpp/webcrypto/crypto_keygen.h +0 -38
  128. package/ios/QuickCrypto.xcodeproj/project.pbxproj +0 -274
  129. package/ios/QuickCryptoModule.h +0 -5
  130. package/ios/QuickCryptoModule.mm +0 -42
  131. package/lib/commonjs/Cipher.js +0 -502
  132. package/lib/commonjs/Cipher.js.map +0 -1
  133. package/lib/commonjs/Hash.js +0 -99
  134. package/lib/commonjs/Hash.js.map +0 -1
  135. package/lib/commonjs/Hashnames.js +0 -87
  136. package/lib/commonjs/Hashnames.js.map +0 -1
  137. package/lib/commonjs/Hmac.js +0 -79
  138. package/lib/commonjs/Hmac.js.map +0 -1
  139. package/lib/commonjs/NativeQuickCrypto/Cipher.js +0 -30
  140. package/lib/commonjs/NativeQuickCrypto/Cipher.js.map +0 -1
  141. package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js +0 -52
  142. package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js.map +0 -1
  143. package/lib/commonjs/NativeQuickCrypto/aes.js +0 -6
  144. package/lib/commonjs/NativeQuickCrypto/hash.js +0 -2
  145. package/lib/commonjs/NativeQuickCrypto/hash.js.map +0 -1
  146. package/lib/commonjs/NativeQuickCrypto/hmac.js +0 -2
  147. package/lib/commonjs/NativeQuickCrypto/hmac.js.map +0 -1
  148. package/lib/commonjs/NativeQuickCrypto/keygen.js +0 -6
  149. package/lib/commonjs/NativeQuickCrypto/keygen.js.map +0 -1
  150. package/lib/commonjs/NativeQuickCrypto/pbkdf2.js +0 -2
  151. package/lib/commonjs/NativeQuickCrypto/pbkdf2.js.map +0 -1
  152. package/lib/commonjs/NativeQuickCrypto/random.js +0 -2
  153. package/lib/commonjs/NativeQuickCrypto/random.js.map +0 -1
  154. package/lib/commonjs/NativeQuickCrypto/sig.js +0 -19
  155. package/lib/commonjs/NativeQuickCrypto/sig.js.map +0 -1
  156. package/lib/commonjs/NativeQuickCrypto/webcrypto.js +0 -6
  157. package/lib/commonjs/NativeQuickCrypto/webcrypto.js.map +0 -1
  158. package/lib/commonjs/Utils.js +0 -608
  159. package/lib/commonjs/Utils.js.map +0 -1
  160. package/lib/commonjs/aes.js +0 -281
  161. package/lib/commonjs/aes.js.map +0 -1
  162. package/lib/commonjs/constants.js +0 -85
  163. package/lib/commonjs/constants.js.map +0 -1
  164. package/lib/commonjs/ec.js +0 -276
  165. package/lib/commonjs/ec.js.map +0 -1
  166. package/lib/commonjs/keygen.js +0 -56
  167. package/lib/commonjs/keygen.js.map +0 -1
  168. package/lib/commonjs/keys.js +0 -492
  169. package/lib/commonjs/keys.js.map +0 -1
  170. package/lib/commonjs/pbkdf2.js +0 -90
  171. package/lib/commonjs/pbkdf2.js.map +0 -1
  172. package/lib/commonjs/rsa.js +0 -248
  173. package/lib/commonjs/rsa.js.map +0 -1
  174. package/lib/commonjs/sig.js +0 -129
  175. package/lib/commonjs/sig.js.map +0 -1
  176. package/lib/commonjs/subtle.js +0 -448
  177. package/lib/commonjs/subtle.js.map +0 -1
  178. package/lib/commonjs/webcrypto.js +0 -14
  179. package/lib/commonjs/webcrypto.js.map +0 -1
  180. package/lib/module/Cipher.js +0 -491
  181. package/lib/module/Cipher.js.map +0 -1
  182. package/lib/module/Hash.js +0 -93
  183. package/lib/module/Hash.js.map +0 -1
  184. package/lib/module/Hashnames.js +0 -85
  185. package/lib/module/Hashnames.js.map +0 -1
  186. package/lib/module/Hmac.js +0 -74
  187. package/lib/module/Hmac.js.map +0 -1
  188. package/lib/module/NativeQuickCrypto/Cipher.js +0 -26
  189. package/lib/module/NativeQuickCrypto/Cipher.js.map +0 -1
  190. package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js +0 -49
  191. package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js.map +0 -1
  192. package/lib/module/NativeQuickCrypto/aes.js +0 -4
  193. package/lib/module/NativeQuickCrypto/hash.js +0 -2
  194. package/lib/module/NativeQuickCrypto/hash.js.map +0 -1
  195. package/lib/module/NativeQuickCrypto/hmac.js +0 -2
  196. package/lib/module/NativeQuickCrypto/hmac.js.map +0 -1
  197. package/lib/module/NativeQuickCrypto/keygen.js +0 -4
  198. package/lib/module/NativeQuickCrypto/keygen.js.map +0 -1
  199. package/lib/module/NativeQuickCrypto/pbkdf2.js +0 -2
  200. package/lib/module/NativeQuickCrypto/pbkdf2.js.map +0 -1
  201. package/lib/module/NativeQuickCrypto/random.js +0 -2
  202. package/lib/module/NativeQuickCrypto/random.js.map +0 -1
  203. package/lib/module/NativeQuickCrypto/rsa.js +0 -4
  204. package/lib/module/NativeQuickCrypto/sig.js +0 -17
  205. package/lib/module/NativeQuickCrypto/sig.js.map +0 -1
  206. package/lib/module/NativeQuickCrypto/webcrypto.js +0 -4
  207. package/lib/module/NativeQuickCrypto/webcrypto.js.map +0 -1
  208. package/lib/module/Utils.js +0 -539
  209. package/lib/module/Utils.js.map +0 -1
  210. package/lib/module/aes.js +0 -274
  211. package/lib/module/aes.js.map +0 -1
  212. package/lib/module/constants.js +0 -81
  213. package/lib/module/constants.js.map +0 -1
  214. package/lib/module/ec.js +0 -267
  215. package/lib/module/ec.js.map +0 -1
  216. package/lib/module/keygen.js +0 -49
  217. package/lib/module/keygen.js.map +0 -1
  218. package/lib/module/keys.js +0 -477
  219. package/lib/module/keys.js.map +0 -1
  220. package/lib/module/pbkdf2.js +0 -84
  221. package/lib/module/pbkdf2.js.map +0 -1
  222. package/lib/module/rsa.js +0 -242
  223. package/lib/module/rsa.js.map +0 -1
  224. package/lib/module/sig.js +0 -124
  225. package/lib/module/sig.js.map +0 -1
  226. package/lib/module/subtle.js +0 -443
  227. package/lib/module/subtle.js.map +0 -1
  228. package/lib/module/webcrypto.js +0 -10
  229. package/lib/module/webcrypto.js.map +0 -1
  230. package/lib/typescript/Cipher.d.ts +0 -81
  231. package/lib/typescript/Cipher.d.ts.map +0 -1
  232. package/lib/typescript/Hash.d.ts +0 -44
  233. package/lib/typescript/Hash.d.ts.map +0 -1
  234. package/lib/typescript/Hashnames.d.ts +0 -11
  235. package/lib/typescript/Hashnames.d.ts.map +0 -1
  236. package/lib/typescript/Hmac.d.ts +0 -37
  237. package/lib/typescript/Hmac.d.ts.map +0 -1
  238. package/lib/typescript/NativeQuickCrypto/Cipher.d.ts +0 -44
  239. package/lib/typescript/NativeQuickCrypto/Cipher.d.ts.map +0 -1
  240. package/lib/typescript/NativeQuickCrypto/NativeQuickCrypto.d.ts +0 -33
  241. package/lib/typescript/NativeQuickCrypto/NativeQuickCrypto.d.ts.map +0 -1
  242. package/lib/typescript/NativeQuickCrypto/aes.d.ts +0 -5
  243. package/lib/typescript/NativeQuickCrypto/aes.d.ts.map +0 -1
  244. package/lib/typescript/NativeQuickCrypto/hash.d.ts +0 -7
  245. package/lib/typescript/NativeQuickCrypto/hash.d.ts.map +0 -1
  246. package/lib/typescript/NativeQuickCrypto/hmac.d.ts +0 -6
  247. package/lib/typescript/NativeQuickCrypto/hmac.d.ts.map +0 -1
  248. package/lib/typescript/NativeQuickCrypto/keygen.d.ts +0 -4
  249. package/lib/typescript/NativeQuickCrypto/keygen.d.ts.map +0 -1
  250. package/lib/typescript/NativeQuickCrypto/pbkdf2.d.ts +0 -5
  251. package/lib/typescript/NativeQuickCrypto/pbkdf2.d.ts.map +0 -1
  252. package/lib/typescript/NativeQuickCrypto/random.d.ts +0 -5
  253. package/lib/typescript/NativeQuickCrypto/random.d.ts.map +0 -1
  254. package/lib/typescript/NativeQuickCrypto/rsa.d.ts +0 -5
  255. package/lib/typescript/NativeQuickCrypto/rsa.d.ts.map +0 -1
  256. package/lib/typescript/NativeQuickCrypto/sig.d.ts +0 -23
  257. package/lib/typescript/NativeQuickCrypto/sig.d.ts.map +0 -1
  258. package/lib/typescript/NativeQuickCrypto/webcrypto.d.ts +0 -39
  259. package/lib/typescript/NativeQuickCrypto/webcrypto.d.ts.map +0 -1
  260. package/lib/typescript/Utils.d.ts +0 -48
  261. package/lib/typescript/Utils.d.ts.map +0 -1
  262. package/lib/typescript/aes.d.ts +0 -22
  263. package/lib/typescript/aes.d.ts.map +0 -1
  264. package/lib/typescript/constants.d.ts +0 -76
  265. package/lib/typescript/constants.d.ts.map +0 -1
  266. package/lib/typescript/ec.d.ts +0 -7
  267. package/lib/typescript/ec.d.ts.map +0 -1
  268. package/lib/typescript/keygen.d.ts +0 -6
  269. package/lib/typescript/keygen.d.ts.map +0 -1
  270. package/lib/typescript/keys.d.ts +0 -206
  271. package/lib/typescript/keys.d.ts.map +0 -1
  272. package/lib/typescript/pbkdf2.d.ts +0 -12
  273. package/lib/typescript/pbkdf2.d.ts.map +0 -1
  274. package/lib/typescript/rsa.d.ts +0 -12
  275. package/lib/typescript/rsa.d.ts.map +0 -1
  276. package/lib/typescript/sig.d.ts +0 -21
  277. package/lib/typescript/sig.d.ts.map +0 -1
  278. package/lib/typescript/subtle.d.ts +0 -15
  279. package/lib/typescript/subtle.d.ts.map +0 -1
  280. package/lib/typescript/webcrypto.d.ts +0 -9
  281. package/lib/typescript/webcrypto.d.ts.map +0 -1
  282. package/react-native-quick-crypto.podspec +0 -40
  283. package/src/Cipher.ts +0 -832
  284. package/src/Hash.ts +0 -132
  285. package/src/Hashnames.ts +0 -93
  286. package/src/Hmac.ts +0 -106
  287. package/src/NativeQuickCrypto/Cipher.ts +0 -102
  288. package/src/NativeQuickCrypto/NativeQuickCrypto.ts +0 -102
  289. package/src/NativeQuickCrypto/aes.ts +0 -14
  290. package/src/NativeQuickCrypto/hash.ts +0 -10
  291. package/src/NativeQuickCrypto/hmac.ts +0 -9
  292. package/src/NativeQuickCrypto/keygen.ts +0 -7
  293. package/src/NativeQuickCrypto/pbkdf2.ts +0 -16
  294. package/src/NativeQuickCrypto/random.ts +0 -12
  295. package/src/NativeQuickCrypto/rsa.ts +0 -12
  296. package/src/NativeQuickCrypto/sig.ts +0 -44
  297. package/src/NativeQuickCrypto/webcrypto.ts +0 -72
  298. package/src/Utils.ts +0 -777
  299. package/src/aes.ts +0 -402
  300. package/src/constants.ts +0 -79
  301. package/src/ec.ts +0 -375
  302. package/src/keygen.ts +0 -80
  303. package/src/keys.ts +0 -787
  304. package/src/pbkdf2.ts +0 -169
  305. package/src/rsa.ts +0 -370
  306. package/src/sig.ts +0 -164
  307. package/src/subtle.ts +0 -639
  308. package/src/webcrypto.ts +0 -8
  309. /package/android/src/main/{AndroidManifestNew.xml → AndroidManifest.xml} +0 -0
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.pbkdf2 = pbkdf2;
7
- exports.pbkdf2DeriveBits = pbkdf2DeriveBits;
8
- exports.pbkdf2Sync = pbkdf2Sync;
9
- var _NativeQuickCrypto = require("./NativeQuickCrypto/NativeQuickCrypto");
10
- var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
11
- var _Utils = require("./Utils");
12
- var _util = require("util");
13
- const WRONG_PASS = 'Password must be a string, a Buffer, a typed array or a DataView';
14
- const WRONG_SALT = `Salt must be a string, a Buffer, a typed array or a DataView`;
15
- function sanitizeInput(input, errorMsg) {
16
- try {
17
- return (0, _Utils.binaryLikeToArrayBuffer)(input);
18
- } catch (e) {
19
- throw errorMsg;
20
- }
21
- }
22
- const nativePbkdf2 = _NativeQuickCrypto.NativeQuickCrypto.pbkdf2;
23
- function pbkdf2(password, salt, iterations, keylen, arg0, arg1) {
24
- let digest = 'SHA-1';
25
- let callback;
26
- if (typeof arg0 === 'string') {
27
- digest = arg0;
28
- if (typeof arg1 === 'function') {
29
- callback = arg1;
30
- }
31
- } else {
32
- if (typeof arg0 === 'function') {
33
- callback = arg0;
34
- }
35
- }
36
- if (callback === undefined) {
37
- throw new Error('No callback provided to pbkdf2');
38
- }
39
- const sanitizedPassword = sanitizeInput(password, WRONG_PASS);
40
- const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
41
- const normalizedDigest = (0, _Utils.normalizeHashName)(digest, _Utils.HashContext.Node);
42
- nativePbkdf2.pbkdf2(sanitizedPassword, sanitizedSalt, iterations, keylen, normalizedDigest).then(res => {
43
- callback(null, _reactNativeBuffer.Buffer.from(res));
44
- }, e => {
45
- callback(e);
46
- });
47
- }
48
- function pbkdf2Sync(password, salt, iterations, keylen, digest) {
49
- const sanitizedPassword = sanitizeInput(password, WRONG_PASS);
50
- const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
51
- const algo = digest ? (0, _Utils.normalizeHashName)(digest, _Utils.HashContext.Node) : 'sha1';
52
- let result = nativePbkdf2.pbkdf2Sync(sanitizedPassword, sanitizedSalt, iterations, keylen, algo);
53
- return _reactNativeBuffer.Buffer.from(result);
54
- }
55
-
56
- // We need this because the typescript overload signatures in pbkdf2() above do
57
- // not play nice with promisify() below.
58
- const pbkdf2WithDigest = (password, salt, iterations, keylen, digest, callback) => pbkdf2(password, salt, iterations, keylen, digest, callback);
59
- const pbkdf2Promise = (0, _util.promisify)(pbkdf2WithDigest);
60
- async function pbkdf2DeriveBits(algorithm, baseKey, length) {
61
- const {
62
- iterations,
63
- hash,
64
- salt
65
- } = algorithm;
66
- const normalizedHash = (0, _Utils.normalizeHashName)(hash);
67
- if (!normalizedHash) {
68
- throw (0, _Utils.lazyDOMException)('hash cannot be blank', 'OperationError');
69
- }
70
- if (!iterations || iterations === 0) {
71
- throw (0, _Utils.lazyDOMException)('iterations cannot be zero', 'OperationError');
72
- }
73
- if (!salt) {
74
- throw (0, _Utils.lazyDOMException)(WRONG_SALT, 'OperationError');
75
- }
76
- const raw = baseKey.keyObject.export();
77
- if (length === 0) throw (0, _Utils.lazyDOMException)('length cannot be zero', 'OperationError');
78
- if (length === null) throw (0, _Utils.lazyDOMException)('length cannot be null', 'OperationError');
79
- if (length % 8) {
80
- throw (0, _Utils.lazyDOMException)('length must be a multiple of 8', 'OperationError');
81
- }
82
- const sanitizedPassword = sanitizeInput(raw, WRONG_PASS);
83
- const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
84
- let result = await pbkdf2Promise(sanitizedPassword, sanitizedSalt, iterations, length / 8, normalizedHash);
85
- if (!result) {
86
- throw (0, _Utils.lazyDOMException)('received bad result from pbkdf2()', 'OperationError');
87
- }
88
- return (0, _Utils.bufferLikeToArrayBuffer)(result);
89
- }
90
- //# sourceMappingURL=pbkdf2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_NativeQuickCrypto","require","_reactNativeBuffer","_Utils","_util","WRONG_PASS","WRONG_SALT","sanitizeInput","input","errorMsg","binaryLikeToArrayBuffer","e","nativePbkdf2","NativeQuickCrypto","pbkdf2","password","salt","iterations","keylen","arg0","arg1","digest","callback","undefined","Error","sanitizedPassword","sanitizedSalt","normalizedDigest","normalizeHashName","HashContext","Node","then","res","Buffer","from","pbkdf2Sync","algo","result","pbkdf2WithDigest","pbkdf2Promise","promisify","pbkdf2DeriveBits","algorithm","baseKey","length","hash","normalizedHash","lazyDOMException","raw","keyObject","export","bufferLikeToArrayBuffer"],"sourceRoot":"../../src","sources":["pbkdf2.ts"],"mappings":"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","ignoreList":[]}
@@ -1,248 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.rsaKeyGenerate = exports.rsaImportKey = exports.rsaExportKey = exports.rsaCipher = exports.RSAKeyVariant = void 0;
7
- var _Cipher = require("./NativeQuickCrypto/Cipher");
8
- var _Cipher2 = require("./Cipher");
9
- var _NativeQuickCrypto = require("./NativeQuickCrypto/NativeQuickCrypto");
10
- var _Utils = require("./Utils");
11
- var _keys = require("./keys");
12
- // TODO: keep in in sync with C++ side (cpp/Cipher/MGLRsa.h)
13
- let RSAKeyVariant = exports.RSAKeyVariant = /*#__PURE__*/function (RSAKeyVariant) {
14
- RSAKeyVariant[RSAKeyVariant["RSA_SSA_PKCS1_v1_5"] = 0] = "RSA_SSA_PKCS1_v1_5";
15
- RSAKeyVariant[RSAKeyVariant["RSA_PSS"] = 1] = "RSA_PSS";
16
- RSAKeyVariant[RSAKeyVariant["RSA_OAEP"] = 2] = "RSA_OAEP";
17
- return RSAKeyVariant;
18
- }({});
19
- function verifyAcceptableRsaKeyUse(name, isPublic, usages) {
20
- let checkSet;
21
- switch (name) {
22
- case 'RSA-OAEP':
23
- checkSet = isPublic ? ['encrypt', 'wrapKey'] : ['decrypt', 'unwrapKey'];
24
- break;
25
- case 'RSA-PSS':
26
- // Fall through
27
- case 'RSASSA-PKCS1-v1_5':
28
- checkSet = isPublic ? ['verify'] : ['sign'];
29
- break;
30
- default:
31
- throw (0, _Utils.lazyDOMException)('The algorithm is not supported', 'NotSupportedError');
32
- }
33
- if ((0, _Utils.hasAnyNotIn)(usages, checkSet)) {
34
- throw (0, _Utils.lazyDOMException)(`Unsupported key usage for an ${name} key`, 'SyntaxError');
35
- }
36
- }
37
- const rsaOaepCipher = (mode, key, data, {
38
- label
39
- }) => {
40
- const type = mode === _keys.CipherOrWrapMode.kWebCryptoCipherEncrypt ? 'public' : 'private';
41
- if (key.type !== type) {
42
- throw (0, _Utils.lazyDOMException)('The requested operation is not valid for the provided key', 'InvalidAccessError');
43
- }
44
- if (label !== undefined) {
45
- (0, _Utils.validateMaxBufferLength)(label, 'algorithm.label');
46
- }
47
- return _NativeQuickCrypto.NativeQuickCrypto.webcrypto.rsaCipher(mode, key.keyObject.handle, data, RSAKeyVariant.RSA_OAEP, (0, _Utils.normalizeHashName)(key.algorithm.hash), label !== undefined ? (0, _Utils.bufferLikeToArrayBuffer)(label) : undefined);
48
- };
49
- const rsaCipher = exports.rsaCipher = rsaOaepCipher;
50
- const rsaKeyGenerate = async (algorithm, extractable, keyUsages) => {
51
- const {
52
- name,
53
- modulusLength,
54
- publicExponent,
55
- hash: rawHash
56
- } = algorithm;
57
- const hash = (0, _Utils.normalizeHashName)(rawHash);
58
-
59
- // const usageSet = new SafeSet(keyUsages);
60
- const publicExponentConverted = (0, _Utils.bigIntArrayToUnsignedInt)(publicExponent);
61
- if (publicExponentConverted === undefined) {
62
- throw (0, _Utils.lazyDOMException)('The publicExponent must be equivalent to an unsigned 32-bit value', 'OperationError');
63
- }
64
- switch (name) {
65
- case 'RSA-OAEP':
66
- if ((0, _Utils.hasAnyNotIn)(keyUsages, ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey'])) {
67
- throw (0, _Utils.lazyDOMException)('Unsupported key usage for a RSA key', 'SyntaxError');
68
- }
69
- break;
70
- default:
71
- if ((0, _Utils.hasAnyNotIn)(keyUsages, ['sign', 'verify'])) {
72
- throw (0, _Utils.lazyDOMException)('Unsupported key usage for a RSA key', 'SyntaxError');
73
- }
74
- }
75
- const [err, keypair] = await (0, _Cipher2.generateKeyPairPromise)('rsa', {
76
- modulusLength,
77
- publicExponent: publicExponentConverted
78
- });
79
- if (err) {
80
- throw (0, _Utils.lazyDOMException)('The operation failed for an operation-specific reason', {
81
- name: 'OperationError',
82
- cause: err
83
- });
84
- }
85
- const keyAlgorithm = {
86
- name,
87
- modulusLength,
88
- publicExponent: publicExponentConverted,
89
- hash
90
- };
91
- let publicUsages = [];
92
- let privateUsages = [];
93
- switch (name) {
94
- case 'RSA-OAEP':
95
- {
96
- publicUsages = (0, _Utils.getUsagesUnion)(keyUsages, 'encrypt', 'wrapKey');
97
- privateUsages = (0, _Utils.getUsagesUnion)(keyUsages, 'decrypt', 'unwrapKey');
98
- break;
99
- }
100
- default:
101
- {
102
- publicUsages = (0, _Utils.getUsagesUnion)(keyUsages, 'verify');
103
- privateUsages = (0, _Utils.getUsagesUnion)(keyUsages, 'sign');
104
- break;
105
- }
106
- }
107
- const pub = new _keys.PublicKeyObject(keypair?.publicKey);
108
- const publicKey = new _keys.CryptoKey(pub, keyAlgorithm, publicUsages, true);
109
- const priv = new _keys.PrivateKeyObject(keypair?.privateKey);
110
- const privateKey = new _keys.CryptoKey(priv, keyAlgorithm, privateUsages, extractable);
111
- return {
112
- publicKey,
113
- privateKey
114
- };
115
- };
116
- exports.rsaKeyGenerate = rsaKeyGenerate;
117
- const rsaExportKey = (key, format) => {
118
- const variant = _Cipher.KeyVariantLookup[key.algorithm.name];
119
- if (variant === undefined) {
120
- throw (0, _Utils.lazyDOMException)(`Unrecognized algorithm name '${key.algorithm.name}'`, 'NotSupportedError');
121
- }
122
- return _NativeQuickCrypto.NativeQuickCrypto.webcrypto.rsaExportKey(format, key.keyObject.handle, variant);
123
- };
124
- exports.rsaExportKey = rsaExportKey;
125
- const rsaImportKey = (format, keyData, algorithm, extractable, keyUsages) => {
126
- // const usagesSet = new SafeSet(keyUsages);
127
- let keyObject;
128
- switch (format) {
129
- case 'spki':
130
- {
131
- verifyAcceptableRsaKeyUse(algorithm.name, true, keyUsages);
132
- try {
133
- keyObject = (0, _keys.createPublicKey)({
134
- key: keyData,
135
- format: 'der',
136
- type: 'spki'
137
- });
138
- } catch (err) {
139
- throw (0, _Utils.lazyDOMException)('Invalid keyData', {
140
- name: 'DataError',
141
- cause: err
142
- });
143
- }
144
- break;
145
- }
146
- // case 'pkcs8': {
147
- // verifyAcceptableRsaKeyUse(algorithm.name, false, keyUsages);
148
- // try {
149
- // keyObject = createPrivateKey({
150
- // key: keyData,
151
- // format: 'der',
152
- // type: 'pkcs8',
153
- // });
154
- // } catch (err) {
155
- // throw lazyDOMException('Invalid keyData', {
156
- // name: 'DataError',
157
- // cause: err,
158
- // });
159
- // }
160
- // break;
161
- // }
162
- case 'jwk':
163
- {
164
- const data = keyData;
165
- if (!data.kty) {
166
- throw (0, _Utils.lazyDOMException)('Invalid keyData', 'DataError');
167
- }
168
- if (data.kty !== 'RSA') throw (0, _Utils.lazyDOMException)('Invalid JWK "kty" Parameter', 'DataError');
169
- verifyAcceptableRsaKeyUse(algorithm.name, data.d === undefined, keyUsages);
170
- if (keyUsages.length > 0 && data.use !== undefined) {
171
- const checkUse = algorithm.name === 'RSA-OAEP' ? 'enc' : 'sig';
172
- if (data.use !== checkUse) throw (0, _Utils.lazyDOMException)('Invalid JWK "use" Parameter', 'DataError');
173
- }
174
- (0, _Utils.validateKeyOps)(data.key_ops, keyUsages);
175
- if (data.ext !== undefined && data.ext === false && extractable === true) {
176
- throw (0, _Utils.lazyDOMException)('JWK "ext" Parameter and extractable mismatch', 'DataError');
177
- }
178
- if (data.alg !== undefined) {
179
- const hash = (0, _Utils.normalizeHashName)(data.alg, _Utils.HashContext.WebCrypto);
180
- if (hash !== algorithm.hash) throw (0, _Utils.lazyDOMException)('JWK "alg" does not match the requested algorithm', 'DataError');
181
- }
182
- const handle = _NativeQuickCrypto.NativeQuickCrypto.webcrypto.createKeyObjectHandle();
183
- const type = handle.initJwk(data);
184
- if (type === undefined) throw (0, _Utils.lazyDOMException)('Invalid JWK', 'DataError');
185
- keyObject = type === _keys.KeyType.Private ? new _keys.PrivateKeyObject(handle) : new _keys.PublicKeyObject(handle);
186
- break;
187
- }
188
- default:
189
- throw (0, _Utils.lazyDOMException)(`Unable to import RSA key with format ${format}`, 'NotSupportedError');
190
- }
191
- if (keyObject.asymmetricKeyType !== 'rsa') {
192
- throw (0, _Utils.lazyDOMException)('Invalid key type', 'DataError');
193
- }
194
- const {
195
- modulusLength,
196
- publicExponent
197
- } = keyObject.handle.keyDetail();
198
- if (publicExponent === undefined) {
199
- throw (0, _Utils.lazyDOMException)('publicExponent is undefined', 'DataError');
200
- }
201
- return new _keys.CryptoKey(keyObject, {
202
- name: algorithm.name,
203
- modulusLength,
204
- publicExponent: new Uint8Array(publicExponent),
205
- hash: algorithm.hash
206
- }, keyUsages, extractable);
207
- };
208
-
209
- // function rsaSignVerify(key, data, { saltLength }, signature) {
210
- // let padding;
211
- // if (key.algorithm.name === 'RSA-PSS') {
212
- // padding = RSA_PKCS1_PSS_PADDING;
213
- // // TODO(@jasnell): Validate maximum size of saltLength
214
- // // based on the key size:
215
- // // Math.ceil((keySizeInBits - 1)/8) - digestSizeInBytes - 2
216
- // validateInt32(saltLength, 'algorithm.saltLength', -2);
217
- // }
218
-
219
- // const mode = signature === undefined ? kSignJobModeSign : kSignJobModeVerify;
220
- // const type = mode === kSignJobModeSign ? 'private' : 'public';
221
-
222
- // if (key.type !== type)
223
- // throw lazyDOMException(`Key must be a ${type} key`, 'InvalidAccessError');
224
-
225
- // return jobPromise(() => new SignJob(
226
- // kCryptoJobAsync,
227
- // signature === undefined ? kSignJobModeSign : kSignJobModeVerify,
228
- // key[kKeyObject][kHandle],
229
- // undefined,
230
- // undefined,
231
- // undefined,
232
- // data,
233
- // normalizeHashName(key.algorithm.hash.name),
234
- // saltLength,
235
- // padding,
236
- // undefined,
237
- // signature));
238
- // }
239
-
240
- // module.exports = {
241
- // rsaCipher: rsaOaepCipher,
242
- // rsaExportKey,
243
- // rsaImportKey,
244
- // rsaKeyGenerate,
245
- // rsaSignVerify,
246
- // };
247
- exports.rsaImportKey = rsaImportKey;
248
- //# sourceMappingURL=rsa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_Cipher","require","_Cipher2","_NativeQuickCrypto","_Utils","_keys","RSAKeyVariant","exports","verifyAcceptableRsaKeyUse","name","isPublic","usages","checkSet","lazyDOMException","hasAnyNotIn","rsaOaepCipher","mode","key","data","label","type","CipherOrWrapMode","kWebCryptoCipherEncrypt","undefined","validateMaxBufferLength","NativeQuickCrypto","webcrypto","rsaCipher","keyObject","handle","RSA_OAEP","normalizeHashName","algorithm","hash","bufferLikeToArrayBuffer","rsaKeyGenerate","extractable","keyUsages","modulusLength","publicExponent","rawHash","publicExponentConverted","bigIntArrayToUnsignedInt","err","keypair","generateKeyPairPromise","cause","keyAlgorithm","publicUsages","privateUsages","getUsagesUnion","pub","PublicKeyObject","publicKey","CryptoKey","priv","PrivateKeyObject","privateKey","rsaExportKey","format","variant","KeyVariantLookup","rsaImportKey","keyData","createPublicKey","kty","d","length","use","checkUse","validateKeyOps","key_ops","ext","alg","HashContext","WebCrypto","createKeyObjectHandle","initJwk","KeyType","Private","asymmetricKeyType","keyDetail","Uint8Array"],"sourceRoot":"../../src","sources":["rsa.ts"],"mappings":"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","ignoreList":[]}
@@ -1,129 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createSign = createSign;
7
- exports.createVerify = createVerify;
8
- var _NativeQuickCrypto = require("./NativeQuickCrypto/NativeQuickCrypto");
9
- var _readableStream = _interopRequireDefault(require("readable-stream"));
10
- var _Utils = require("./Utils");
11
- var _keys = require("./keys");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- // TODO(osp) same as publicCipher on node this are defined on C++ and exposed to node
14
- // Do the same here
15
- var DSASigEnc = /*#__PURE__*/function (DSASigEnc) {
16
- DSASigEnc[DSASigEnc["kSigEncDER"] = 0] = "kSigEncDER";
17
- DSASigEnc[DSASigEnc["kSigEncP1363"] = 1] = "kSigEncP1363";
18
- return DSASigEnc;
19
- }(DSASigEnc || {});
20
- const createInternalSign = _NativeQuickCrypto.NativeQuickCrypto.createSign;
21
- const createInternalVerify = _NativeQuickCrypto.NativeQuickCrypto.createVerify;
22
- function getPadding(options) {
23
- return getIntOption('padding', options);
24
- }
25
- function getSaltLength(options) {
26
- return getIntOption('saltLength', options);
27
- }
28
- function getDSASignatureEncoding(options) {
29
- if (typeof options === 'object') {
30
- const {
31
- dsaEncoding = 'der'
32
- } = options;
33
- if (dsaEncoding === 'der') return DSASigEnc.kSigEncDER;else if (dsaEncoding === 'ieee-p1363') return DSASigEnc.kSigEncP1363;
34
- throw new Error(`options.dsaEncoding: ${dsaEncoding} not a valid encoding`);
35
- }
36
- return DSASigEnc.kSigEncDER;
37
- }
38
- function getIntOption(name, options) {
39
- const value = options[name];
40
- if (value !== undefined) {
41
- // eslint-disable-next-line no-bitwise
42
- if (value === value >> 0) {
43
- return value;
44
- }
45
- throw new Error(`options.${name}: ${value} not a valid int value`);
46
- }
47
- return undefined;
48
- }
49
- class Verify extends _readableStream.default.Writable {
50
- constructor(algorithm, options) {
51
- super(options);
52
- this.internal = createInternalVerify();
53
- this.internal.init(algorithm);
54
- }
55
- _write(chunk, encoding, callback) {
56
- this.update(chunk, encoding);
57
- callback();
58
- }
59
- update(data, encoding) {
60
- encoding = encoding ?? (0, _Utils.getDefaultEncoding)();
61
- data = (0, _Utils.binaryLikeToArrayBuffer)(data, encoding);
62
- this.internal.update(data);
63
- return this;
64
- }
65
- verify(options, signature) {
66
- if (!options) {
67
- throw new Error('Crypto sign key required');
68
- }
69
- const {
70
- data,
71
- format,
72
- type,
73
- passphrase
74
- } = (0, _keys.preparePublicOrPrivateKey)(options);
75
- const rsaPadding = getPadding(options);
76
- const pssSaltLength = getSaltLength(options);
77
-
78
- // Options specific to (EC)DSA
79
- const dsaSigEnc = getDSASignatureEncoding(options);
80
- const ret = this.internal.verify(data, format, type, passphrase, (0, _Utils.binaryLikeToArrayBuffer)(signature), rsaPadding, pssSaltLength, dsaSigEnc);
81
- return ret;
82
- }
83
- }
84
- class Sign extends _readableStream.default.Writable {
85
- constructor(algorithm, options) {
86
- super(options);
87
- this.internal = createInternalSign();
88
- this.internal.init(algorithm);
89
- }
90
- _write(chunk, encoding, callback) {
91
- this.update(chunk, encoding);
92
- callback();
93
- }
94
- update(data, encoding) {
95
- encoding = encoding ?? (0, _Utils.getDefaultEncoding)();
96
- data = (0, _Utils.binaryLikeToArrayBuffer)(data, encoding);
97
- this.internal.update(data);
98
- return this;
99
- }
100
- sign(options, encoding) {
101
- if (!options) {
102
- throw new Error('Crypto sign key required');
103
- }
104
- const {
105
- data,
106
- format,
107
- type,
108
- passphrase
109
- } = (0, _keys.preparePrivateKey)(options);
110
- const rsaPadding = getPadding(options);
111
- const pssSaltLength = getSaltLength(options);
112
-
113
- // Options specific to (EC)DSA
114
- const dsaSigEnc = getDSASignatureEncoding(options);
115
- const ret = this.internal.sign(data, format, type, passphrase, rsaPadding, pssSaltLength, dsaSigEnc);
116
- encoding = encoding || (0, _Utils.getDefaultEncoding)();
117
- if (encoding && encoding !== 'buffer') {
118
- return Buffer.from(ret).toString(encoding);
119
- }
120
- return Buffer.from(ret);
121
- }
122
- }
123
- function createSign(algorithm, options) {
124
- return new Sign(algorithm, options);
125
- }
126
- function createVerify(algorithm, options) {
127
- return new Verify(algorithm, options);
128
- }
129
- //# sourceMappingURL=sig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_NativeQuickCrypto","require","_readableStream","_interopRequireDefault","_Utils","_keys","obj","__esModule","default","DSASigEnc","createInternalSign","NativeQuickCrypto","createSign","createInternalVerify","createVerify","getPadding","options","getIntOption","getSaltLength","getDSASignatureEncoding","dsaEncoding","kSigEncDER","kSigEncP1363","Error","name","value","undefined","Verify","Stream","Writable","constructor","algorithm","internal","init","_write","chunk","encoding","callback","update","data","getDefaultEncoding","binaryLikeToArrayBuffer","verify","signature","format","type","passphrase","preparePublicOrPrivateKey","rsaPadding","pssSaltLength","dsaSigEnc","ret","Sign","sign","preparePrivateKey","Buffer","from","toString"],"sourceRoot":"../../src","sources":["sig.ts"],"mappings":"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","ignoreList":[]}