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
@@ -1,608 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- setDefaultEncoding: true,
8
- getDefaultEncoding: true,
9
- kEmptyObject: true,
10
- toArrayBuffer: true,
11
- bufferLikeToArrayBuffer: true,
12
- binaryLikeToArrayBuffer: true,
13
- ab2str: true,
14
- validateString: true,
15
- validateFunction: true,
16
- isStringOrBuffer: true,
17
- validateObject: true,
18
- validateInt32: true,
19
- validateUint32: true,
20
- hasAnyNotIn: true,
21
- lazyDOMException: true,
22
- validateMaxBufferLength: true,
23
- normalizeAlgorithm: true,
24
- validateBitLength: true,
25
- validateByteLength: true,
26
- getUsagesUnion: true,
27
- validateKeyOps: true,
28
- bigIntArrayToUnsignedInt: true,
29
- getHashes: true,
30
- getCiphers: true
31
- };
32
- exports.ab2str = ab2str;
33
- exports.bigIntArrayToUnsignedInt = void 0;
34
- exports.binaryLikeToArrayBuffer = binaryLikeToArrayBuffer;
35
- exports.bufferLikeToArrayBuffer = bufferLikeToArrayBuffer;
36
- exports.getCiphers = void 0;
37
- exports.getDefaultEncoding = getDefaultEncoding;
38
- exports.getUsagesUnion = exports.getHashes = void 0;
39
- exports.hasAnyNotIn = hasAnyNotIn;
40
- exports.isStringOrBuffer = isStringOrBuffer;
41
- exports.kEmptyObject = void 0;
42
- exports.lazyDOMException = lazyDOMException;
43
- exports.normalizeAlgorithm = void 0;
44
- exports.setDefaultEncoding = setDefaultEncoding;
45
- exports.toArrayBuffer = toArrayBuffer;
46
- exports.validateByteLength = exports.validateBitLength = void 0;
47
- exports.validateFunction = validateFunction;
48
- exports.validateInt32 = validateInt32;
49
- exports.validateMaxBufferLength = exports.validateKeyOps = void 0;
50
- exports.validateObject = validateObject;
51
- exports.validateString = validateString;
52
- exports.validateUint32 = validateUint32;
53
- var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
54
- var _Hashnames = require("./Hashnames");
55
- Object.keys(_Hashnames).forEach(function (key) {
56
- if (key === "default" || key === "__esModule") return;
57
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
58
- if (key in exports && exports[key] === _Hashnames[key]) return;
59
- Object.defineProperty(exports, key, {
60
- enumerable: true,
61
- get: function () {
62
- return _Hashnames[key];
63
- }
64
- });
65
- });
66
- // @types/node
67
-
68
- // TODO(osp) should buffer be part of the Encoding type?
69
-
70
- // Mimics node behavior for default global encoding
71
- let defaultEncoding = 'buffer';
72
- function setDefaultEncoding(encoding) {
73
- defaultEncoding = encoding;
74
- }
75
- function getDefaultEncoding() {
76
- return defaultEncoding;
77
- }
78
- const kEmptyObject = exports.kEmptyObject = Object.freeze(Object.create(null));
79
-
80
- // Should be used by Cipher (or any other module that requires valid encodings)
81
- // function slowCases(enc: string) {
82
- // switch (enc.length) {
83
- // case 4:
84
- // if (enc === 'UTF8') return 'utf8';
85
- // if (enc === 'ucs2' || enc === 'UCS2') return 'utf16le';
86
- // enc = `${enc}`.toLowerCase();
87
- // if (enc === 'utf8') return 'utf8';
88
- // if (enc === 'ucs2') return 'utf16le';
89
- // break;
90
- // case 3:
91
- // if (enc === 'hex' || enc === 'HEX' || `${enc}`.toLowerCase() === 'hex')
92
- // return 'hex';
93
- // break;
94
- // case 5:
95
- // if (enc === 'ascii') return 'ascii';
96
- // if (enc === 'ucs-2') return 'utf16le';
97
- // if (enc === 'UTF-8') return 'utf8';
98
- // if (enc === 'ASCII') return 'ascii';
99
- // if (enc === 'UCS-2') return 'utf16le';
100
- // enc = `${enc}`.toLowerCase();
101
- // if (enc === 'utf-8') return 'utf8';
102
- // if (enc === 'ascii') return 'ascii';
103
- // if (enc === 'ucs-2') return 'utf16le';
104
- // break;
105
- // case 6:
106
- // if (enc === 'base64') return 'base64';
107
- // if (enc === 'latin1' || enc === 'binary') return 'latin1';
108
- // if (enc === 'BASE64') return 'base64';
109
- // if (enc === 'LATIN1' || enc === 'BINARY') return 'latin1';
110
- // enc = `${enc}`.toLowerCase();
111
- // if (enc === 'base64') return 'base64';
112
- // if (enc === 'latin1' || enc === 'binary') return 'latin1';
113
- // break;
114
- // case 7:
115
- // if (
116
- // enc === 'utf16le' ||
117
- // enc === 'UTF16LE' ||
118
- // `${enc}`.toLowerCase() === 'utf16le'
119
- // )
120
- // return 'utf16le';
121
- // break;
122
- // case 8:
123
- // if (
124
- // enc === 'utf-16le' ||
125
- // enc === 'UTF-16LE' ||
126
- // `${enc}`.toLowerCase() === 'utf-16le'
127
- // )
128
- // return 'utf16le';
129
- // break;
130
- // case 9:
131
- // if (
132
- // enc === 'base64url' ||
133
- // enc === 'BASE64URL' ||
134
- // `${enc}`.toLowerCase() === 'base64url'
135
- // )
136
- // return 'base64url';
137
- // break;
138
- // default:
139
- // if (enc === '') return 'utf8';
140
- // }
141
- // }
142
-
143
- // // Return undefined if there is no match.
144
- // // Move the "slow cases" to a separate function to make sure this function gets
145
- // // inlined properly. That prioritizes the common case.
146
- // export function normalizeEncoding(enc?: string) {
147
- // if (enc == null || enc === 'utf8' || enc === 'utf-8') return 'utf8';
148
- // return slowCases(enc);
149
- // }
150
-
151
- function toArrayBuffer(buf) {
152
- if (buf?.buffer?.slice) {
153
- return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
154
- }
155
- const ab = new ArrayBuffer(buf.length);
156
- const view = new Uint8Array(ab);
157
- for (let i = 0; i < buf.length; ++i) {
158
- view[i] = buf[i];
159
- }
160
- return ab;
161
- }
162
- function bufferLikeToArrayBuffer(buf) {
163
- return _reactNativeBuffer.Buffer.isBuffer(buf) ? buf.buffer : ArrayBuffer.isView(buf) ? buf.buffer : buf;
164
- }
165
- function binaryLikeToArrayBuffer(input,
166
- // CipherKey adds compat with node types
167
- encoding = 'utf-8') {
168
- if (typeof input === 'string') {
169
- if (encoding === 'buffer') {
170
- throw new Error('Cannot create a buffer from a string with a buffer encoding');
171
- }
172
- const buffer = _reactNativeBuffer.Buffer.from(input, encoding);
173
- return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
174
- }
175
- if (_reactNativeBuffer.Buffer.isBuffer(input)) {
176
- return toArrayBuffer(input);
177
- }
178
-
179
- // TODO add further binary types to BinaryLike, UInt8Array and so for have this array as property
180
- if (ArrayBuffer.isView(input)) {
181
- return input.buffer;
182
- }
183
- if (!(input instanceof ArrayBuffer)) {
184
- try {
185
- // this is a strange fallback case and input is unknown at this point
186
- // @ts-expect-error
187
- const buffer = _reactNativeBuffer.Buffer.from(input);
188
- return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
189
- } catch {
190
- throw 'error';
191
- }
192
- }
193
-
194
- // TODO: handle if input is KeyObject?
195
-
196
- return input;
197
- }
198
- function ab2str(buf, encoding = 'hex') {
199
- return _reactNativeBuffer.Buffer.from(buf).toString(encoding);
200
- }
201
- function validateString(str, name) {
202
- const isString = typeof str === 'string';
203
- if (!isString) {
204
- throw new Error(`${name} is not a string`);
205
- }
206
- return isString;
207
- }
208
- function validateFunction(f) {
209
- return f !== null && typeof f === 'function';
210
- }
211
- function isStringOrBuffer(val) {
212
- return typeof val === 'string' || ArrayBuffer.isView(val) || val instanceof ArrayBuffer;
213
- }
214
- function validateObject(value, name, options) {
215
- const useDefaultOptions = options == null;
216
- const allowArray = useDefaultOptions ? false : options.allowArray;
217
- const allowFunction = useDefaultOptions ? false : options.allowFunction;
218
- const nullable = useDefaultOptions ? false : options.nullable;
219
- if (!nullable && value === null || !allowArray && Array.isArray(value) || typeof value !== 'object' && (!allowFunction || typeof value !== 'function')) {
220
- throw new Error(`${name} is not a valid object $${value}`);
221
- }
222
- return true;
223
- }
224
- function validateInt32(value, name, min = -2147483648, max = 2147483647) {
225
- // The defaults for min and max correspond to the limits of 32-bit integers.
226
- if (typeof value !== 'number') {
227
- throw new Error(`Invalid argument - ${name} is not a number: ${value}`);
228
- }
229
- if (!Number.isInteger(value)) {
230
- throw new Error(`Argument out of range - ${name} out of integer range: ${value}`);
231
- }
232
- if (value < min || value > max) {
233
- throw new Error(`Invalid argument - ${name} out of range >= ${min} && <= ${max}: ${value}`);
234
- }
235
- }
236
- function validateUint32(value, name, positive) {
237
- if (typeof value !== 'number') {
238
- // throw new ERR_INVALID_ARG_TYPE(name, 'number', value);
239
- throw new Error(`Invalid argument - ${name} is not a number: ${value}`);
240
- }
241
- if (!Number.isInteger(value)) {
242
- // throw new ERR_OUT_OF_RANGE(name, 'an integer', value);
243
- throw new Error(`Argument out of range - ${name} out of integer range: ${value}`);
244
- }
245
- const min = positive ? 1 : 0;
246
- // 2 ** 32 === 4294967296
247
- const max = 4294967295;
248
- if (value < min || value > max) {
249
- // throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
250
- throw new Error(`Invalid argument - ${name} out of range >= ${min} && <= ${max}: ${value}`);
251
- }
252
- }
253
- function hasAnyNotIn(set, checks) {
254
- for (const s of set) {
255
- if (!checks.includes(s)) {
256
- return true;
257
- }
258
- }
259
- return false;
260
- }
261
- function lazyDOMException(message, domName) {
262
- let cause = '';
263
- if (typeof domName !== 'string') {
264
- cause = `\nCaused by: ${domName.cause}`;
265
- }
266
- return new Error(`[${domName}]: ${message}${cause}`);
267
- }
268
-
269
- // from lib/internal/crypto/util.js
270
-
271
- // The maximum buffer size that we'll support in the WebCrypto impl
272
- const kMaxBufferLength = 2 ** 31 - 1;
273
-
274
- // // The EC named curves that we currently support via the Web Crypto API.
275
- // const kNamedCurveAliases = {
276
- // 'P-256': 'prime256v1',
277
- // 'P-384': 'secp384r1',
278
- // 'P-521': 'secp521r1',
279
- // };
280
-
281
- // const kAesKeyLengths = [128, 192, 256];
282
-
283
- // // These are the only hash algorithms we currently support via
284
- // // the Web Crypto API.
285
- // const kHashTypes = ['SHA-1', 'SHA-256', 'SHA-384', 'SHA-512'];
286
-
287
- const kSupportedAlgorithms = {
288
- 'digest': {
289
- 'SHA-1': null,
290
- 'SHA-256': null,
291
- 'SHA-384': null,
292
- 'SHA-512': null
293
- },
294
- 'generateKey': {
295
- 'RSASSA-PKCS1-v1_5': 'RsaHashedKeyGenParams',
296
- 'RSA-PSS': 'RsaHashedKeyGenParams',
297
- 'RSA-OAEP': 'RsaHashedKeyGenParams',
298
- 'ECDSA': 'EcKeyGenParams',
299
- 'ECDH': 'EcKeyGenParams',
300
- 'AES-CTR': 'AesKeyGenParams',
301
- 'AES-CBC': 'AesKeyGenParams',
302
- 'AES-GCM': 'AesKeyGenParams',
303
- 'AES-KW': 'AesKeyGenParams',
304
- 'HMAC': 'HmacKeyGenParams',
305
- 'X25519': null,
306
- 'Ed25519': null,
307
- 'X448': null,
308
- 'Ed448': null
309
- },
310
- 'sign': {
311
- 'RSASSA-PKCS1-v1_5': null,
312
- 'RSA-PSS': 'RsaPssParams',
313
- 'ECDSA': 'EcdsaParams',
314
- 'HMAC': null,
315
- 'Ed25519': null,
316
- 'Ed448': 'Ed448Params'
317
- },
318
- 'verify': {
319
- 'RSASSA-PKCS1-v1_5': null,
320
- 'RSA-PSS': 'RsaPssParams',
321
- 'ECDSA': 'EcdsaParams',
322
- 'HMAC': null,
323
- 'Ed25519': null,
324
- 'Ed448': 'Ed448Params'
325
- },
326
- 'importKey': {
327
- 'RSASSA-PKCS1-v1_5': 'RsaHashedImportParams',
328
- 'RSA-PSS': 'RsaHashedImportParams',
329
- 'RSA-OAEP': 'RsaHashedImportParams',
330
- 'ECDSA': 'EcKeyImportParams',
331
- 'ECDH': 'EcKeyImportParams',
332
- 'HMAC': 'HmacImportParams',
333
- 'HKDF': null,
334
- 'PBKDF2': null,
335
- 'AES-CTR': null,
336
- 'AES-CBC': null,
337
- 'AES-GCM': null,
338
- 'AES-KW': null,
339
- 'Ed25519': null,
340
- 'X25519': null,
341
- 'Ed448': null,
342
- 'X448': null
343
- },
344
- 'deriveBits': {
345
- HKDF: 'HkdfParams',
346
- PBKDF2: 'Pbkdf2Params',
347
- ECDH: 'EcdhKeyDeriveParams',
348
- X25519: 'EcdhKeyDeriveParams',
349
- X448: 'EcdhKeyDeriveParams'
350
- },
351
- 'encrypt': {
352
- 'RSA-OAEP': 'RsaOaepParams',
353
- 'AES-CBC': 'AesCbcParams',
354
- 'AES-GCM': 'AesGcmParams',
355
- 'AES-CTR': 'AesCtrParams'
356
- },
357
- 'decrypt': {
358
- 'RSA-OAEP': 'RsaOaepParams',
359
- 'AES-CBC': 'AesCbcParams',
360
- 'AES-GCM': 'AesGcmParams',
361
- 'AES-CTR': 'AesCtrParams'
362
- },
363
- 'get key length': {
364
- 'AES-CBC': 'AesDerivedKeyParams',
365
- 'AES-CTR': 'AesDerivedKeyParams',
366
- 'AES-GCM': 'AesDerivedKeyParams',
367
- 'AES-KW': 'AesDerivedKeyParams',
368
- 'HMAC': 'HmacImportParams',
369
- 'HKDF': null,
370
- 'PBKDF2': null
371
- },
372
- 'wrapKey': {
373
- 'AES-KW': null
374
- },
375
- 'unwrapKey': {
376
- 'AES-KW': null
377
- }
378
- };
379
- const simpleAlgorithmDictionaries = {
380
- AesGcmParams: {
381
- iv: 'BufferSource',
382
- additionalData: 'BufferSource'
383
- },
384
- RsaHashedKeyGenParams: {
385
- hash: 'HashAlgorithmIdentifier'
386
- },
387
- EcKeyGenParams: {},
388
- HmacKeyGenParams: {
389
- hash: 'HashAlgorithmIdentifier'
390
- },
391
- RsaPssParams: {},
392
- EcdsaParams: {
393
- hash: 'HashAlgorithmIdentifier'
394
- },
395
- HmacImportParams: {
396
- hash: 'HashAlgorithmIdentifier'
397
- },
398
- HkdfParams: {
399
- hash: 'HashAlgorithmIdentifier',
400
- salt: 'BufferSource',
401
- info: 'BufferSource'
402
- },
403
- Ed448Params: {
404
- context: 'BufferSource'
405
- },
406
- Pbkdf2Params: {
407
- hash: 'HashAlgorithmIdentifier',
408
- salt: 'BufferSource'
409
- },
410
- RsaOaepParams: {
411
- label: 'BufferSource'
412
- },
413
- RsaHashedImportParams: {
414
- hash: 'HashAlgorithmIdentifier'
415
- },
416
- EcKeyImportParams: {}
417
- };
418
- const validateMaxBufferLength = (data, name) => {
419
- const length = typeof data === 'string' ? data.length : data.byteLength;
420
- if (length > kMaxBufferLength) {
421
- throw lazyDOMException(`${name} must be less than ${kMaxBufferLength + 1} bits`, 'OperationError');
422
- }
423
- };
424
-
425
- // https://w3c.github.io/webcrypto/#algorithm-normalization-normalize-an-algorithm
426
- // adapted for Node.js from Deno's implementation
427
- // https://github.com/denoland/deno/blob/v1.29.1/ext/crypto/00_crypto.js#L195
428
- exports.validateMaxBufferLength = validateMaxBufferLength;
429
- const normalizeAlgorithm = (algorithm, op) => {
430
- if (typeof algorithm === 'string') {
431
- return normalizeAlgorithm({
432
- name: algorithm
433
- }, op);
434
- }
435
-
436
- // 1.
437
- const registeredAlgorithms = kSupportedAlgorithms[op];
438
- // 2. 3.
439
- // commented, because typescript takes care of this for us 🤞👀
440
- // const initialAlg = webidl.converters.Algorithm(algorithm, {
441
- // prefix: 'Failed to normalize algorithm',
442
- // context: 'passed algorithm',
443
- // });
444
-
445
- // 4.
446
- let algName = algorithm.name;
447
- // @ts-expect-error
448
- if (algName === undefined) return {
449
- name: undefined
450
- };
451
-
452
- // 5.
453
- let desiredType;
454
- for (const key in registeredAlgorithms) {
455
- if (!registeredAlgorithms.hasOwnProperty(key)) {
456
- continue;
457
- }
458
- if (key.toUpperCase() === algName.toUpperCase()) {
459
- algName = key;
460
- // @ts-ignore
461
- desiredType = registeredAlgorithms[algName];
462
- }
463
- }
464
- if (desiredType === undefined) throw lazyDOMException('Unrecognized algorithm name', 'NotSupportedError');
465
-
466
- // Fast path everything below if the registered dictionary is null
467
- if (desiredType === null) return {
468
- name: algName
469
- };
470
-
471
- // 6.
472
- const normalizedAlgorithm = algorithm;
473
- // TODO: implement this? Maybe via typescript?
474
- // webidl.converters[desiredType](algorithm, {
475
- // prefix: 'Failed to normalize algorithm',
476
- // context: 'passed algorithm',
477
- // });
478
- // 7.
479
- normalizedAlgorithm.name = algName;
480
-
481
- // 9.
482
- const dict = simpleAlgorithmDictionaries[desiredType];
483
- // 10.
484
- const dictKeys = dict ? Object.keys(dict) : [];
485
- for (let i = 0; i < dictKeys.length; i++) {
486
- const member = dictKeys[i] || '';
487
- if (!dict?.hasOwnProperty(member)) continue;
488
- // TODO: implement this? Maybe via typescript?
489
- // const idlType = dict[member];
490
- // const idlValue = normalizedAlgorithm[member];
491
- // 3.
492
- // if (idlType === 'BufferSource' && idlValue) {
493
- // const isView = ArrayBufferIsView(idlValue);
494
- // normalizedAlgorithm[member] = TypedArrayPrototypeSlice(
495
- // new Uint8Array(
496
- // isView ? getDataViewOrTypedArrayBuffer(idlValue) : idlValue,
497
- // isView ? getDataViewOrTypedArrayByteOffset(idlValue) : 0,
498
- // isView
499
- // ? getDataViewOrTypedArrayByteLength(idlValue)
500
- // : ArrayBufferPrototypeGetByteLength(idlValue)
501
- // )
502
- // );
503
- // } else if (idlType === 'HashAlgorithmIdentifier') {
504
- // normalizedAlgorithm[member] = normalizeAlgorithm(idlValue, 'digest');
505
- // } else if (idlType === 'AlgorithmIdentifier') {
506
- // // This extension point is not used by any supported algorithm (yet?)
507
- // throw lazyDOMException('Not implemented.', 'NotSupportedError');
508
- // }
509
- }
510
- return normalizedAlgorithm;
511
- };
512
- exports.normalizeAlgorithm = normalizeAlgorithm;
513
- const validateBitLength = (length, name, required = false) => {
514
- if (length !== undefined || required) {
515
- // validateNumber(length, name);
516
- if (length < 0) throw new Error(`${name} > 0`);
517
- if (length % 8) {
518
- throw lazyDOMException(`${name}'s length (${length}) must be a multiple of 8`, 'InvalidArgument');
519
- }
520
- }
521
- };
522
- exports.validateBitLength = validateBitLength;
523
- const validateByteLength = (buf, name, target) => {
524
- if (buf.byteLength !== target) {
525
- throw lazyDOMException(`${name} must contain exactly ${target} bytes`, 'OperationError');
526
- }
527
- };
528
- exports.validateByteLength = validateByteLength;
529
- const getUsagesUnion = (usageSet, ...usages) => {
530
- const newset = [];
531
- for (let n = 0; n < usages.length; n++) {
532
- if (!usages[n] || usages[n] === undefined) continue;
533
- if (usageSet.includes(usages[n])) newset.push(usages[n]);
534
- }
535
- return newset;
536
- };
537
- exports.getUsagesUnion = getUsagesUnion;
538
- const kKeyOps = {
539
- sign: 1,
540
- verify: 2,
541
- encrypt: 3,
542
- decrypt: 4,
543
- wrapKey: 5,
544
- unwrapKey: 6,
545
- deriveKey: 7,
546
- deriveBits: 8
547
- };
548
- const validateKeyOps = (keyOps, usagesSet) => {
549
- if (keyOps === undefined) return;
550
- if (!Array.isArray(keyOps)) {
551
- throw lazyDOMException('keyData.key_ops', 'InvalidArgument');
552
- }
553
- let flags = 0;
554
- for (let n = 0; n < keyOps.length; n++) {
555
- const op = keyOps[n];
556
- const op_flag = kKeyOps[op];
557
- // Skipping unknown key ops
558
- if (op_flag === undefined) continue;
559
- // Have we seen it already? if so, error
560
- // eslint-disable-next-line no-bitwise
561
- if (flags & 1 << op_flag) throw lazyDOMException('Duplicate key operation', 'DataError');
562
- // eslint-disable-next-line no-bitwise
563
- flags |= 1 << op_flag;
564
-
565
- // TODO(@jasnell): RFC7517 section 4.3 strong recommends validating
566
- // key usage combinations. Specifically, it says that unrelated key
567
- // ops SHOULD NOT be used together. We're not yet validating that here.
568
- }
569
- if (usagesSet !== undefined) {
570
- for (const use of usagesSet) {
571
- if (!keyOps.includes(use)) {
572
- throw lazyDOMException('Key operations and usage mismatch', 'DataError');
573
- }
574
- }
575
- }
576
- };
577
-
578
- // In WebCrypto, the publicExponent option in RSA is represented as a
579
- // WebIDL "BigInteger"... that is, a Uint8Array that allows an arbitrary
580
- // number of leading zero bits. Our conventional APIs for reading
581
- // an unsigned int from a Buffer are not adequate. The implementation
582
- // here is adapted from the chromium implementation here:
583
- // https://github.com/chromium/chromium/blob/HEAD/third_party/blink/public/platform/web_crypto_algorithm_params.h, but ported to JavaScript
584
- // Returns undefined if the conversion was unsuccessful.
585
- exports.validateKeyOps = validateKeyOps;
586
- const bigIntArrayToUnsignedInt = input => {
587
- let result = 0;
588
- for (let n = 0; n < input.length; ++n) {
589
- const n_reversed = input.length - n - 1;
590
- if (n_reversed >= 4 && input[n]) return; // Too large
591
- // @ts-ignore
592
- // eslint-disable-next-line no-bitwise
593
- result |= input[n] << 8 * n_reversed;
594
- }
595
- return result;
596
- };
597
-
598
- // TODO: these used to be shipped by crypto-browserify in quickcrypto v0.6
599
- // could instead fetch from OpenSSL if needed and handle breaking changes
600
- exports.bigIntArrayToUnsignedInt = bigIntArrayToUnsignedInt;
601
- const getHashes = () => ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160', 'sha224WithRSAEncryption', 'RSA-SHA224', 'sha256WithRSAEncryption', 'RSA-SHA256', 'sha384WithRSAEncryption', 'RSA-SHA384', 'sha512WithRSAEncryption', 'RSA-SHA512', 'RSA-SHA1', 'ecdsa-with-SHA1', 'sha256', 'sha224', 'sha384', 'sha512', 'DSA-SHA', 'DSA-SHA1', 'DSA', 'DSA-WITH-SHA224', 'DSA-SHA224', 'DSA-WITH-SHA256', 'DSA-SHA256', 'DSA-WITH-SHA384', 'DSA-SHA384', 'DSA-WITH-SHA512', 'DSA-SHA512', 'DSA-RIPEMD160', 'ripemd160WithRSA', 'RSA-RIPEMD160', 'md5WithRSAEncryption', 'RSA-MD5'];
602
-
603
- // TODO: these used to be shipped by crypto-browserify in quickcrypto v0.6
604
- // could instead fetch from OpenSSL if needed and handle breaking changes
605
- exports.getHashes = getHashes;
606
- const getCiphers = () => ['des-ecb', 'des', 'des-cbc', 'des3', 'des-ede3-cbc', 'des-ede3', 'des-ede-cbc', 'des-ede', 'aes-128-ecb', 'aes-192-ecb', 'aes-256-ecb', 'aes-128-cbc', 'aes-192-cbc', 'aes-256-cbc', 'aes128', 'aes192', 'aes256', 'aes-128-cfb', 'aes-192-cfb', 'aes-256-cfb', 'aes-128-cfb8', 'aes-192-cfb8', 'aes-256-cfb8', 'aes-128-cfb1', 'aes-192-cfb1', 'aes-256-cfb1', 'aes-128-ofb', 'aes-192-ofb', 'aes-256-ofb', 'aes-128-ctr', 'aes-192-ctr', 'aes-256-ctr', 'aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm'];
607
- exports.getCiphers = getCiphers;
608
- //# sourceMappingURL=Utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNativeBuffer","require","_Hashnames","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","defaultEncoding","setDefaultEncoding","encoding","getDefaultEncoding","kEmptyObject","freeze","create","toArrayBuffer","buf","buffer","slice","byteOffset","byteLength","ab","ArrayBuffer","length","view","Uint8Array","i","bufferLikeToArrayBuffer","Buffer","isBuffer","isView","binaryLikeToArrayBuffer","input","Error","from","ab2str","toString","validateString","str","name","isString","validateFunction","f","isStringOrBuffer","val","validateObject","value","options","useDefaultOptions","allowArray","allowFunction","nullable","Array","isArray","validateInt32","min","max","Number","isInteger","validateUint32","positive","hasAnyNotIn","set","checks","s","includes","lazyDOMException","message","domName","cause","kMaxBufferLength","kSupportedAlgorithms","HKDF","PBKDF2","ECDH","X25519","X448","simpleAlgorithmDictionaries","AesGcmParams","iv","additionalData","RsaHashedKeyGenParams","hash","EcKeyGenParams","HmacKeyGenParams","RsaPssParams","EcdsaParams","HmacImportParams","HkdfParams","salt","info","Ed448Params","context","Pbkdf2Params","RsaOaepParams","label","RsaHashedImportParams","EcKeyImportParams","validateMaxBufferLength","data","normalizeAlgorithm","algorithm","op","registeredAlgorithms","algName","undefined","desiredType","toUpperCase","normalizedAlgorithm","dict","dictKeys","member","validateBitLength","required","validateByteLength","target","getUsagesUnion","usageSet","usages","newset","n","push","kKeyOps","sign","verify","encrypt","decrypt","wrapKey","unwrapKey","deriveKey","deriveBits","validateKeyOps","keyOps","usagesSet","flags","op_flag","use","bigIntArrayToUnsignedInt","result","n_reversed","getHashes","getCiphers"],"sourceRoot":"../../src","sources":["Utils.ts"],"mappings":"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","ignoreList":[]}