react-native-quick-crypto 0.7.11 → 1.0.0-beta.10

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