react-native-quick-crypto 0.7.2 → 1.0.0-beta.1

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