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,502 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ECCurve = void 0;
7
- exports.createCipher = createCipher;
8
- exports.createCipheriv = createCipheriv;
9
- exports.createDecipher = createDecipher;
10
- exports.createDecipheriv = createDecipheriv;
11
- exports.generateKeyPairPromise = exports.generateKeyPair = void 0;
12
- exports.generateKeyPairSync = generateKeyPairSync;
13
- exports.publicEncrypt = exports.publicDecrypt = exports.privateDecrypt = void 0;
14
- var _NativeQuickCrypto = require("./NativeQuickCrypto/NativeQuickCrypto");
15
- var _readableStream = _interopRequireDefault(require("readable-stream"));
16
- var _Utils = require("./Utils");
17
- var _Cipher = require("./NativeQuickCrypto/Cipher");
18
- var _string_decoder = require("string_decoder");
19
- var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
20
- var _safeBuffer = require("safe-buffer");
21
- var _constants = require("./constants");
22
- var _keys = require("./keys");
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
- // @types/node
25
- let ECCurve = exports.ECCurve = /*#__PURE__*/function (ECCurve) {
26
- ECCurve[ECCurve["OPENSSL_EC_EXPLICIT_CURVE"] = 0] = "OPENSSL_EC_EXPLICIT_CURVE";
27
- ECCurve[ECCurve["OPENSSL_EC_NAMED_CURVE"] = 1] = "OPENSSL_EC_NAMED_CURVE";
28
- return ECCurve;
29
- }({}); // make sure that nextTick is there
30
- global.process.nextTick = setImmediate;
31
- const createInternalCipher = _NativeQuickCrypto.NativeQuickCrypto.createCipher;
32
- const createInternalDecipher = _NativeQuickCrypto.NativeQuickCrypto.createDecipher;
33
- const _publicEncrypt = _NativeQuickCrypto.NativeQuickCrypto.publicEncrypt;
34
- const _publicDecrypt = _NativeQuickCrypto.NativeQuickCrypto.publicDecrypt;
35
- const _privateDecrypt = _NativeQuickCrypto.NativeQuickCrypto.privateDecrypt;
36
- function getUIntOption(options, key) {
37
- let value;
38
- if (options && (value = options[key]) != null) {
39
- // >>> Turns any type into a positive integer (also sets the sign bit to 0)
40
- // eslint-disable-next-line no-bitwise
41
- if (value >>> 0 !== value) throw new Error(`options.${key}: ${value}`);
42
- return value;
43
- }
44
- return -1;
45
- }
46
- function normalizeEncoding(enc) {
47
- if (!enc) return 'utf8';
48
- var retried;
49
- while (true) {
50
- switch (enc) {
51
- case 'utf8':
52
- case 'utf-8':
53
- return 'utf8';
54
- case 'ucs2':
55
- case 'ucs-2':
56
- case 'utf16le':
57
- case 'utf-16le':
58
- return 'utf16le';
59
- case 'latin1':
60
- case 'binary':
61
- return 'latin1';
62
- case 'base64':
63
- case 'ascii':
64
- case 'hex':
65
- return enc;
66
- default:
67
- if (retried) return; // undefined
68
- enc = ('' + enc).toLowerCase();
69
- retried = true;
70
- }
71
- }
72
- }
73
- function validateEncoding(data, encoding) {
74
- const normalizedEncoding = normalizeEncoding(encoding);
75
- const length = data.length;
76
- if (normalizedEncoding === 'hex' && length % 2 !== 0) {
77
- throw new Error(`Encoding ${encoding} not valid for data length ${length}`);
78
- }
79
- }
80
- function getDecoder(decoder, encoding) {
81
- return decoder ?? new _string_decoder.StringDecoder(encoding);
82
- }
83
- class CipherCommon extends _readableStream.default.Transform {
84
- constructor(cipherType, cipherKey, isCipher, options = {}, iv) {
85
- super(options);
86
- const cipherKeyBuffer = (0, _Utils.binaryLikeToArrayBuffer)(cipherKey);
87
- // defaults to 16 bytes
88
- const authTagLength = getUIntOption(options, 'authTagLength') !== -1 ? getUIntOption(options, 'authTagLength') : 16;
89
- const args = {
90
- cipher_type: cipherType,
91
- cipher_key: cipherKeyBuffer,
92
- iv,
93
- ...options,
94
- auth_tag_len: authTagLength
95
- };
96
- this.internal = isCipher ? createInternalCipher(args) : createInternalDecipher(args);
97
- }
98
- update(data, inputEncoding, outputEncoding) {
99
- const defaultEncoding = (0, _Utils.getDefaultEncoding)();
100
- inputEncoding = inputEncoding ?? defaultEncoding;
101
- outputEncoding = outputEncoding ?? defaultEncoding;
102
- if (typeof data === 'string') {
103
- validateEncoding(data, inputEncoding);
104
- } else if (!ArrayBuffer.isView(data)) {
105
- throw new Error('Invalid data argument');
106
- }
107
- if (typeof data === 'string') {
108
- // On node this is handled on the native side
109
- // on our case we need to correctly send the arraybuffer to the jsi side
110
- inputEncoding = inputEncoding === 'buffer' ? 'utf8' : inputEncoding;
111
- data = (0, _Utils.binaryLikeToArrayBuffer)(data, inputEncoding);
112
- } else {
113
- data = (0, _Utils.binaryLikeToArrayBuffer)(data, inputEncoding);
114
- }
115
- const ret = this.internal.update(data);
116
- if (outputEncoding && outputEncoding !== 'buffer') {
117
- this.decoder = getDecoder(this.decoder, outputEncoding);
118
- return this.decoder.write(_safeBuffer.Buffer.from(ret));
119
- }
120
- return ret;
121
- }
122
- final(outputEncoding) {
123
- const ret = this.internal.final();
124
- if (outputEncoding && outputEncoding !== 'buffer') {
125
- this.decoder = getDecoder(this.decoder, outputEncoding);
126
- return this.decoder.end(_safeBuffer.Buffer.from(ret));
127
- }
128
- return ret;
129
- }
130
- _transform(chunk, encoding, callback) {
131
- this.push(this.update(chunk, encoding));
132
- callback();
133
- }
134
- _flush(callback) {
135
- this.push(this.final());
136
- callback();
137
- }
138
- setAutoPadding(autoPadding) {
139
- this.internal.setAutoPadding(!!autoPadding);
140
- return this;
141
- }
142
- setAAD(buffer, options) {
143
- this.internal.setAAD({
144
- data: buffer.buffer,
145
- plaintextLength: options?.plaintextLength
146
- });
147
- return this;
148
- }
149
- getAuthTag() {
150
- return this.internal.getAuthTag();
151
- }
152
- setAuthTag(tag) {
153
- this.internal.setAuthTag((0, _Utils.binaryLikeToArrayBuffer)(tag));
154
- return this;
155
- }
156
- }
157
- class Cipher extends CipherCommon {
158
- constructor(cipherType, cipherKey, options = {}, iv) {
159
- if (iv != null) {
160
- iv = (0, _Utils.binaryLikeToArrayBuffer)(iv);
161
- }
162
- super(cipherType, cipherKey, true, options, iv);
163
- }
164
- }
165
- class Decipher extends CipherCommon {
166
- constructor(cipherType, cipherKey, options = {}, iv) {
167
- if (iv != null) {
168
- iv = (0, _Utils.binaryLikeToArrayBuffer)(iv);
169
- }
170
- super(cipherType, cipherKey, false, options, iv);
171
- }
172
- }
173
- function createDecipher(algorithm, password, options) {
174
- return new Decipher(algorithm, password, options);
175
- }
176
- function createDecipheriv(algorithm, key, iv, options) {
177
- return new Decipher(algorithm, key, options, iv);
178
- }
179
- function createCipher(algorithm, password, options) {
180
- return new Cipher(algorithm, password, options);
181
- }
182
- function createCipheriv(algorithm, key, iv, options) {
183
- return new Cipher(algorithm, key, options, iv);
184
- }
185
-
186
- // RSA Functions
187
- // Follows closely the model implemented in node
188
-
189
- // TODO(osp) types...
190
- function rsaFunctionFor(method, defaultPadding, keyType) {
191
- return (options, buffer) => {
192
- const {
193
- format,
194
- type,
195
- data,
196
- passphrase
197
- } = keyType === 'private' ? (0, _keys.preparePrivateKey)(options) : (0, _keys.preparePublicOrPrivateKey)(options);
198
- const padding = options.padding || defaultPadding;
199
- const {
200
- oaepHash,
201
- encoding
202
- } = options;
203
- let {
204
- oaepLabel
205
- } = options;
206
- if (oaepHash !== undefined) (0, _Utils.validateString)(oaepHash, 'key.oaepHash');
207
- if (oaepLabel !== undefined) oaepLabel = (0, _Utils.binaryLikeToArrayBuffer)(oaepLabel, encoding);
208
- buffer = (0, _Utils.binaryLikeToArrayBuffer)(buffer, encoding);
209
- const rawRes = method(data, format, type, passphrase, buffer, padding, oaepHash, oaepLabel);
210
- return _reactNativeBuffer.Buffer.from(rawRes);
211
- };
212
- }
213
- const publicEncrypt = exports.publicEncrypt = rsaFunctionFor(_publicEncrypt, _constants.constants.RSA_PKCS1_OAEP_PADDING, 'public');
214
- const publicDecrypt = exports.publicDecrypt = rsaFunctionFor(_publicDecrypt, _constants.constants.RSA_PKCS1_PADDING, 'public');
215
- // const privateEncrypt = rsaFunctionFor(_privateEncrypt, constants.RSA_PKCS1_PADDING,
216
- // 'private');
217
- const privateDecrypt = exports.privateDecrypt = rsaFunctionFor(_privateDecrypt, _constants.constants.RSA_PKCS1_OAEP_PADDING, 'private');
218
-
219
- // _ _ __ _____ _
220
- // | | | |/ / | __ \ (_)
221
- // __ _ ___ _ __ ___ _ __ __ _| |_ ___| ' / ___ _ _| |__) |_ _ _ _ __
222
- // / _` |/ _ \ '_ \ / _ \ '__/ _` | __/ _ \ < / _ \ | | | ___/ _` | | '__|
223
- // | (_| | __/ | | | __/ | | (_| | || __/ . \ __/ |_| | | | (_| | | |
224
- // \__, |\___|_| |_|\___|_| \__,_|\__\___|_|\_\___|\__, |_| \__,_|_|_|
225
- // __/ | __/ |
226
- // |___/ |___/
227
-
228
- function parseKeyEncoding(keyType, options = _Utils.kEmptyObject) {
229
- const {
230
- publicKeyEncoding,
231
- privateKeyEncoding
232
- } = options;
233
- let publicFormat, publicType;
234
- if (publicKeyEncoding == null) {
235
- publicFormat = publicType = undefined;
236
- } else if (typeof publicKeyEncoding === 'object') {
237
- ({
238
- format: publicFormat,
239
- type: publicType
240
- } = (0, _keys.parsePublicKeyEncoding)(publicKeyEncoding, keyType, 'publicKeyEncoding'));
241
- } else {
242
- throw new Error('Invalid argument options.publicKeyEncoding', publicKeyEncoding);
243
- }
244
- let privateFormat, privateType, cipher, passphrase;
245
- if (privateKeyEncoding == null) {
246
- privateFormat = privateType = undefined;
247
- } else if (typeof privateKeyEncoding === 'object') {
248
- ({
249
- format: privateFormat,
250
- type: privateType,
251
- cipher,
252
- passphrase
253
- } = (0, _keys.parsePrivateKeyEncoding)(privateKeyEncoding, keyType, 'privateKeyEncoding'));
254
- } else {
255
- throw new Error('Invalid argument options.privateKeyEncoding', publicKeyEncoding);
256
- }
257
- return [publicFormat, publicType, privateFormat, privateType, cipher, passphrase];
258
- }
259
-
260
- /** On node a very complex "job" chain is created, we are going for a far simpler approach and calling
261
- * an internal function that basically executes the same byte shuffling on the native side
262
- */
263
- function internalGenerateKeyPair(isAsync, type, options, callback) {
264
- const encoding = parseKeyEncoding(type, options);
265
-
266
- // if (options !== undefined)
267
- // validateObject(options, 'options');
268
-
269
- switch (type) {
270
- case 'rsa-pss':
271
- // fallthrough
272
- case 'rsa':
273
- (0, _Utils.validateObject)(options, 'options');
274
- const {
275
- modulusLength
276
- } = options;
277
- (0, _Utils.validateUint32)(modulusLength, 'options.modulusLength');
278
- let {
279
- publicExponent
280
- } = options;
281
- if (publicExponent == null) {
282
- publicExponent = 0x10001;
283
- } else {
284
- (0, _Utils.validateUint32)(publicExponent, 'options.publicExponent');
285
- }
286
- if (type === 'rsa') {
287
- if (isAsync) {
288
- _NativeQuickCrypto.NativeQuickCrypto.generateKeyPair(_Cipher.KeyVariant.RSA_SSA_PKCS1_v1_5,
289
- // Used also for RSA-OAEP
290
- modulusLength, publicExponent, ...encoding).then(([err, publicKey, privateKey]) => {
291
- if (publicKey instanceof _reactNativeBuffer.Buffer) {
292
- publicKey = _reactNativeBuffer.Buffer.from(publicKey);
293
- }
294
- if (privateKey instanceof _reactNativeBuffer.Buffer) {
295
- privateKey = _reactNativeBuffer.Buffer.from(privateKey);
296
- }
297
- callback(err, publicKey, privateKey);
298
- }).catch(err => {
299
- callback(err, undefined, undefined);
300
- });
301
- } else {
302
- let [err, publicKey, privateKey] = _NativeQuickCrypto.NativeQuickCrypto.generateKeyPairSync(_Cipher.KeyVariant.RSA_SSA_PKCS1_v1_5, modulusLength, publicExponent, ...encoding);
303
- if (publicKey instanceof _reactNativeBuffer.Buffer) {
304
- publicKey = _reactNativeBuffer.Buffer.from(publicKey);
305
- }
306
- if (privateKey instanceof _reactNativeBuffer.Buffer) {
307
- privateKey = _reactNativeBuffer.Buffer.from(privateKey);
308
- }
309
- return [err, publicKey, privateKey];
310
- }
311
- }
312
- const {
313
- hash,
314
- mgf1Hash,
315
- hashAlgorithm,
316
- mgf1HashAlgorithm,
317
- saltLength
318
- } = options;
319
-
320
- // // We don't have a process object on RN
321
- // // const pendingDeprecation = getOptionValue('--pending-deprecation');
322
-
323
- if (saltLength !== undefined) (0, _Utils.validateInt32)(saltLength, 'options.saltLength', 0);
324
- if (hashAlgorithm !== undefined) (0, _Utils.validateString)(hashAlgorithm, 'options.hashAlgorithm');
325
- if (mgf1HashAlgorithm !== undefined) (0, _Utils.validateString)(mgf1HashAlgorithm, 'options.mgf1HashAlgorithm');
326
- if (hash !== undefined) {
327
- // pendingDeprecation && process.emitWarning(
328
- // '"options.hash" is deprecated, ' +
329
- // 'use "options.hashAlgorithm" instead.',
330
- // 'DeprecationWarning',
331
- // 'DEP0154');
332
- (0, _Utils.validateString)(hash, 'options.hash');
333
- if (hashAlgorithm && hash !== hashAlgorithm) {
334
- throw new Error(`Invalid Argument options.hash ${hash}`);
335
- }
336
- }
337
- if (mgf1Hash !== undefined) {
338
- // pendingDeprecation && process.emitWarning(
339
- // '"options.mgf1Hash" is deprecated, ' +
340
- // 'use "options.mgf1HashAlgorithm" instead.',
341
- // 'DeprecationWarning',
342
- // 'DEP0154');
343
- (0, _Utils.validateString)(mgf1Hash, 'options.mgf1Hash');
344
- if (mgf1HashAlgorithm && mgf1Hash !== mgf1HashAlgorithm) {
345
- throw new Error(`Invalid Argument options.mgf1Hash ${mgf1Hash}`);
346
- }
347
- }
348
- return _NativeQuickCrypto.NativeQuickCrypto.generateKeyPairSync(_Cipher.KeyVariant.RSA_PSS, modulusLength, publicExponent, hashAlgorithm || hash, mgf1HashAlgorithm || mgf1Hash, saltLength, ...encoding);
349
-
350
- // case 'dsa': {
351
- // validateObject(options, 'options');
352
- // const { modulusLength } = options!;
353
- // validateUint32(modulusLength, 'options.modulusLength');
354
-
355
- // let { divisorLength } = options!;
356
- // if (divisorLength == null) {
357
- // divisorLength = -1;
358
- // } else validateInt32(divisorLength, 'options.divisorLength', 0);
359
-
360
- // // return new DsaKeyPairGenJob(
361
- // // mode,
362
- // // modulusLength,
363
- // // divisorLength,
364
- // // ...encoding);
365
- // }
366
-
367
- case 'ec':
368
- (0, _Utils.validateObject)(options, 'options');
369
- const {
370
- namedCurve
371
- } = options;
372
- (0, _Utils.validateString)(namedCurve, 'options.namedCurve');
373
- let paramEncodingFlag = ECCurve.OPENSSL_EC_NAMED_CURVE;
374
- const {
375
- paramEncoding
376
- } = options;
377
- if (paramEncoding == null || paramEncoding === 'named') paramEncodingFlag = ECCurve.OPENSSL_EC_NAMED_CURVE;else if (paramEncoding === 'explicit') paramEncodingFlag = ECCurve.OPENSSL_EC_EXPLICIT_CURVE;else throw new Error(`Invalid Argument options.paramEncoding ${paramEncoding}`);
378
- if (isAsync) {
379
- _NativeQuickCrypto.NativeQuickCrypto.generateKeyPair(_Cipher.KeyVariant.EC, namedCurve, paramEncodingFlag, ...encoding).then(([err, publicKey, privateKey]) => {
380
- if (publicKey instanceof _reactNativeBuffer.Buffer) {
381
- publicKey = _reactNativeBuffer.Buffer.from(publicKey);
382
- }
383
- if (privateKey instanceof _reactNativeBuffer.Buffer) {
384
- privateKey = _reactNativeBuffer.Buffer.from(privateKey);
385
- }
386
- callback?.(err, publicKey, privateKey);
387
- }).catch(err => {
388
- callback?.(err, undefined, undefined);
389
- });
390
- }
391
- let [err, publicKey, privateKey] = _NativeQuickCrypto.NativeQuickCrypto.generateKeyPairSync(_Cipher.KeyVariant.EC, namedCurve, paramEncodingFlag, ...encoding);
392
- if (publicKey instanceof _reactNativeBuffer.Buffer) {
393
- publicKey = _reactNativeBuffer.Buffer.from(publicKey);
394
- }
395
- if (privateKey instanceof _reactNativeBuffer.Buffer) {
396
- privateKey = _reactNativeBuffer.Buffer.from(privateKey);
397
- }
398
- return [err, publicKey, privateKey];
399
-
400
- // case 'ed25519':
401
- // case 'ed448':
402
- // case 'x25519':
403
- // case 'x448': {
404
- // let id;
405
- // switch (type) {
406
- // case 'ed25519':
407
- // id = EVP_PKEY_ED25519;
408
- // break;
409
- // case 'ed448':
410
- // id = EVP_PKEY_ED448;
411
- // break;
412
- // case 'x25519':
413
- // id = EVP_PKEY_X25519;
414
- // break;
415
- // case 'x448':
416
- // id = EVP_PKEY_X448;
417
- // break;
418
- // }
419
- // return new NidKeyPairGenJob(mode, id, ...encoding);
420
- // }
421
- // case 'dh': {
422
- // validateObject(options, 'options');
423
- // const { group, primeLength, prime, generator } = options;
424
- // if (group != null) {
425
- // if (prime != null)
426
- // throw new ERR_INCOMPATIBLE_OPTION_PAIR('group', 'prime');
427
- // if (primeLength != null)
428
- // throw new ERR_INCOMPATIBLE_OPTION_PAIR('group', 'primeLength');
429
- // if (generator != null)
430
- // throw new ERR_INCOMPATIBLE_OPTION_PAIR('group', 'generator');
431
-
432
- // validateString(group, 'options.group');
433
-
434
- // return new DhKeyPairGenJob(mode, group, ...encoding);
435
- // }
436
-
437
- // if (prime != null) {
438
- // if (primeLength != null)
439
- // throw new ERR_INCOMPATIBLE_OPTION_PAIR('prime', 'primeLength');
440
-
441
- // validateBuffer(prime, 'options.prime');
442
- // } else if (primeLength != null) {
443
- // validateInt32(primeLength, 'options.primeLength', 0);
444
- // } else {
445
- // throw new ERR_MISSING_OPTION(
446
- // 'At least one of the group, prime, or primeLength options'
447
- // );
448
- // }
449
-
450
- // if (generator != null) {
451
- // validateInt32(generator, 'options.generator', 0);
452
- // }
453
- // return new DhKeyPairGenJob(
454
- // mode,
455
- // prime != null ? prime : primeLength,
456
- // generator == null ? 2 : generator,
457
- // ...encoding
458
- // );
459
- // }
460
- default:
461
- // Fall through
462
- }
463
- const err = new Error(`
464
- Invalid Argument options: '${type}' scheme not supported for generateKey().
465
- Currently not all encryption methods are supported in quick-crypto. Check
466
- implementation_coverage.md for status.
467
- `);
468
- return [err, undefined, undefined];
469
- }
470
- const generateKeyPair = (type, options, callback) => {
471
- (0, _Utils.validateFunction)(callback);
472
- internalGenerateKeyPair(true, type, options, callback);
473
- };
474
-
475
- // Promisify generateKeyPair
476
- // (attempted to use util.promisify, to no avail)
477
- exports.generateKeyPair = generateKeyPair;
478
- const generateKeyPairPromise = (type, options) => {
479
- return new Promise((resolve, reject) => {
480
- generateKeyPair(type, options, (err, publicKey, privateKey) => {
481
- if (err) {
482
- reject([err, undefined]);
483
- } else {
484
- resolve([undefined, {
485
- publicKey,
486
- privateKey
487
- }]);
488
- }
489
- });
490
- });
491
- };
492
-
493
- // generateKeyPairSync
494
- exports.generateKeyPairPromise = generateKeyPairPromise;
495
- function generateKeyPairSync(type, options) {
496
- const [_, publicKey, privateKey] = internalGenerateKeyPair(false, type, options, undefined);
497
- return {
498
- publicKey,
499
- privateKey
500
- };
501
- }
502
- //# sourceMappingURL=Cipher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_NativeQuickCrypto","require","_readableStream","_interopRequireDefault","_Utils","_Cipher","_string_decoder","_reactNativeBuffer","_safeBuffer","_constants","_keys","obj","__esModule","default","ECCurve","exports","global","process","nextTick","setImmediate","createInternalCipher","NativeQuickCrypto","createCipher","createInternalDecipher","createDecipher","_publicEncrypt","publicEncrypt","_publicDecrypt","publicDecrypt","_privateDecrypt","privateDecrypt","getUIntOption","options","key","value","Error","normalizeEncoding","enc","retried","toLowerCase","validateEncoding","data","encoding","normalizedEncoding","length","getDecoder","decoder","StringDecoder","CipherCommon","Stream","Transform","constructor","cipherType","cipherKey","isCipher","iv","cipherKeyBuffer","binaryLikeToArrayBuffer","authTagLength","args","cipher_type","cipher_key","auth_tag_len","internal","update","inputEncoding","outputEncoding","defaultEncoding","getDefaultEncoding","ArrayBuffer","isView","ret","write","SBuffer","from","final","end","_transform","chunk","callback","push","_flush","setAutoPadding","autoPadding","setAAD","buffer","plaintextLength","getAuthTag","setAuthTag","tag","Cipher","Decipher","algorithm","password","createDecipheriv","createCipheriv","rsaFunctionFor","method","defaultPadding","keyType","format","type","passphrase","preparePrivateKey","preparePublicOrPrivateKey","padding","oaepHash","oaepLabel","undefined","validateString","rawRes","Buffer","constants","RSA_PKCS1_OAEP_PADDING","RSA_PKCS1_PADDING","parseKeyEncoding","kEmptyObject","publicKeyEncoding","privateKeyEncoding","publicFormat","publicType","parsePublicKeyEncoding","privateFormat","privateType","cipher","parsePrivateKeyEncoding","internalGenerateKeyPair","isAsync","validateObject","modulusLength","validateUint32","publicExponent","generateKeyPair","KeyVariant","RSA_SSA_PKCS1_v1_5","then","err","publicKey","privateKey","catch","generateKeyPairSync","hash","mgf1Hash","hashAlgorithm","mgf1HashAlgorithm","saltLength","validateInt32","RSA_PSS","namedCurve","paramEncodingFlag","OPENSSL_EC_NAMED_CURVE","paramEncoding","OPENSSL_EC_EXPLICIT_CURVE","EC","validateFunction","generateKeyPairPromise","Promise","resolve","reject","_"],"sourceRoot":"../../src","sources":["Cipher.ts"],"mappings":"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","ignoreList":[]}
@@ -1,99 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.asyncDigest = void 0;
7
- exports.createHash = createHash;
8
- var _NativeQuickCrypto = require("./NativeQuickCrypto/NativeQuickCrypto");
9
- var _Utils = require("./Utils");
10
- var _readableStream = _interopRequireDefault(require("readable-stream"));
11
- var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- global.process.nextTick = setImmediate;
14
- const createInternalHash = _NativeQuickCrypto.NativeQuickCrypto.createHash;
15
- function createHash(algorithm, options) {
16
- return new Hash(algorithm, options);
17
- }
18
- class Hash extends _readableStream.default.Transform {
19
- constructor(arg, options) {
20
- super(options ?? undefined);
21
- if (arg instanceof Hash) {
22
- this.internalHash = arg.internalHash.copy(options?.outputLength);
23
- } else {
24
- this.internalHash = createInternalHash(arg, options?.outputLength);
25
- }
26
- }
27
- copy(options) {
28
- const copy = new Hash(this, options);
29
- return copy;
30
- }
31
- /**
32
- * Updates the hash content with the given `data`, the encoding of which
33
- * is given in `inputEncoding`.
34
- * If `encoding` is not provided, and the `data` is a string, an
35
- * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.
36
- *
37
- * This can be called many times with new data as it is streamed.
38
- * @since v0.1.92
39
- * @param inputEncoding The `encoding` of the `data` string.
40
- */
41
- update(data, inputEncoding) {
42
- if (data instanceof ArrayBuffer) {
43
- this.internalHash.update(data);
44
- return this;
45
- }
46
- const buffer = _reactNativeBuffer.Buffer.from(data, inputEncoding);
47
- this.internalHash.update((0, _Utils.toArrayBuffer)(buffer));
48
- return this;
49
- }
50
- _transform(chunk, encoding, callback) {
51
- this.update(chunk, encoding);
52
- callback();
53
- }
54
- _flush(callback) {
55
- this.push(this.digest());
56
- callback();
57
- }
58
-
59
- /**
60
- * Calculates the digest of all of the data passed to be hashed (using the `hash.update()` method).
61
- * If `encoding` is provided a string will be returned; otherwise
62
- * a `Buffer` is returned.
63
- *
64
- * The `Hash` object can not be used again after `hash.digest()` method has been
65
- * called. Multiple calls will cause an error to be thrown.
66
- * @since v0.1.92
67
- * @param encoding The `encoding` of the return value.
68
- */
69
-
70
- digest(encoding) {
71
- const result = this.internalHash.digest();
72
- if (encoding && encoding !== 'buffer') {
73
- return _reactNativeBuffer.Buffer.from(result).toString(encoding);
74
- }
75
- return _reactNativeBuffer.Buffer.from(result);
76
- }
77
- }
78
-
79
- // Implementation for WebCrypto subtle.digest()
80
-
81
- const asyncDigest = async (algorithm, data) => {
82
- (0, _Utils.validateMaxBufferLength)(data, 'data');
83
- switch (algorithm.name) {
84
- case 'SHA-1':
85
- // Fall through
86
- case 'SHA-256':
87
- // Fall through
88
- case 'SHA-384':
89
- // Fall through
90
- case 'SHA-512':
91
- const normalizedHashName = (0, _Utils.normalizeHashName)(algorithm.name);
92
- const hash = new Hash(normalizedHashName);
93
- hash.update((0, _Utils.bufferLikeToArrayBuffer)(data));
94
- return hash.digest();
95
- }
96
- throw (0, _Utils.lazyDOMException)(`Unrecognized algorithm name: ${algorithm.name}`, 'NotSupportedError');
97
- };
98
- exports.asyncDigest = asyncDigest;
99
- //# sourceMappingURL=Hash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_NativeQuickCrypto","require","_Utils","_readableStream","_interopRequireDefault","_reactNativeBuffer","obj","__esModule","default","global","process","nextTick","setImmediate","createInternalHash","NativeQuickCrypto","createHash","algorithm","options","Hash","Stream","Transform","constructor","arg","undefined","internalHash","copy","outputLength","update","data","inputEncoding","ArrayBuffer","buffer","Buffer","from","toArrayBuffer","_transform","chunk","encoding","callback","_flush","push","digest","result","toString","asyncDigest","validateMaxBufferLength","name","normalizedHashName","normalizeHashName","hash","bufferLikeToArrayBuffer","lazyDOMException","exports"],"sourceRoot":"../../src","sources":["Hash.ts"],"mappings":"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","ignoreList":[]}