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