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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/QuickCrypto.podspec +34 -0
  2. package/README.md +13 -46
  3. package/android/CMakeLists.txt +32 -64
  4. package/android/build.gradle +52 -125
  5. package/android/gradle.properties +4 -4
  6. package/android/src/main/cpp/cpp-adapter.cpp +9 -54
  7. package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +38 -0
  8. package/cpp/random/HybridRandom.cpp +34 -0
  9. package/cpp/random/HybridRandom.hpp +44 -0
  10. package/cpp/utils/Utils.hpp +9 -0
  11. package/ios/QuickCryptoOnLoad.mm +19 -0
  12. package/lib/commonjs/index.js +39 -39
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/commonjs/random.js +26 -12
  15. package/lib/commonjs/random.js.map +1 -1
  16. package/lib/commonjs/{NativeQuickCrypto/rsa.js → specs/random.nitro.js} +1 -1
  17. package/lib/commonjs/{NativeQuickCrypto/aes.js.map → specs/random.nitro.js.map} +1 -1
  18. package/lib/commonjs/utils/conversion.js +22 -0
  19. package/lib/commonjs/utils/conversion.js.map +1 -0
  20. package/lib/commonjs/utils/index.js +12 -0
  21. package/lib/commonjs/utils/index.js.map +1 -0
  22. package/lib/commonjs/utils/types.js +2 -0
  23. package/lib/{module/NativeQuickCrypto/aes.js.map → commonjs/utils/types.js.map} +1 -1
  24. package/lib/module/index.js +38 -38
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/module/random.js +26 -12
  27. package/lib/module/random.js.map +1 -1
  28. package/lib/module/specs/random.nitro.js +4 -0
  29. package/lib/module/{NativeQuickCrypto/rsa.js.map → specs/random.nitro.js.map} +1 -1
  30. package/lib/module/utils/conversion.js +16 -0
  31. package/lib/module/utils/conversion.js.map +1 -0
  32. package/lib/module/utils/index.js +8 -0
  33. package/lib/module/utils/index.js.map +1 -0
  34. package/lib/module/utils/types.js +2 -0
  35. package/lib/{commonjs/NativeQuickCrypto/rsa.js.map → module/utils/types.js.map} +1 -1
  36. package/lib/tsconfig.tsbuildinfo +1 -0
  37. package/lib/typescript/index.d.ts +10 -141
  38. package/lib/typescript/index.d.ts.map +1 -1
  39. package/lib/typescript/random.d.ts +4 -5
  40. package/lib/typescript/random.d.ts.map +1 -1
  41. package/lib/typescript/specs/random.nitro.d.ts +9 -0
  42. package/lib/typescript/specs/random.nitro.d.ts.map +1 -0
  43. package/lib/typescript/utils/conversion.d.ts +4 -0
  44. package/lib/typescript/utils/conversion.d.ts.map +1 -0
  45. package/lib/typescript/utils/index.d.ts +6 -0
  46. package/lib/typescript/utils/index.d.ts.map +1 -0
  47. package/lib/typescript/utils/types.d.ts +5 -0
  48. package/lib/typescript/utils/types.d.ts.map +1 -0
  49. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +45 -0
  50. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +26 -0
  51. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +57 -0
  52. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +9 -0
  53. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +25 -0
  54. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +29 -0
  55. package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +23 -0
  56. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +62 -0
  57. package/package.json +50 -106
  58. package/src/index.ts +38 -48
  59. package/src/random.ts +51 -48
  60. package/src/specs/random.nitro.ts +14 -0
  61. package/src/utils/conversion.ts +16 -0
  62. package/src/utils/index.ts +6 -0
  63. package/src/utils/types.ts +15 -0
  64. package/LICENSE +0 -27
  65. package/android/src/main/java/com/margelo/quickcrypto/QuickCryptoModule.java +0 -70
  66. package/android/src/main/java/com/margelo/quickcrypto/QuickCryptoPackage.java +0 -25
  67. package/cpp/Cipher/MGLCipherHostObject.cpp +0 -663
  68. package/cpp/Cipher/MGLCipherHostObject.h +0 -90
  69. package/cpp/Cipher/MGLCreateCipherInstaller.cpp +0 -75
  70. package/cpp/Cipher/MGLCreateCipherInstaller.h +0 -22
  71. package/cpp/Cipher/MGLCreateDecipherInstaller.cpp +0 -77
  72. package/cpp/Cipher/MGLCreateDecipherInstaller.h +0 -17
  73. package/cpp/Cipher/MGLGenerateKeyPairInstaller.cpp +0 -134
  74. package/cpp/Cipher/MGLGenerateKeyPairInstaller.h +0 -35
  75. package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.cpp +0 -63
  76. package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.h +0 -37
  77. package/cpp/Cipher/MGLPublicCipher.h +0 -124
  78. package/cpp/Cipher/MGLPublicCipherInstaller.h +0 -107
  79. package/cpp/Cipher/MGLRsa.cpp +0 -573
  80. package/cpp/Cipher/MGLRsa.h +0 -109
  81. package/cpp/HMAC/MGLHmacHostObject.cpp +0 -95
  82. package/cpp/HMAC/MGLHmacHostObject.h +0 -39
  83. package/cpp/HMAC/MGLHmacInstaller.cpp +0 -43
  84. package/cpp/HMAC/MGLHmacInstaller.h +0 -20
  85. package/cpp/Hash/MGLHashHostObject.cpp +0 -147
  86. package/cpp/Hash/MGLHashHostObject.h +0 -53
  87. package/cpp/Hash/MGLHashInstaller.cpp +0 -44
  88. package/cpp/Hash/MGLHashInstaller.h +0 -20
  89. package/cpp/JSIUtils/MGLJSIMacros.h +0 -110
  90. package/cpp/JSIUtils/MGLJSIUtils.h +0 -41
  91. package/cpp/JSIUtils/MGLSmartHostObject.cpp +0 -43
  92. package/cpp/JSIUtils/MGLSmartHostObject.h +0 -46
  93. package/cpp/JSIUtils/MGLThreadAwareHostObject.cpp +0 -24
  94. package/cpp/JSIUtils/MGLThreadAwareHostObject.h +0 -43
  95. package/cpp/JSIUtils/MGLTypedArray.cpp +0 -325
  96. package/cpp/JSIUtils/MGLTypedArray.h +0 -160
  97. package/cpp/MGLKeys.cpp +0 -1426
  98. package/cpp/MGLKeys.h +0 -203
  99. package/cpp/MGLQuickCryptoHostObject.cpp +0 -127
  100. package/cpp/MGLQuickCryptoHostObject.h +0 -30
  101. package/cpp/Random/MGLRandomHostObject.cpp +0 -96
  102. package/cpp/Random/MGLRandomHostObject.h +0 -27
  103. package/cpp/Sig/MGLSignHostObjects.cpp +0 -757
  104. package/cpp/Sig/MGLSignHostObjects.h +0 -128
  105. package/cpp/Sig/MGLSignInstaller.cpp +0 -24
  106. package/cpp/Sig/MGLSignInstaller.h +0 -29
  107. package/cpp/Sig/MGLVerifyInstaller.cpp +0 -24
  108. package/cpp/Sig/MGLVerifyInstaller.h +0 -22
  109. package/cpp/Utils/MGLDispatchQueue.cpp +0 -75
  110. package/cpp/Utils/MGLDispatchQueue.h +0 -55
  111. package/cpp/Utils/MGLUtils.cpp +0 -295
  112. package/cpp/Utils/MGLUtils.h +0 -358
  113. package/cpp/Utils/base64.h +0 -320
  114. package/cpp/Utils/logs.h +0 -38
  115. package/cpp/Utils/node.h +0 -13
  116. package/cpp/fastpbkdf2/MGLPbkdf2HostObject.cpp +0 -164
  117. package/cpp/fastpbkdf2/MGLPbkdf2HostObject.h +0 -29
  118. package/cpp/fastpbkdf2/fastpbkdf2.c +0 -352
  119. package/cpp/fastpbkdf2/fastpbkdf2.h +0 -68
  120. package/cpp/webcrypto/MGLWebCrypto.cpp +0 -125
  121. package/cpp/webcrypto/MGLWebCrypto.h +0 -32
  122. package/cpp/webcrypto/crypto_aes.cpp +0 -516
  123. package/cpp/webcrypto/crypto_aes.h +0 -79
  124. package/cpp/webcrypto/crypto_ec.cpp +0 -424
  125. package/cpp/webcrypto/crypto_ec.h +0 -78
  126. package/cpp/webcrypto/crypto_keygen.cpp +0 -86
  127. package/cpp/webcrypto/crypto_keygen.h +0 -38
  128. package/ios/QuickCrypto.xcodeproj/project.pbxproj +0 -274
  129. package/ios/QuickCryptoModule.h +0 -5
  130. package/ios/QuickCryptoModule.mm +0 -42
  131. package/lib/commonjs/Cipher.js +0 -502
  132. package/lib/commonjs/Cipher.js.map +0 -1
  133. package/lib/commonjs/Hash.js +0 -99
  134. package/lib/commonjs/Hash.js.map +0 -1
  135. package/lib/commonjs/Hashnames.js +0 -87
  136. package/lib/commonjs/Hashnames.js.map +0 -1
  137. package/lib/commonjs/Hmac.js +0 -79
  138. package/lib/commonjs/Hmac.js.map +0 -1
  139. package/lib/commonjs/NativeQuickCrypto/Cipher.js +0 -30
  140. package/lib/commonjs/NativeQuickCrypto/Cipher.js.map +0 -1
  141. package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js +0 -52
  142. package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js.map +0 -1
  143. package/lib/commonjs/NativeQuickCrypto/aes.js +0 -6
  144. package/lib/commonjs/NativeQuickCrypto/hash.js +0 -2
  145. package/lib/commonjs/NativeQuickCrypto/hash.js.map +0 -1
  146. package/lib/commonjs/NativeQuickCrypto/hmac.js +0 -2
  147. package/lib/commonjs/NativeQuickCrypto/hmac.js.map +0 -1
  148. package/lib/commonjs/NativeQuickCrypto/keygen.js +0 -6
  149. package/lib/commonjs/NativeQuickCrypto/keygen.js.map +0 -1
  150. package/lib/commonjs/NativeQuickCrypto/pbkdf2.js +0 -2
  151. package/lib/commonjs/NativeQuickCrypto/pbkdf2.js.map +0 -1
  152. package/lib/commonjs/NativeQuickCrypto/random.js +0 -2
  153. package/lib/commonjs/NativeQuickCrypto/random.js.map +0 -1
  154. package/lib/commonjs/NativeQuickCrypto/sig.js +0 -19
  155. package/lib/commonjs/NativeQuickCrypto/sig.js.map +0 -1
  156. package/lib/commonjs/NativeQuickCrypto/webcrypto.js +0 -6
  157. package/lib/commonjs/NativeQuickCrypto/webcrypto.js.map +0 -1
  158. package/lib/commonjs/Utils.js +0 -608
  159. package/lib/commonjs/Utils.js.map +0 -1
  160. package/lib/commonjs/aes.js +0 -281
  161. package/lib/commonjs/aes.js.map +0 -1
  162. package/lib/commonjs/constants.js +0 -85
  163. package/lib/commonjs/constants.js.map +0 -1
  164. package/lib/commonjs/ec.js +0 -276
  165. package/lib/commonjs/ec.js.map +0 -1
  166. package/lib/commonjs/keygen.js +0 -56
  167. package/lib/commonjs/keygen.js.map +0 -1
  168. package/lib/commonjs/keys.js +0 -492
  169. package/lib/commonjs/keys.js.map +0 -1
  170. package/lib/commonjs/pbkdf2.js +0 -90
  171. package/lib/commonjs/pbkdf2.js.map +0 -1
  172. package/lib/commonjs/rsa.js +0 -248
  173. package/lib/commonjs/rsa.js.map +0 -1
  174. package/lib/commonjs/sig.js +0 -129
  175. package/lib/commonjs/sig.js.map +0 -1
  176. package/lib/commonjs/subtle.js +0 -448
  177. package/lib/commonjs/subtle.js.map +0 -1
  178. package/lib/commonjs/webcrypto.js +0 -14
  179. package/lib/commonjs/webcrypto.js.map +0 -1
  180. package/lib/module/Cipher.js +0 -491
  181. package/lib/module/Cipher.js.map +0 -1
  182. package/lib/module/Hash.js +0 -93
  183. package/lib/module/Hash.js.map +0 -1
  184. package/lib/module/Hashnames.js +0 -85
  185. package/lib/module/Hashnames.js.map +0 -1
  186. package/lib/module/Hmac.js +0 -74
  187. package/lib/module/Hmac.js.map +0 -1
  188. package/lib/module/NativeQuickCrypto/Cipher.js +0 -26
  189. package/lib/module/NativeQuickCrypto/Cipher.js.map +0 -1
  190. package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js +0 -49
  191. package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js.map +0 -1
  192. package/lib/module/NativeQuickCrypto/aes.js +0 -4
  193. package/lib/module/NativeQuickCrypto/hash.js +0 -2
  194. package/lib/module/NativeQuickCrypto/hash.js.map +0 -1
  195. package/lib/module/NativeQuickCrypto/hmac.js +0 -2
  196. package/lib/module/NativeQuickCrypto/hmac.js.map +0 -1
  197. package/lib/module/NativeQuickCrypto/keygen.js +0 -4
  198. package/lib/module/NativeQuickCrypto/keygen.js.map +0 -1
  199. package/lib/module/NativeQuickCrypto/pbkdf2.js +0 -2
  200. package/lib/module/NativeQuickCrypto/pbkdf2.js.map +0 -1
  201. package/lib/module/NativeQuickCrypto/random.js +0 -2
  202. package/lib/module/NativeQuickCrypto/random.js.map +0 -1
  203. package/lib/module/NativeQuickCrypto/rsa.js +0 -4
  204. package/lib/module/NativeQuickCrypto/sig.js +0 -17
  205. package/lib/module/NativeQuickCrypto/sig.js.map +0 -1
  206. package/lib/module/NativeQuickCrypto/webcrypto.js +0 -4
  207. package/lib/module/NativeQuickCrypto/webcrypto.js.map +0 -1
  208. package/lib/module/Utils.js +0 -539
  209. package/lib/module/Utils.js.map +0 -1
  210. package/lib/module/aes.js +0 -274
  211. package/lib/module/aes.js.map +0 -1
  212. package/lib/module/constants.js +0 -81
  213. package/lib/module/constants.js.map +0 -1
  214. package/lib/module/ec.js +0 -267
  215. package/lib/module/ec.js.map +0 -1
  216. package/lib/module/keygen.js +0 -49
  217. package/lib/module/keygen.js.map +0 -1
  218. package/lib/module/keys.js +0 -477
  219. package/lib/module/keys.js.map +0 -1
  220. package/lib/module/pbkdf2.js +0 -84
  221. package/lib/module/pbkdf2.js.map +0 -1
  222. package/lib/module/rsa.js +0 -242
  223. package/lib/module/rsa.js.map +0 -1
  224. package/lib/module/sig.js +0 -124
  225. package/lib/module/sig.js.map +0 -1
  226. package/lib/module/subtle.js +0 -443
  227. package/lib/module/subtle.js.map +0 -1
  228. package/lib/module/webcrypto.js +0 -10
  229. package/lib/module/webcrypto.js.map +0 -1
  230. package/lib/typescript/Cipher.d.ts +0 -81
  231. package/lib/typescript/Cipher.d.ts.map +0 -1
  232. package/lib/typescript/Hash.d.ts +0 -44
  233. package/lib/typescript/Hash.d.ts.map +0 -1
  234. package/lib/typescript/Hashnames.d.ts +0 -11
  235. package/lib/typescript/Hashnames.d.ts.map +0 -1
  236. package/lib/typescript/Hmac.d.ts +0 -37
  237. package/lib/typescript/Hmac.d.ts.map +0 -1
  238. package/lib/typescript/NativeQuickCrypto/Cipher.d.ts +0 -44
  239. package/lib/typescript/NativeQuickCrypto/Cipher.d.ts.map +0 -1
  240. package/lib/typescript/NativeQuickCrypto/NativeQuickCrypto.d.ts +0 -33
  241. package/lib/typescript/NativeQuickCrypto/NativeQuickCrypto.d.ts.map +0 -1
  242. package/lib/typescript/NativeQuickCrypto/aes.d.ts +0 -5
  243. package/lib/typescript/NativeQuickCrypto/aes.d.ts.map +0 -1
  244. package/lib/typescript/NativeQuickCrypto/hash.d.ts +0 -7
  245. package/lib/typescript/NativeQuickCrypto/hash.d.ts.map +0 -1
  246. package/lib/typescript/NativeQuickCrypto/hmac.d.ts +0 -6
  247. package/lib/typescript/NativeQuickCrypto/hmac.d.ts.map +0 -1
  248. package/lib/typescript/NativeQuickCrypto/keygen.d.ts +0 -4
  249. package/lib/typescript/NativeQuickCrypto/keygen.d.ts.map +0 -1
  250. package/lib/typescript/NativeQuickCrypto/pbkdf2.d.ts +0 -5
  251. package/lib/typescript/NativeQuickCrypto/pbkdf2.d.ts.map +0 -1
  252. package/lib/typescript/NativeQuickCrypto/random.d.ts +0 -5
  253. package/lib/typescript/NativeQuickCrypto/random.d.ts.map +0 -1
  254. package/lib/typescript/NativeQuickCrypto/rsa.d.ts +0 -5
  255. package/lib/typescript/NativeQuickCrypto/rsa.d.ts.map +0 -1
  256. package/lib/typescript/NativeQuickCrypto/sig.d.ts +0 -23
  257. package/lib/typescript/NativeQuickCrypto/sig.d.ts.map +0 -1
  258. package/lib/typescript/NativeQuickCrypto/webcrypto.d.ts +0 -39
  259. package/lib/typescript/NativeQuickCrypto/webcrypto.d.ts.map +0 -1
  260. package/lib/typescript/Utils.d.ts +0 -48
  261. package/lib/typescript/Utils.d.ts.map +0 -1
  262. package/lib/typescript/aes.d.ts +0 -22
  263. package/lib/typescript/aes.d.ts.map +0 -1
  264. package/lib/typescript/constants.d.ts +0 -76
  265. package/lib/typescript/constants.d.ts.map +0 -1
  266. package/lib/typescript/ec.d.ts +0 -7
  267. package/lib/typescript/ec.d.ts.map +0 -1
  268. package/lib/typescript/keygen.d.ts +0 -6
  269. package/lib/typescript/keygen.d.ts.map +0 -1
  270. package/lib/typescript/keys.d.ts +0 -206
  271. package/lib/typescript/keys.d.ts.map +0 -1
  272. package/lib/typescript/pbkdf2.d.ts +0 -12
  273. package/lib/typescript/pbkdf2.d.ts.map +0 -1
  274. package/lib/typescript/rsa.d.ts +0 -12
  275. package/lib/typescript/rsa.d.ts.map +0 -1
  276. package/lib/typescript/sig.d.ts +0 -21
  277. package/lib/typescript/sig.d.ts.map +0 -1
  278. package/lib/typescript/subtle.d.ts +0 -15
  279. package/lib/typescript/subtle.d.ts.map +0 -1
  280. package/lib/typescript/webcrypto.d.ts +0 -9
  281. package/lib/typescript/webcrypto.d.ts.map +0 -1
  282. package/react-native-quick-crypto.podspec +0 -40
  283. package/src/Cipher.ts +0 -832
  284. package/src/Hash.ts +0 -132
  285. package/src/Hashnames.ts +0 -93
  286. package/src/Hmac.ts +0 -106
  287. package/src/NativeQuickCrypto/Cipher.ts +0 -102
  288. package/src/NativeQuickCrypto/NativeQuickCrypto.ts +0 -102
  289. package/src/NativeQuickCrypto/aes.ts +0 -14
  290. package/src/NativeQuickCrypto/hash.ts +0 -10
  291. package/src/NativeQuickCrypto/hmac.ts +0 -9
  292. package/src/NativeQuickCrypto/keygen.ts +0 -7
  293. package/src/NativeQuickCrypto/pbkdf2.ts +0 -16
  294. package/src/NativeQuickCrypto/random.ts +0 -12
  295. package/src/NativeQuickCrypto/rsa.ts +0 -12
  296. package/src/NativeQuickCrypto/sig.ts +0 -44
  297. package/src/NativeQuickCrypto/webcrypto.ts +0 -72
  298. package/src/Utils.ts +0 -777
  299. package/src/aes.ts +0 -402
  300. package/src/constants.ts +0 -79
  301. package/src/ec.ts +0 -375
  302. package/src/keygen.ts +0 -80
  303. package/src/keys.ts +0 -787
  304. package/src/pbkdf2.ts +0 -169
  305. package/src/rsa.ts +0 -370
  306. package/src/sig.ts +0 -164
  307. package/src/subtle.ts +0 -639
  308. package/src/webcrypto.ts +0 -8
  309. /package/android/src/main/{AndroidManifestNew.xml → AndroidManifest.xml} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["_Cipher","require","_NativeQuickCrypto","_sig","_Utils","_keys","verifyAcceptableEcKeyUse","name","isPublic","usages","checkSet","lazyDOMException","hasAnyNotIn","createECPublicKeyRaw","namedCurve","keyData","Error","handle","NativeQuickCrypto","webcrypto","createKeyObjectHandle","initECRaw","kNamedCurveAliases","console","log","ab2str","PublicKeyObject","ecExportKey","key","format","keyObject","ecImportKey","algorithm","extractable","keyUsages","data","kty","crv","d","undefined","length","use","checkUse","validateKeyOps","key_ops","ext","alg","algNamedCurve","type","initJwk","KeyType","Private","PrivateKeyObject","buffer","binaryLikeToArrayBuffer","bufferLikeToArrayBuffer","asymmetricKeyType","CryptoKey","ecdsaSignVerify","hash","signature","mode","SignMode","kSignJobModeSign","kSignJobModeVerify","hashname","normalizeHashName","signVerify","DSASigEnc","kSigEncP1363","ArrayBuffer","exports","ecGenerateKey","Object","keys","includes","checkUsages","options","err","keypair","generateKeyPairPromise","cause","publicUsages","privateUsages","getUsagesUnion","keyAlgorithm","pub","publicKey","priv","privateKey"],"sourceRoot":"../../src","sources":["ec.ts"],"mappings":"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","ignoreList":[]}
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.generateKeySync = exports.generateKeyPromise = exports.generateKey = void 0;
7
- var _NativeQuickCrypto = require("./NativeQuickCrypto/NativeQuickCrypto");
8
- var _Utils = require("./Utils");
9
- var _aes = require("./aes");
10
- var _keys = require("./keys");
11
- const generateKeyPromise = (type, options) => {
12
- return new Promise((resolve, reject) => {
13
- generateKey(type, options, (err, key) => {
14
- if (err) {
15
- reject([err, undefined]);
16
- }
17
- resolve([undefined, key]);
18
- });
19
- });
20
- };
21
- exports.generateKeyPromise = generateKeyPromise;
22
- const generateKey = (type, options, callback) => {
23
- validateLength(type, options.length);
24
- if (!(0, _Utils.validateFunction)(callback)) {
25
- throw (0, _Utils.lazyDOMException)('Callback is not a function', 'SyntaxError');
26
- }
27
- _NativeQuickCrypto.NativeQuickCrypto.webcrypto.generateSecretKey(options.length).then(handle => {
28
- callback(undefined, new _keys.SecretKeyObject(handle));
29
- }).catch(err => {
30
- callback(err, undefined);
31
- });
32
- };
33
- exports.generateKey = generateKey;
34
- const generateKeySync = (type, options) => {
35
- validateLength(type, options.length);
36
- const handle = _NativeQuickCrypto.NativeQuickCrypto.webcrypto.generateSecretKeySync(options.length);
37
- return new _keys.SecretKeyObject(handle);
38
- };
39
- exports.generateKeySync = generateKeySync;
40
- const validateLength = (type, length) => {
41
- switch (type) {
42
- case 'aes':
43
- if (!_aes.kAesKeyLengths.includes(length)) {
44
- throw (0, _Utils.lazyDOMException)('AES key length must be 128, 192, or 256 bits', 'OperationError');
45
- }
46
- break;
47
- case 'hmac':
48
- if (length < 8 || length > 2 ** 31 - 1) {
49
- throw (0, _Utils.lazyDOMException)('HMAC key length must be between 8 and 2^31 - 1', 'OperationError');
50
- }
51
- break;
52
- default:
53
- throw new Error(`Unsupported key type '${type}' for generateKey()`);
54
- }
55
- };
56
- //# sourceMappingURL=keygen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_NativeQuickCrypto","require","_Utils","_aes","_keys","generateKeyPromise","type","options","Promise","resolve","reject","generateKey","err","key","undefined","exports","callback","validateLength","length","validateFunction","lazyDOMException","NativeQuickCrypto","webcrypto","generateSecretKey","then","handle","SecretKeyObject","catch","generateKeySync","generateSecretKeySync","kAesKeyLengths","includes","Error"],"sourceRoot":"../../src","sources":["keygen.ts"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAWO,MAAMI,kBAAkB,GAAGA,CAChCC,IAAmB,EACnBC,OAAwB,KACsC;EAC9D,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCC,WAAW,CAACL,IAAI,EAAEC,OAAO,EAAE,CAACK,GAAG,EAAEC,GAAG,KAAK;MACvC,IAAID,GAAG,EAAE;QACPF,MAAM,CAAC,CAACE,GAAG,EAAEE,SAAS,CAAC,CAAC;MAC1B;MACAL,OAAO,CAAC,CAACK,SAAS,EAAED,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAACE,OAAA,CAAAV,kBAAA,GAAAA,kBAAA;AAEK,MAAMM,WAAW,GAAGA,CACzBL,IAAmB,EACnBC,OAAwB,EACxBS,QAAwB,KACf;EACTC,cAAc,CAACX,IAAI,EAAEC,OAAO,CAACW,MAAM,CAAC;EACpC,IAAI,CAAC,IAAAC,uBAAgB,EAACH,QAAQ,CAAC,EAAE;IAC/B,MAAM,IAAAI,uBAAgB,EAAC,4BAA4B,EAAE,aAAa,CAAC;EACrE;EACAC,oCAAiB,CAACC,SAAS,CACxBC,iBAAiB,CAAChB,OAAO,CAACW,MAAM,CAAC,CACjCM,IAAI,CAAEC,MAAM,IAAK;IAChBT,QAAQ,CAACF,SAAS,EAAE,IAAIY,qBAAe,CAACD,MAAM,CAAC,CAAC;EAClD,CAAC,CAAC,CACDE,KAAK,CAAEf,GAAG,IAAK;IACdI,QAAQ,CAACJ,GAAG,EAAEE,SAAS,CAAC;EAC1B,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAJ,WAAA,GAAAA,WAAA;AAEK,MAAMiB,eAAe,GAAGA,CAC7BtB,IAAmB,EACnBC,OAAwB,KACJ;EACpBU,cAAc,CAACX,IAAI,EAAEC,OAAO,CAACW,MAAM,CAAC;EACpC,MAAMO,MAAM,GAAGJ,oCAAiB,CAACC,SAAS,CAACO,qBAAqB,CAC9DtB,OAAO,CAACW,MACV,CAAC;EACD,OAAO,IAAIQ,qBAAe,CAACD,MAAM,CAAC;AACpC,CAAC;AAACV,OAAA,CAAAa,eAAA,GAAAA,eAAA;AAEF,MAAMX,cAAc,GAAGA,CAACX,IAAmB,EAAEY,MAAc,KAAK;EAC9D,QAAQZ,IAAI;IACV,KAAK,KAAK;MACR,IAAI,CAACwB,mBAAc,CAACC,QAAQ,CAACb,MAAM,CAAC,EAAE;QACpC,MAAM,IAAAE,uBAAgB,EACpB,8CAA8C,EAC9C,gBACF,CAAC;MACH;MACA;IACF,KAAK,MAAM;MACT,IAAIF,MAAM,GAAG,CAAC,IAAIA,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QACtC,MAAM,IAAAE,uBAAgB,EACpB,gDAAgD,EAChD,gBACF,CAAC;MACH;MACA;IACF;MACE,MAAM,IAAIY,KAAK,CAAE,yBAAwB1B,IAAK,qBAAoB,CAAC;EACvE;AACF,CAAC","ignoreList":[]}
@@ -1,492 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createPrivateKey = exports.WebCryptoKeyExportStatus = exports.SecretKeyObject = exports.PublicKeyObject = exports.PrivateKeyObject = exports.KeyType = exports.KeyEncoding = exports.KWebCryptoKeyFormat = exports.KFormatType = exports.CryptoKey = exports.CipherOrWrapMode = void 0;
7
- exports.createPublicKey = createPublicKey;
8
- exports.createSecretKey = createSecretKey;
9
- exports.kNamedCurveAliases = exports.isCryptoKey = void 0;
10
- exports.parsePrivateKeyEncoding = parsePrivateKeyEncoding;
11
- exports.parsePublicKeyEncoding = parsePublicKeyEncoding;
12
- exports.preparePrivateKey = preparePrivateKey;
13
- exports.preparePublicOrPrivateKey = preparePublicOrPrivateKey;
14
- var _Utils = require("./Utils");
15
- var _NativeQuickCrypto = require("./NativeQuickCrypto/NativeQuickCrypto");
16
- const kNamedCurveAliases = exports.kNamedCurveAliases = {
17
- 'P-256': 'prime256v1',
18
- 'P-384': 'secp384r1',
19
- 'P-521': 'secp521r1'
20
- };
21
- // On node this value is defined on the native side, for now I'm just creating it here in JS
22
- // TODO(osp) move this into native side to make sure they always match
23
- let KFormatType = exports.KFormatType = /*#__PURE__*/function (KFormatType) {
24
- KFormatType[KFormatType["kKeyFormatDER"] = 0] = "kKeyFormatDER";
25
- KFormatType[KFormatType["kKeyFormatPEM"] = 1] = "kKeyFormatPEM";
26
- KFormatType[KFormatType["kKeyFormatJWK"] = 2] = "kKeyFormatJWK";
27
- return KFormatType;
28
- }({});
29
- // Same as KFormatType, this enum needs to be defined on the native side
30
- let KeyType = exports.KeyType = /*#__PURE__*/function (KeyType) {
31
- KeyType[KeyType["Secret"] = 0] = "Secret";
32
- KeyType[KeyType["Public"] = 1] = "Public";
33
- KeyType[KeyType["Private"] = 2] = "Private";
34
- return KeyType;
35
- }({});
36
- // Same as KFormatType, this enum needs to be defined on the native side
37
- let KWebCryptoKeyFormat = exports.KWebCryptoKeyFormat = /*#__PURE__*/function (KWebCryptoKeyFormat) {
38
- KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatRaw"] = 0] = "kWebCryptoKeyFormatRaw";
39
- KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatPKCS8"] = 1] = "kWebCryptoKeyFormatPKCS8";
40
- KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatSPKI"] = 2] = "kWebCryptoKeyFormatSPKI";
41
- KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatJWK"] = 3] = "kWebCryptoKeyFormatJWK";
42
- return KWebCryptoKeyFormat;
43
- }({});
44
- let WebCryptoKeyExportStatus = exports.WebCryptoKeyExportStatus = /*#__PURE__*/function (WebCryptoKeyExportStatus) {
45
- WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["OK"] = 0] = "OK";
46
- WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["INVALID_KEY_TYPE"] = 1] = "INVALID_KEY_TYPE";
47
- WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["FAILED"] = 2] = "FAILED";
48
- return WebCryptoKeyExportStatus;
49
- }({});
50
- var KeyInputContext = /*#__PURE__*/function (KeyInputContext) {
51
- KeyInputContext[KeyInputContext["kConsumePublic"] = 0] = "kConsumePublic";
52
- KeyInputContext[KeyInputContext["kConsumePrivate"] = 1] = "kConsumePrivate";
53
- KeyInputContext[KeyInputContext["kCreatePublic"] = 2] = "kCreatePublic";
54
- KeyInputContext[KeyInputContext["kCreatePrivate"] = 3] = "kCreatePrivate";
55
- return KeyInputContext;
56
- }(KeyInputContext || {});
57
- let KeyEncoding = exports.KeyEncoding = /*#__PURE__*/function (KeyEncoding) {
58
- KeyEncoding[KeyEncoding["kKeyEncodingPKCS1"] = 0] = "kKeyEncodingPKCS1";
59
- KeyEncoding[KeyEncoding["kKeyEncodingPKCS8"] = 1] = "kKeyEncodingPKCS8";
60
- KeyEncoding[KeyEncoding["kKeyEncodingSPKI"] = 2] = "kKeyEncodingSPKI";
61
- KeyEncoding[KeyEncoding["kKeyEncodingSEC1"] = 3] = "kKeyEncodingSEC1";
62
- return KeyEncoding;
63
- }({});
64
- const encodingNames = {
65
- [KeyEncoding.kKeyEncodingPKCS1]: 'pkcs1',
66
- [KeyEncoding.kKeyEncodingPKCS8]: 'pkcs8',
67
- [KeyEncoding.kKeyEncodingSPKI]: 'spki',
68
- [KeyEncoding.kKeyEncodingSEC1]: 'sec1'
69
- };
70
- let CipherOrWrapMode = exports.CipherOrWrapMode = /*#__PURE__*/function (CipherOrWrapMode) {
71
- CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherEncrypt"] = 0] = "kWebCryptoCipherEncrypt";
72
- CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherDecrypt"] = 1] = "kWebCryptoCipherDecrypt";
73
- return CipherOrWrapMode;
74
- }({}); // kWebCryptoWrapKey,
75
- // kWebCryptoUnwrapKey,
76
- function option(name, objName) {
77
- return objName === undefined ? `options.${name}` : `options.${objName}.${name}`;
78
- }
79
- function parseKeyFormat(formatStr, defaultFormat, optionName) {
80
- 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;
81
- throw new Error(`Invalid key format str: ${optionName}`);
82
- // throw new ERR_INVALID_ARG_VALUE(optionName, formatStr);
83
- }
84
- function parseKeyType(typeStr, required, keyType, isPublic, optionName) {
85
- if (typeStr === undefined && !required) {
86
- return undefined;
87
- } else if (typeStr === 'pkcs1') {
88
- if (keyType !== undefined && keyType !== 'rsa') {
89
- throw new Error(`Crypto incompatible key options: ${typeStr} can only be used for RSA keys`);
90
- }
91
- return KeyEncoding.kKeyEncodingPKCS1;
92
- } else if (typeStr === 'spki' && isPublic !== false) {
93
- return KeyEncoding.kKeyEncodingSPKI;
94
- } else if (typeStr === 'pkcs8' && isPublic !== true) {
95
- return KeyEncoding.kKeyEncodingPKCS8;
96
- } else if (typeStr === 'sec1' && isPublic !== true) {
97
- if (keyType !== undefined && keyType !== 'ec') {
98
- throw new Error(`Incompatible key options ${typeStr} can only be used for EC keys`);
99
- }
100
- return KeyEncoding.kKeyEncodingSEC1;
101
- }
102
- throw new Error(`Invalid option ${optionName} - ${typeStr}`);
103
- }
104
- function parseKeyFormatAndType(enc, keyType, isPublic, objName) {
105
- const {
106
- format: formatStr,
107
- type: typeStr
108
- } = enc;
109
- const isInput = keyType === undefined;
110
- const format = parseKeyFormat(formatStr, isInput ? KFormatType.kKeyFormatPEM : undefined, option('format', objName));
111
- const isRequired = (!isInput || format === KFormatType.kKeyFormatDER) && format !== KFormatType.kKeyFormatJWK;
112
- const type = parseKeyType(typeStr, isRequired, keyType, isPublic, option('type', objName));
113
- return {
114
- format,
115
- type
116
- };
117
- }
118
- function parseKeyEncoding(enc, keyType, isPublic, objName) {
119
- // validateObject(enc, 'options');
120
-
121
- const isInput = keyType === undefined;
122
- const {
123
- format,
124
- type
125
- } = parseKeyFormatAndType(enc, keyType, isPublic, objName);
126
- let cipher, passphrase, encoding;
127
- if (isPublic !== true) {
128
- ({
129
- cipher,
130
- passphrase,
131
- encoding
132
- } = enc);
133
- if (!isInput) {
134
- if (cipher != null) {
135
- if (typeof cipher !== 'string') throw new Error(`Invalid argument ${option('cipher', objName)}: ${cipher}`);
136
- if (format === KFormatType.kKeyFormatDER && (type === KeyEncoding.kKeyEncodingPKCS1 || type === KeyEncoding.kKeyEncodingSEC1)) {
137
- throw new Error(`Incompatible key options ${encodingNames[type]} does not support encryption`);
138
- }
139
- } else if (passphrase !== undefined) {
140
- throw new Error(`invalid argument ${option('cipher', objName)}: ${cipher}`);
141
- }
142
- }
143
- if (isInput && passphrase !== undefined && !(0, _Utils.isStringOrBuffer)(passphrase) || !isInput && cipher != null && !(0, _Utils.isStringOrBuffer)(passphrase)) {
144
- throw new Error(`Invalid argument value ${option('passphrase', objName)}: ${passphrase}`);
145
- }
146
- }
147
- if (passphrase !== undefined) passphrase = (0, _Utils.binaryLikeToArrayBuffer)(passphrase, encoding);
148
- return {
149
- format,
150
- type,
151
- cipher,
152
- passphrase
153
- };
154
- }
155
- function prepareAsymmetricKey(key, ctx) {
156
- // TODO(osp) check, KeyObject some node object
157
- // if (isKeyObject(key)) {
158
- // // Best case: A key object, as simple as that.
159
- // return { data: getKeyObjectHandle(key, ctx) };
160
- // } else
161
- // if (isCryptoKey(key)) {
162
- // return { data: getKeyObjectHandle(key[kKeyObject], ctx) };
163
- // } else
164
- if ((0, _Utils.isStringOrBuffer)(key)) {
165
- // Expect PEM by default, mostly for backward compatibility.
166
- return {
167
- format: KFormatType.kKeyFormatPEM,
168
- data: (0, _Utils.binaryLikeToArrayBuffer)(key)
169
- };
170
- } else if (typeof key === 'object') {
171
- const {
172
- key: data,
173
- encoding
174
- } = key;
175
- // // The 'key' property can be a KeyObject as well to allow specifying
176
- // // additional options such as padding along with the key.
177
- // if (isKeyObject(data)) {
178
- // return { data: getKeyObjectHandle(data, ctx) };
179
- // }
180
- // else if (isCryptoKey(data))
181
- // return { data: getKeyObjectHandle(data[kKeyObject], ctx) };
182
- // else if (isJwk(data) && format === 'jwk')
183
- // return { data: getKeyObjectHandleFromJwk(data, ctx), format: 'jwk' };
184
- // Either PEM or DER using PKCS#1 or SPKI.
185
- if (!(0, _Utils.isStringOrBuffer)(data)) {
186
- throw new Error('prepareAsymmetricKey: key is not a string or ArrayBuffer');
187
- }
188
- const isPublic = ctx === KeyInputContext.kConsumePrivate || ctx === KeyInputContext.kCreatePrivate ? false : undefined;
189
- return {
190
- data: (0, _Utils.binaryLikeToArrayBuffer)(data, encoding),
191
- ...parseKeyEncoding(key, undefined, isPublic)
192
- };
193
- }
194
- throw new Error('[prepareAsymetricKey] Invalid argument key: ${key}');
195
- }
196
-
197
- // TODO(osp) any here is a node KeyObject
198
- function preparePrivateKey(key) {
199
- return prepareAsymmetricKey(key, KeyInputContext.kConsumePrivate);
200
- }
201
-
202
- // TODO(osp) any here is a node KeyObject
203
- function preparePublicOrPrivateKey(key) {
204
- return prepareAsymmetricKey(key, KeyInputContext.kConsumePublic);
205
- }
206
-
207
- // Parses the public key encoding based on an object. keyType must be undefined
208
- // when this is used to parse an input encoding and must be a valid key type if
209
- // used to parse an output encoding.
210
- function parsePublicKeyEncoding(enc, keyType, objName) {
211
- return parseKeyEncoding(enc, keyType, keyType ? true : undefined, objName);
212
- }
213
-
214
- // Parses the private key encoding based on an object. keyType must be undefined
215
- // when this is used to parse an input encoding and must be a valid key type if
216
- // used to parse an output encoding.
217
- function parsePrivateKeyEncoding(enc, keyType, objName) {
218
- return parseKeyEncoding(enc, keyType, false, objName);
219
- }
220
-
221
- // function getKeyObjectHandle(key: any, ctx: KeyInputContext) {
222
- // if (ctx === KeyInputContext.kConsumePublic) {
223
- // throw new Error(
224
- // 'Invalid argument type for "key". Need ArrayBuffer, TypeArray, KeyObject, CryptoKey, string'
225
- // );
226
- // }
227
-
228
- // if (key.type !== 'private') {
229
- // if (
230
- // ctx === KeyInputContext.kConsumePrivate ||
231
- // ctx === KeyInputContext.kCreatePublic
232
- // )
233
- // throw new Error(`Invalid KeyObject type: ${key.type}, expected 'public'`);
234
- // if (key.type !== 'public') {
235
- // throw new Error(
236
- // `Invalid KeyObject type: ${key.type}, expected 'private' or 'public'`
237
- // );
238
- // }
239
- // }
240
-
241
- // return key.handle;
242
- // }
243
-
244
- function prepareSecretKey(key, encoding, bufferOnly = false) {
245
- try {
246
- if (!bufferOnly) {
247
- // TODO: maybe use `key.constructor.name === 'KeyObject'` ?
248
- if (key instanceof KeyObject) {
249
- if (key.type !== 'secret') throw new Error(`invalid KeyObject type: ${key.type}, expected 'secret'`);
250
- return key.handle;
251
- }
252
- // TODO: maybe use `key.constructor.name === 'CryptoKey'` ?
253
- else if (key instanceof CryptoKey) {
254
- if (key.type !== 'secret') throw new Error(`invalid CryptoKey type: ${key.type}, expected 'secret'`);
255
- return key.keyObject.handle;
256
- }
257
- }
258
- if (key instanceof ArrayBuffer) {
259
- return key;
260
- }
261
- return (0, _Utils.binaryLikeToArrayBuffer)(key, encoding);
262
- } catch (error) {
263
- throw new Error('Invalid argument type for "key". Need ArrayBuffer, TypedArray, KeyObject, CryptoKey, string', {
264
- cause: error
265
- });
266
- }
267
- }
268
- function createSecretKey(key, encoding) {
269
- const k = prepareSecretKey(key, encoding, true);
270
- const handle = _NativeQuickCrypto.NativeQuickCrypto.webcrypto.createKeyObjectHandle();
271
- handle.init(KeyType.Secret, k);
272
- return new SecretKeyObject(handle);
273
- }
274
- function createPublicKey(key) {
275
- const {
276
- format,
277
- type,
278
- data,
279
- passphrase
280
- } = prepareAsymmetricKey(key, KeyInputContext.kCreatePublic);
281
- const handle = _NativeQuickCrypto.NativeQuickCrypto.webcrypto.createKeyObjectHandle();
282
- if (format === KFormatType.kKeyFormatJWK) {
283
- handle.init(KeyType.Public, data);
284
- } else {
285
- handle.init(KeyType.Public, data, format, type, passphrase);
286
- }
287
- return new PublicKeyObject(handle);
288
- }
289
- const createPrivateKey = key => {
290
- const {
291
- format,
292
- type,
293
- data,
294
- passphrase
295
- } = prepareAsymmetricKey(key, KeyInputContext.kCreatePrivate);
296
- const handle = _NativeQuickCrypto.NativeQuickCrypto.webcrypto.createKeyObjectHandle();
297
- if (format === KFormatType.kKeyFormatJWK) {
298
- handle.init(KeyType.Private, data);
299
- } else {
300
- handle.init(KeyType.Private, data, format, type, passphrase);
301
- }
302
- return new PrivateKeyObject(handle);
303
- };
304
-
305
- // const isKeyObject = (obj: any): obj is KeyObject => {
306
- // return obj != null && obj.keyType !== undefined;
307
- // };
308
- exports.createPrivateKey = createPrivateKey;
309
- class CryptoKey {
310
- constructor(keyObject, keyAlgorithm, keyUsages, keyExtractable) {
311
- this.keyObject = keyObject;
312
- this.keyAlgorithm = keyAlgorithm;
313
- this.keyUsages = keyUsages;
314
- this.keyExtractable = keyExtractable;
315
- }
316
- inspect(_depth, _options) {
317
- throw new Error('CryptoKey.inspect is not implemented');
318
- // if (depth < 0) return this;
319
-
320
- // const opts = {
321
- // ...options,
322
- // depth: options.depth == null ? null : options.depth - 1,
323
- // };
324
-
325
- // return `CryptoKey ${inspect(
326
- // {
327
- // type: this.type,
328
- // extractable: this.extractable,
329
- // algorithm: this.algorithm,
330
- // usages: this.usages,
331
- // },
332
- // opts
333
- // )}`;
334
- }
335
- get type() {
336
- // if (!(this instanceof CryptoKey)) throw new Error('Invalid CryptoKey');
337
- return this.keyObject.type;
338
- }
339
- get extractable() {
340
- return this.keyExtractable;
341
- }
342
- get algorithm() {
343
- return this.keyAlgorithm;
344
- }
345
- get usages() {
346
- return this.keyUsages;
347
- }
348
- }
349
- exports.CryptoKey = CryptoKey;
350
- class KeyObject {
351
- type = 'unknown';
352
- export(_options) {
353
- return new ArrayBuffer(0);
354
- }
355
- constructor(type, handle) {
356
- if (type !== 'secret' && type !== 'public' && type !== 'private') throw new Error(`invalid KeyObject type: ${type}`);
357
- this.handle = handle;
358
- this.type = type;
359
- }
360
-
361
- // get type(): string {
362
- // return this.type;
363
- // }
364
-
365
- // static from(key) {
366
- // if (!isCryptoKey(key))
367
- // throw new ERR_INVALID_ARG_TYPE('key', 'CryptoKey', key);
368
- // return key[kKeyObject];
369
- // }
370
-
371
- // equals(otherKeyObject) {
372
- // if (!isKeyObject(otherKeyObject)) {
373
- // throw new ERR_INVALID_ARG_TYPE(
374
- // 'otherKeyObject',
375
- // 'KeyObject',
376
- // otherKeyObject
377
- // );
378
- // }
379
-
380
- // return (
381
- // otherKeyObject.type === this.type &&
382
- // this[kHandle].equals(otherKeyObject[kHandle])
383
- // );
384
- // }
385
- }
386
- class SecretKeyObject extends KeyObject {
387
- constructor(handle) {
388
- super('secret', handle);
389
- }
390
-
391
- // get symmetricKeySize() {
392
- // return this[kHandle].getSymmetricKeySize();
393
- // }
394
-
395
- export(options) {
396
- if (options !== undefined) {
397
- if (options.format === 'jwk') {
398
- throw new Error('SecretKey export for jwk is not implemented');
399
- // return this.handle.exportJwk({}, false);
400
- }
401
- }
402
- return this.handle.export();
403
- }
404
- }
405
-
406
- // const kAsymmetricKeyType = Symbol('kAsymmetricKeyType');
407
- // const kAsymmetricKeyDetails = Symbol('kAsymmetricKeyDetails');
408
-
409
- // function normalizeKeyDetails(details = {}) {
410
- // if (details.publicExponent !== undefined) {
411
- // return {
412
- // ...details,
413
- // publicExponent: bigIntArrayToUnsignedBigInt(
414
- // new Uint8Array(details.publicExponent)
415
- // ),
416
- // };
417
- // }
418
- // return details;
419
- // }
420
- exports.SecretKeyObject = SecretKeyObject;
421
- class AsymmetricKeyObject extends KeyObject {
422
- constructor(type, handle) {
423
- super(type, handle);
424
- }
425
- get asymmetricKeyType() {
426
- if (!this._asymmetricKeyType) {
427
- this._asymmetricKeyType = this.handle.getAsymmetricKeyType();
428
- }
429
- return this._asymmetricKeyType;
430
- }
431
-
432
- // get asymmetricKeyDetails() {
433
- // switch (this._asymmetricKeyType) {
434
- // case 'rsa':
435
- // case 'rsa-pss':
436
- // case 'dsa':
437
- // case 'ec':
438
- // return (
439
- // this[kAsymmetricKeyDetails] ||
440
- // (this[kAsymmetricKeyDetails] = normalizeKeyDetails(
441
- // this[kHandle].keyDetail({})
442
- // ))
443
- // );
444
- // default:
445
- // return {};
446
- // }
447
- // }
448
- }
449
- class PublicKeyObject extends AsymmetricKeyObject {
450
- constructor(handle) {
451
- super('public', handle);
452
- }
453
- export(options) {
454
- if (options?.format === 'jwk') {
455
- throw new Error('PublicKey export for jwk is not implemented');
456
- // return this.handle.exportJwk({}, false);
457
- }
458
- const {
459
- format,
460
- type
461
- } = parsePublicKeyEncoding(options, this.asymmetricKeyType);
462
- return this.handle.export(format, type);
463
- }
464
- }
465
- exports.PublicKeyObject = PublicKeyObject;
466
- class PrivateKeyObject extends AsymmetricKeyObject {
467
- constructor(handle) {
468
- super('private', handle);
469
- }
470
- export(options) {
471
- if (options?.format === 'jwk') {
472
- if (options.passphrase !== undefined) {
473
- throw new Error('jwk does not support encryption');
474
- }
475
- throw new Error('PrivateKey export for jwk is not implemented');
476
- // return this.handle.exportJwk({}, false);
477
- }
478
- const {
479
- format,
480
- type,
481
- cipher,
482
- passphrase
483
- } = parsePrivateKeyEncoding(options, this.asymmetricKeyType);
484
- return this.handle.export(format, type, cipher, passphrase);
485
- }
486
- }
487
- exports.PrivateKeyObject = PrivateKeyObject;
488
- const isCryptoKey = obj => {
489
- return obj !== null && obj?.keyObject !== undefined;
490
- };
491
- exports.isCryptoKey = isCryptoKey;
492
- //# sourceMappingURL=keys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_Utils","require","_NativeQuickCrypto","kNamedCurveAliases","exports","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","isStringOrBuffer","binaryLikeToArrayBuffer","prepareAsymmetricKey","key","ctx","data","kConsumePrivate","kCreatePrivate","preparePrivateKey","preparePublicOrPrivateKey","kConsumePublic","parsePublicKeyEncoding","parsePrivateKeyEncoding","prepareSecretKey","bufferOnly","KeyObject","handle","CryptoKey","keyObject","ArrayBuffer","error","cause","createSecretKey","k","NativeQuickCrypto","webcrypto","createKeyObjectHandle","init","Secret","SecretKeyObject","createPublicKey","kCreatePublic","Public","PublicKeyObject","createPrivateKey","Private","PrivateKeyObject","constructor","keyAlgorithm","keyUsages","keyExtractable","inspect","_depth","_options","extractable","algorithm","usages","export","options","AsymmetricKeyObject","asymmetricKeyType","_asymmetricKeyType","getAsymmetricKeyType","isCryptoKey","obj"],"sourceRoot":"../../src","sources":["keys.ts"],"mappings":"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","ignoreList":[]}