react-native-quick-crypto 1.0.10 → 1.0.11

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 (158) hide show
  1. package/android/CMakeLists.txt +9 -0
  2. package/cpp/argon2/HybridArgon2.cpp +103 -0
  3. package/cpp/argon2/HybridArgon2.hpp +32 -0
  4. package/cpp/certificate/HybridCertificate.cpp +42 -0
  5. package/cpp/certificate/HybridCertificate.hpp +16 -0
  6. package/cpp/cipher/HybridCipher.cpp +58 -0
  7. package/cpp/cipher/HybridCipher.hpp +4 -0
  8. package/cpp/dh/HybridDhKeyPair.cpp +179 -0
  9. package/cpp/dh/HybridDhKeyPair.hpp +37 -0
  10. package/cpp/dsa/HybridDsaKeyPair.cpp +128 -0
  11. package/cpp/dsa/HybridDsaKeyPair.hpp +32 -0
  12. package/cpp/ecdh/HybridECDH.cpp +35 -0
  13. package/cpp/ecdh/HybridECDH.hpp +1 -0
  14. package/cpp/keys/HybridKeyObjectHandle.cpp +19 -0
  15. package/cpp/prime/HybridPrime.cpp +81 -0
  16. package/cpp/prime/HybridPrime.hpp +20 -0
  17. package/lib/commonjs/argon2.js +39 -0
  18. package/lib/commonjs/argon2.js.map +1 -0
  19. package/lib/commonjs/certificate.js +35 -0
  20. package/lib/commonjs/certificate.js.map +1 -0
  21. package/lib/commonjs/cipher.js +8 -0
  22. package/lib/commonjs/cipher.js.map +1 -1
  23. package/lib/commonjs/dhKeyPair.js +109 -0
  24. package/lib/commonjs/dhKeyPair.js.map +1 -0
  25. package/lib/commonjs/dsa.js +92 -0
  26. package/lib/commonjs/dsa.js.map +1 -0
  27. package/lib/commonjs/ecdh.js +37 -0
  28. package/lib/commonjs/ecdh.js.map +1 -1
  29. package/lib/commonjs/index.js +35 -0
  30. package/lib/commonjs/index.js.map +1 -1
  31. package/lib/commonjs/keys/classes.js +9 -7
  32. package/lib/commonjs/keys/classes.js.map +1 -1
  33. package/lib/commonjs/keys/generateKeyPair.js +11 -0
  34. package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
  35. package/lib/commonjs/prime.js +84 -0
  36. package/lib/commonjs/prime.js.map +1 -0
  37. package/lib/commonjs/specs/argon2.nitro.js +6 -0
  38. package/lib/commonjs/specs/argon2.nitro.js.map +1 -0
  39. package/lib/commonjs/specs/certificate.nitro.js +6 -0
  40. package/lib/commonjs/specs/certificate.nitro.js.map +1 -0
  41. package/lib/commonjs/specs/dhKeyPair.nitro.js +6 -0
  42. package/lib/commonjs/specs/dhKeyPair.nitro.js.map +1 -0
  43. package/lib/commonjs/specs/dsaKeyPair.nitro.js +6 -0
  44. package/lib/commonjs/specs/dsaKeyPair.nitro.js.map +1 -0
  45. package/lib/commonjs/specs/prime.nitro.js +6 -0
  46. package/lib/commonjs/specs/prime.nitro.js.map +1 -0
  47. package/lib/commonjs/subtle.js +101 -10
  48. package/lib/commonjs/subtle.js.map +1 -1
  49. package/lib/commonjs/utils/types.js.map +1 -1
  50. package/lib/module/argon2.js +34 -0
  51. package/lib/module/argon2.js.map +1 -0
  52. package/lib/module/certificate.js +30 -0
  53. package/lib/module/certificate.js.map +1 -0
  54. package/lib/module/cipher.js +7 -0
  55. package/lib/module/cipher.js.map +1 -1
  56. package/lib/module/dhKeyPair.js +102 -0
  57. package/lib/module/dhKeyPair.js.map +1 -0
  58. package/lib/module/dsa.js +85 -0
  59. package/lib/module/dsa.js.map +1 -0
  60. package/lib/module/ecdh.js +37 -0
  61. package/lib/module/ecdh.js.map +1 -1
  62. package/lib/module/index.js +9 -0
  63. package/lib/module/index.js.map +1 -1
  64. package/lib/module/keys/classes.js +9 -7
  65. package/lib/module/keys/classes.js.map +1 -1
  66. package/lib/module/keys/generateKeyPair.js +11 -0
  67. package/lib/module/keys/generateKeyPair.js.map +1 -1
  68. package/lib/module/prime.js +77 -0
  69. package/lib/module/prime.js.map +1 -0
  70. package/lib/module/specs/argon2.nitro.js +4 -0
  71. package/lib/module/specs/argon2.nitro.js.map +1 -0
  72. package/lib/module/specs/certificate.nitro.js +4 -0
  73. package/lib/module/specs/certificate.nitro.js.map +1 -0
  74. package/lib/module/specs/dhKeyPair.nitro.js +4 -0
  75. package/lib/module/specs/dhKeyPair.nitro.js.map +1 -0
  76. package/lib/module/specs/dsaKeyPair.nitro.js +4 -0
  77. package/lib/module/specs/dsaKeyPair.nitro.js.map +1 -0
  78. package/lib/module/specs/prime.nitro.js +4 -0
  79. package/lib/module/specs/prime.nitro.js.map +1 -0
  80. package/lib/module/subtle.js +102 -12
  81. package/lib/module/subtle.js.map +1 -1
  82. package/lib/module/utils/types.js.map +1 -1
  83. package/lib/tsconfig.tsbuildinfo +1 -1
  84. package/lib/typescript/argon2.d.ts +16 -0
  85. package/lib/typescript/argon2.d.ts.map +1 -0
  86. package/lib/typescript/certificate.d.ts +8 -0
  87. package/lib/typescript/certificate.d.ts.map +1 -0
  88. package/lib/typescript/cipher.d.ts +12 -0
  89. package/lib/typescript/cipher.d.ts.map +1 -1
  90. package/lib/typescript/dhKeyPair.d.ts +19 -0
  91. package/lib/typescript/dhKeyPair.d.ts.map +1 -0
  92. package/lib/typescript/dsa.d.ts +19 -0
  93. package/lib/typescript/dsa.d.ts.map +1 -0
  94. package/lib/typescript/ecdh.d.ts +3 -0
  95. package/lib/typescript/ecdh.d.ts.map +1 -1
  96. package/lib/typescript/index.d.ts +17 -0
  97. package/lib/typescript/index.d.ts.map +1 -1
  98. package/lib/typescript/keys/classes.d.ts +2 -0
  99. package/lib/typescript/keys/classes.d.ts.map +1 -1
  100. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
  101. package/lib/typescript/prime.d.ts +19 -0
  102. package/lib/typescript/prime.d.ts.map +1 -0
  103. package/lib/typescript/specs/argon2.nitro.d.ts +9 -0
  104. package/lib/typescript/specs/argon2.nitro.d.ts.map +1 -0
  105. package/lib/typescript/specs/certificate.nitro.d.ts +10 -0
  106. package/lib/typescript/specs/certificate.nitro.d.ts.map +1 -0
  107. package/lib/typescript/specs/cipher.nitro.d.ts +9 -0
  108. package/lib/typescript/specs/cipher.nitro.d.ts.map +1 -1
  109. package/lib/typescript/specs/dhKeyPair.nitro.d.ts +14 -0
  110. package/lib/typescript/specs/dhKeyPair.nitro.d.ts.map +1 -0
  111. package/lib/typescript/specs/dsaKeyPair.nitro.d.ts +13 -0
  112. package/lib/typescript/specs/dsaKeyPair.nitro.d.ts.map +1 -0
  113. package/lib/typescript/specs/ecdh.nitro.d.ts +1 -0
  114. package/lib/typescript/specs/ecdh.nitro.d.ts.map +1 -1
  115. package/lib/typescript/specs/prime.nitro.d.ts +11 -0
  116. package/lib/typescript/specs/prime.nitro.d.ts.map +1 -0
  117. package/lib/typescript/subtle.d.ts +2 -0
  118. package/lib/typescript/subtle.d.ts.map +1 -1
  119. package/lib/typescript/utils/types.d.ts +13 -3
  120. package/lib/typescript/utils/types.d.ts.map +1 -1
  121. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +5 -0
  122. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +50 -0
  123. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +50 -0
  124. package/nitrogen/generated/shared/c++/CipherInfo.hpp +104 -0
  125. package/nitrogen/generated/shared/c++/HybridArgon2Spec.cpp +22 -0
  126. package/nitrogen/generated/shared/c++/HybridArgon2Spec.hpp +66 -0
  127. package/nitrogen/generated/shared/c++/HybridCertificateSpec.cpp +23 -0
  128. package/nitrogen/generated/shared/c++/HybridCertificateSpec.hpp +64 -0
  129. package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +1 -0
  130. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +4 -0
  131. package/nitrogen/generated/shared/c++/HybridDhKeyPairSpec.cpp +27 -0
  132. package/nitrogen/generated/shared/c++/HybridDhKeyPairSpec.hpp +69 -0
  133. package/nitrogen/generated/shared/c++/HybridDsaKeyPairSpec.cpp +26 -0
  134. package/nitrogen/generated/shared/c++/HybridDsaKeyPairSpec.hpp +68 -0
  135. package/nitrogen/generated/shared/c++/HybridECDHSpec.cpp +1 -0
  136. package/nitrogen/generated/shared/c++/HybridECDHSpec.hpp +1 -0
  137. package/nitrogen/generated/shared/c++/HybridPrimeSpec.cpp +24 -0
  138. package/nitrogen/generated/shared/c++/HybridPrimeSpec.hpp +67 -0
  139. package/package.json +1 -1
  140. package/src/argon2.ts +83 -0
  141. package/src/certificate.ts +41 -0
  142. package/src/cipher.ts +24 -0
  143. package/src/dhKeyPair.ts +156 -0
  144. package/src/dsa.ts +129 -0
  145. package/src/ecdh.ts +59 -0
  146. package/src/index.ts +9 -0
  147. package/src/keys/classes.ts +16 -5
  148. package/src/keys/generateKeyPair.ts +14 -0
  149. package/src/prime.ts +134 -0
  150. package/src/specs/argon2.nitro.ts +29 -0
  151. package/src/specs/certificate.nitro.ts +8 -0
  152. package/src/specs/cipher.nitro.ts +14 -0
  153. package/src/specs/dhKeyPair.nitro.ts +14 -0
  154. package/src/specs/dsaKeyPair.nitro.ts +13 -0
  155. package/src/specs/ecdh.nitro.ts +1 -0
  156. package/src/specs/prime.nitro.ts +18 -0
  157. package/src/subtle.ts +271 -12
  158. package/src/utils/types.ts +22 -3
@@ -0,0 +1,32 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+ #include <openssl/evp.h>
5
+
6
+ #include "HybridDsaKeyPairSpec.hpp"
7
+ #include "QuickCryptoUtils.hpp"
8
+
9
+ namespace margelo::nitro::crypto {
10
+
11
+ class HybridDsaKeyPair : public HybridDsaKeyPairSpec {
12
+ public:
13
+ HybridDsaKeyPair() : HybridObject(TAG) {}
14
+ ~HybridDsaKeyPair() override = default;
15
+
16
+ public:
17
+ std::shared_ptr<Promise<void>> generateKeyPair() override;
18
+ void generateKeyPairSync() override;
19
+ void setModulusLength(double modulusLength) override;
20
+ void setDivisorLength(double divisorLength) override;
21
+ std::shared_ptr<ArrayBuffer> getPublicKey() override;
22
+ std::shared_ptr<ArrayBuffer> getPrivateKey() override;
23
+
24
+ private:
25
+ int modulusLength_ = 0;
26
+ int divisorLength_ = -1;
27
+
28
+ using EVP_PKEY_ptr = std::unique_ptr<EVP_PKEY, decltype(&EVP_PKEY_free)>;
29
+ EVP_PKEY_ptr pkey_{nullptr, EVP_PKEY_free};
30
+ };
31
+
32
+ } // namespace margelo::nitro::crypto
@@ -284,6 +284,41 @@ void HybridECDH::setPublicKey(const std::shared_ptr<ArrayBuffer>& publicKey) {
284
284
  _pkey = std::move(pkey);
285
285
  }
286
286
 
287
+ std::shared_ptr<ArrayBuffer> HybridECDH::convertKey(const std::shared_ptr<ArrayBuffer>& key, const std::string& curve, double format) {
288
+ int nid = getCurveNid(curve);
289
+ if (nid == NID_undef) {
290
+ throw std::runtime_error("ECDH: unknown curve: " + curve);
291
+ }
292
+
293
+ EC_GROUP_ptr group(EC_GROUP_new_by_curve_name(nid), EC_GROUP_free);
294
+ if (!group) {
295
+ throw std::runtime_error("ECDH: failed to create EC group for curve: " + curve);
296
+ }
297
+
298
+ EC_POINT_ptr point(EC_POINT_new(group.get()), EC_POINT_free);
299
+ if (!point) {
300
+ throw std::runtime_error("ECDH: failed to create EC point");
301
+ }
302
+
303
+ if (EC_POINT_oct2point(group.get(), point.get(), key->data(), key->size(), nullptr) != 1) {
304
+ throw std::runtime_error("ECDH: failed to decode public key");
305
+ }
306
+
307
+ auto form = static_cast<point_conversion_form_t>(static_cast<int>(format));
308
+
309
+ size_t len = EC_POINT_point2oct(group.get(), point.get(), form, nullptr, 0, nullptr);
310
+ if (len == 0) {
311
+ throw std::runtime_error("ECDH: failed to get converted key length");
312
+ }
313
+
314
+ std::vector<uint8_t> buf(len);
315
+ if (EC_POINT_point2oct(group.get(), point.get(), form, buf.data(), len, nullptr) == 0) {
316
+ throw std::runtime_error("ECDH: failed to convert key");
317
+ }
318
+
319
+ return ToNativeArrayBuffer(buf);
320
+ }
321
+
287
322
  void HybridECDH::ensureInitialized() const {
288
323
  if (_curveNid == 0 || !_group) {
289
324
  throw std::runtime_error("ECDH: not initialized");
@@ -28,6 +28,7 @@ class HybridECDH : public HybridECDHSpec {
28
28
  void setPrivateKey(const std::shared_ptr<ArrayBuffer>& privateKey) override;
29
29
  std::shared_ptr<ArrayBuffer> getPublicKey() override;
30
30
  void setPublicKey(const std::shared_ptr<ArrayBuffer>& publicKey) override;
31
+ std::shared_ptr<ArrayBuffer> convertKey(const std::shared_ptr<ArrayBuffer>& key, const std::string& curve, double format) override;
31
32
 
32
33
  private:
33
34
  EVP_PKEY_ptr _pkey;
@@ -125,6 +125,25 @@ std::shared_ptr<ArrayBuffer> HybridKeyObjectHandle::exportKey(std::optional<KFor
125
125
  }
126
126
  }
127
127
 
128
+ // For EC keys, handle raw format (uncompressed point)
129
+ if (!format.has_value() && !type.has_value() && keyId == EVP_PKEY_EC && keyType == KeyType::PUBLIC) {
130
+ const EC_KEY* ec_key = EVP_PKEY_get0_EC_KEY(pkey.get());
131
+ if (!ec_key)
132
+ throw std::runtime_error("Failed to get EC key");
133
+ const EC_GROUP* group = EC_KEY_get0_group(ec_key);
134
+ const EC_POINT* point = EC_KEY_get0_public_key(ec_key);
135
+ if (!group || !point)
136
+ throw std::runtime_error("Failed to get EC public key");
137
+ size_t len = EC_POINT_point2oct(group, point, POINT_CONVERSION_UNCOMPRESSED, nullptr, 0, nullptr);
138
+ if (len == 0)
139
+ throw std::runtime_error("Failed to get EC point size");
140
+ std::vector<uint8_t> buf(len);
141
+ if (EC_POINT_point2oct(group, point, POINT_CONVERSION_UNCOMPRESSED, buf.data(), len, nullptr) == 0) {
142
+ throw std::runtime_error("Failed to encode EC public key");
143
+ }
144
+ return ToNativeArrayBuffer(std::string(reinterpret_cast<const char*>(buf.data()), buf.size()));
145
+ }
146
+
128
147
  // Set default format and type if not provided
129
148
  auto exportFormat = format.value_or(KFormatType::DER);
130
149
  auto exportType = type.value_or(keyType == KeyType::PUBLIC ? KeyEncoding::SPKI : KeyEncoding::PKCS8);
@@ -0,0 +1,81 @@
1
+ #include "HybridPrime.hpp"
2
+ #include "QuickCryptoUtils.hpp"
3
+ #include <ncrypto.h>
4
+
5
+ namespace margelo::nitro::crypto {
6
+
7
+ using namespace ncrypto;
8
+
9
+ static BignumPointer toBignum(const std::optional<std::shared_ptr<ArrayBuffer>>& buf) {
10
+ if (!buf.has_value() || buf.value()->size() == 0) {
11
+ return BignumPointer();
12
+ }
13
+ return BignumPointer(buf.value()->data(), buf.value()->size());
14
+ }
15
+
16
+ static std::shared_ptr<ArrayBuffer> generatePrimeImpl(double size, bool safe, const std::optional<std::shared_ptr<ArrayBuffer>>& add,
17
+ const std::optional<std::shared_ptr<ArrayBuffer>>& rem) {
18
+ int bits = static_cast<int>(size);
19
+
20
+ auto addBn = toBignum(add);
21
+ auto remBn = toBignum(rem);
22
+
23
+ BignumPointer::PrimeConfig config{bits, safe, addBn, remBn};
24
+ auto prime = BignumPointer::NewPrime(config);
25
+ if (!prime) {
26
+ throw std::runtime_error("Failed to generate prime");
27
+ }
28
+
29
+ auto encoded = prime.encode();
30
+ if (!encoded) {
31
+ throw std::runtime_error("Failed to encode prime");
32
+ }
33
+
34
+ return ToNativeArrayBuffer(encoded.get<uint8_t>(), encoded.size());
35
+ }
36
+
37
+ std::shared_ptr<Promise<std::shared_ptr<ArrayBuffer>>> HybridPrime::generatePrime(double size, bool safe,
38
+ const std::optional<std::shared_ptr<ArrayBuffer>>& add,
39
+ const std::optional<std::shared_ptr<ArrayBuffer>>& rem) {
40
+ auto addCopy = add.has_value() ? std::make_optional(ToNativeArrayBuffer(add.value())) : std::nullopt;
41
+ auto remCopy = rem.has_value() ? std::make_optional(ToNativeArrayBuffer(rem.value())) : std::nullopt;
42
+
43
+ return Promise<std::shared_ptr<ArrayBuffer>>::async([size, safe, addCopy = std::move(addCopy), remCopy = std::move(remCopy)]() {
44
+ return generatePrimeImpl(size, safe, addCopy, remCopy);
45
+ });
46
+ }
47
+
48
+ std::shared_ptr<ArrayBuffer> HybridPrime::generatePrimeSync(double size, bool safe, const std::optional<std::shared_ptr<ArrayBuffer>>& add,
49
+ const std::optional<std::shared_ptr<ArrayBuffer>>& rem) {
50
+ return generatePrimeImpl(size, safe, add, rem);
51
+ }
52
+
53
+ bool HybridPrime::checkPrimeSync(const std::shared_ptr<ArrayBuffer>& candidate, double checks) {
54
+ BignumPointer bn(candidate->data(), candidate->size());
55
+ if (!bn) {
56
+ throw std::runtime_error("Invalid candidate");
57
+ }
58
+
59
+ int result = bn.isPrime(static_cast<int>(checks));
60
+ if (result == -1) {
61
+ throw std::runtime_error("Prime check failed");
62
+ }
63
+ return result == 1;
64
+ }
65
+
66
+ std::shared_ptr<Promise<bool>> HybridPrime::checkPrime(const std::shared_ptr<ArrayBuffer>& candidate, double checks) {
67
+ auto candidateCopy = ToNativeArrayBuffer(candidate);
68
+ return Promise<bool>::async([candidateCopy, checks]() {
69
+ BignumPointer bn(candidateCopy->data(), candidateCopy->size());
70
+ if (!bn) {
71
+ throw std::runtime_error("Invalid candidate");
72
+ }
73
+ int result = bn.isPrime(static_cast<int>(checks));
74
+ if (result == -1) {
75
+ throw std::runtime_error("Prime check failed");
76
+ }
77
+ return result == 1;
78
+ });
79
+ }
80
+
81
+ } // namespace margelo::nitro::crypto
@@ -0,0 +1,20 @@
1
+ #pragma once
2
+
3
+ #include "HybridPrimeSpec.hpp"
4
+
5
+ namespace margelo::nitro::crypto {
6
+
7
+ class HybridPrime : public HybridPrimeSpec {
8
+ public:
9
+ HybridPrime() : HybridObject(TAG) {}
10
+
11
+ std::shared_ptr<Promise<std::shared_ptr<ArrayBuffer>>> generatePrime(double size, bool safe,
12
+ const std::optional<std::shared_ptr<ArrayBuffer>>& add,
13
+ const std::optional<std::shared_ptr<ArrayBuffer>>& rem) override;
14
+ std::shared_ptr<ArrayBuffer> generatePrimeSync(double size, bool safe, const std::optional<std::shared_ptr<ArrayBuffer>>& add,
15
+ const std::optional<std::shared_ptr<ArrayBuffer>>& rem) override;
16
+ std::shared_ptr<Promise<bool>> checkPrime(const std::shared_ptr<ArrayBuffer>& candidate, double checks) override;
17
+ bool checkPrimeSync(const std::shared_ptr<ArrayBuffer>& candidate, double checks) override;
18
+ };
19
+
20
+ } // namespace margelo::nitro::crypto
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.argon2 = argon2;
7
+ exports.argon2Sync = argon2Sync;
8
+ var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
9
+ var _reactNativeNitroModules = require("react-native-nitro-modules");
10
+ var _utils = require("./utils");
11
+ let native;
12
+ function getNative() {
13
+ if (native == null) {
14
+ native = _reactNativeNitroModules.NitroModules.createHybridObject('Argon2');
15
+ }
16
+ return native;
17
+ }
18
+ const ARGON2_VERSION = 0x13; // v1.3
19
+
20
+ function validateAlgorithm(algorithm) {
21
+ if (algorithm !== 'argon2d' && algorithm !== 'argon2i' && algorithm !== 'argon2id') {
22
+ throw new TypeError(`Unknown argon2 algorithm: ${algorithm}`);
23
+ }
24
+ }
25
+ function toAB(value) {
26
+ return (0, _utils.binaryLikeToArrayBuffer)(value);
27
+ }
28
+ function argon2Sync(algorithm, params) {
29
+ validateAlgorithm(algorithm);
30
+ const version = params.version ?? ARGON2_VERSION;
31
+ const result = getNative().hashSync(algorithm, toAB(params.message), toAB(params.nonce), params.parallelism, params.tagLength, params.memory, params.passes, version, params.secret ? toAB(params.secret) : undefined, params.associatedData ? toAB(params.associatedData) : undefined);
32
+ return _reactNativeBuffer.Buffer.from(result);
33
+ }
34
+ function argon2(algorithm, params, callback) {
35
+ validateAlgorithm(algorithm);
36
+ const version = params.version ?? ARGON2_VERSION;
37
+ getNative().hash(algorithm, toAB(params.message), toAB(params.nonce), params.parallelism, params.tagLength, params.memory, params.passes, version, params.secret ? toAB(params.secret) : undefined, params.associatedData ? toAB(params.associatedData) : undefined).then(ab => callback(null, _reactNativeBuffer.Buffer.from(ab))).catch(err => callback(err, _reactNativeBuffer.Buffer.alloc(0)));
38
+ }
39
+ //# sourceMappingURL=argon2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeBuffer","require","_reactNativeNitroModules","_utils","native","getNative","NitroModules","createHybridObject","ARGON2_VERSION","validateAlgorithm","algorithm","TypeError","toAB","value","binaryLikeToArrayBuffer","argon2Sync","params","version","result","hashSync","message","nonce","parallelism","tagLength","memory","passes","secret","undefined","associatedData","Buffer","from","argon2","callback","hash","then","ab","catch","err","alloc"],"sourceRoot":"../../src","sources":["argon2.ts"],"mappings":";;;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAGA,IAAIG,MAAoB;AACxB,SAASC,SAASA,CAAA,EAAiB;EACjC,IAAID,MAAM,IAAI,IAAI,EAAE;IAClBA,MAAM,GAAGE,qCAAY,CAACC,kBAAkB,CAAe,QAAQ,CAAC;EAClE;EACA,OAAOH,MAAM;AACf;AAcA,MAAMI,cAAc,GAAG,IAAI,CAAC,CAAC;;AAE7B,SAASC,iBAAiBA,CAACC,SAAiB,EAAQ;EAClD,IACEA,SAAS,KAAK,SAAS,IACvBA,SAAS,KAAK,SAAS,IACvBA,SAAS,KAAK,UAAU,EACxB;IACA,MAAM,IAAIC,SAAS,CAAC,6BAA6BD,SAAS,EAAE,CAAC;EAC/D;AACF;AAEA,SAASE,IAAIA,CAACC,KAAiB,EAAe;EAC5C,OAAO,IAAAC,8BAAuB,EAACD,KAAK,CAAC;AACvC;AAEO,SAASE,UAAUA,CAACL,SAAiB,EAAEM,MAAoB,EAAU;EAC1EP,iBAAiB,CAACC,SAAS,CAAC;EAC5B,MAAMO,OAAO,GAAGD,MAAM,CAACC,OAAO,IAAIT,cAAc;EAChD,MAAMU,MAAM,GAAGb,SAAS,CAAC,CAAC,CAACc,QAAQ,CACjCT,SAAS,EACTE,IAAI,CAACI,MAAM,CAACI,OAAO,CAAC,EACpBR,IAAI,CAACI,MAAM,CAACK,KAAK,CAAC,EAClBL,MAAM,CAACM,WAAW,EAClBN,MAAM,CAACO,SAAS,EAChBP,MAAM,CAACQ,MAAM,EACbR,MAAM,CAACS,MAAM,EACbR,OAAO,EACPD,MAAM,CAACU,MAAM,GAAGd,IAAI,CAACI,MAAM,CAACU,MAAM,CAAC,GAAGC,SAAS,EAC/CX,MAAM,CAACY,cAAc,GAAGhB,IAAI,CAACI,MAAM,CAACY,cAAc,CAAC,GAAGD,SACxD,CAAC;EACD,OAAOE,yBAAM,CAACC,IAAI,CAACZ,MAAM,CAAC;AAC5B;AAEO,SAASa,MAAMA,CACpBrB,SAAiB,EACjBM,MAAoB,EACpBgB,QAAqD,EAC/C;EACNvB,iBAAiB,CAACC,SAAS,CAAC;EAC5B,MAAMO,OAAO,GAAGD,MAAM,CAACC,OAAO,IAAIT,cAAc;EAChDH,SAAS,CAAC,CAAC,CACR4B,IAAI,CACHvB,SAAS,EACTE,IAAI,CAACI,MAAM,CAACI,OAAO,CAAC,EACpBR,IAAI,CAACI,MAAM,CAACK,KAAK,CAAC,EAClBL,MAAM,CAACM,WAAW,EAClBN,MAAM,CAACO,SAAS,EAChBP,MAAM,CAACQ,MAAM,EACbR,MAAM,CAACS,MAAM,EACbR,OAAO,EACPD,MAAM,CAACU,MAAM,GAAGd,IAAI,CAACI,MAAM,CAACU,MAAM,CAAC,GAAGC,SAAS,EAC/CX,MAAM,CAACY,cAAc,GAAGhB,IAAI,CAACI,MAAM,CAACY,cAAc,CAAC,GAAGD,SACxD,CAAC,CACAO,IAAI,CAACC,EAAE,IAAIH,QAAQ,CAAC,IAAI,EAAEH,yBAAM,CAACC,IAAI,CAACK,EAAE,CAAC,CAAC,CAAC,CAC3CC,KAAK,CAAEC,GAAU,IAAKL,QAAQ,CAACK,GAAG,EAAER,yBAAM,CAACS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Certificate = void 0;
7
+ var _reactNativeNitroModules = require("react-native-nitro-modules");
8
+ var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
9
+ var _utils = require("./utils");
10
+ let native;
11
+ function getNative() {
12
+ if (native == null) {
13
+ native = _reactNativeNitroModules.NitroModules.createHybridObject('Certificate');
14
+ }
15
+ return native;
16
+ }
17
+ function toArrayBuffer(spkac, encoding) {
18
+ if (typeof spkac === 'string') {
19
+ return (0, _utils.binaryLikeToArrayBuffer)(spkac, encoding || 'utf8');
20
+ }
21
+ return (0, _utils.binaryLikeToArrayBuffer)(spkac);
22
+ }
23
+ class Certificate {
24
+ static exportChallenge(spkac, encoding) {
25
+ return _reactNativeBuffer.Buffer.from(getNative().exportChallenge(toArrayBuffer(spkac, encoding)));
26
+ }
27
+ static exportPublicKey(spkac, encoding) {
28
+ return _reactNativeBuffer.Buffer.from(getNative().exportPublicKey(toArrayBuffer(spkac, encoding)));
29
+ }
30
+ static verifySpkac(spkac, encoding) {
31
+ return getNative().verifySpkac(toArrayBuffer(spkac, encoding));
32
+ }
33
+ }
34
+ exports.Certificate = Certificate;
35
+ //# sourceMappingURL=certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_utils","native","getNative","NitroModules","createHybridObject","toArrayBuffer","spkac","encoding","binaryLikeToArrayBuffer","Certificate","exportChallenge","Buffer","from","exportPublicKey","verifySpkac","exports"],"sourceRoot":"../../src","sources":["certificate.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAIG,MAAyB;AAC7B,SAASC,SAASA,CAAA,EAAsB;EACtC,IAAID,MAAM,IAAI,IAAI,EAAE;IAClBA,MAAM,GAAGE,qCAAY,CAACC,kBAAkB,CAAoB,aAAa,CAAC;EAC5E;EACA,OAAOH,MAAM;AACf;AAEA,SAASI,aAAaA,CACpBC,KAAiB,EACjBC,QAAyB,EACZ;EACb,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAO,IAAAE,8BAAuB,EAACF,KAAK,EAAEC,QAAQ,IAAI,MAAM,CAAC;EAC3D;EACA,OAAO,IAAAC,8BAAuB,EAACF,KAAK,CAAC;AACvC;AAEO,MAAMG,WAAW,CAAC;EACvB,OAAOC,eAAeA,CAACJ,KAAiB,EAAEC,QAAyB,EAAU;IAC3E,OAAOI,yBAAM,CAACC,IAAI,CAChBV,SAAS,CAAC,CAAC,CAACQ,eAAe,CAACL,aAAa,CAACC,KAAK,EAAEC,QAAQ,CAAC,CAC5D,CAAC;EACH;EAEA,OAAOM,eAAeA,CAACP,KAAiB,EAAEC,QAAyB,EAAU;IAC3E,OAAOI,yBAAM,CAACC,IAAI,CAChBV,SAAS,CAAC,CAAC,CAACW,eAAe,CAACR,aAAa,CAACC,KAAK,EAAEC,QAAQ,CAAC,CAC5D,CAAC;EACH;EAEA,OAAOO,WAAWA,CAACR,KAAiB,EAAEC,QAAyB,EAAW;IACxE,OAAOL,SAAS,CAAC,CAAC,CAACY,WAAW,CAACT,aAAa,CAACC,KAAK,EAAEC,QAAQ,CAAC,CAAC;EAChE;AACF;AAACQ,OAAA,CAAAN,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createCipheriv = createCipheriv;
7
7
  exports.createDecipheriv = createDecipheriv;
8
+ exports.getCipherInfo = getCipherInfo;
8
9
  exports.getCiphers = getCiphers;
9
10
  exports.xsalsa20 = xsalsa20;
10
11
  var _reactNativeNitroModules = require("react-native-nitro-modules");
@@ -20,10 +21,17 @@ class CipherUtils {
20
21
  static getSupportedCiphers() {
21
22
  return this.native.getSupportedCiphers();
22
23
  }
24
+ static getCipherInfo(name, keyLength, ivLength) {
25
+ return this.native.getCipherInfo(name, keyLength, ivLength);
26
+ }
23
27
  }
24
28
  function getCiphers() {
25
29
  return CipherUtils.getSupportedCiphers();
26
30
  }
31
+ function getCipherInfo(name, options) {
32
+ if (typeof name !== 'string' || name.length === 0) return undefined;
33
+ return CipherUtils.getCipherInfo(name, options?.keyLength, options?.ivLength);
34
+ }
27
35
  class CipherCommon extends _readableStream.default.Transform {
28
36
  constructor({
29
37
  isCipher,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_readableStream","_interopRequireDefault","_reactNativeBuffer","_utils","_cipher","e","__esModule","default","CipherUtils","native","NitroModules","createHybridObject","getSupportedCiphers","getCiphers","CipherCommon","Stream","Transform","constructor","isCipher","cipherType","cipherKey","iv","options","streamOptions","transformKeys","key","authTagLen","getUIntOption","factory","createCipher","binaryLikeToArrayBuffer","update","data","inputEncoding","outputEncoding","defaultEncoding","getDefaultEncoding","validateEncoding","ArrayBuffer","isView","Error","ret","ab2str","Buffer","from","final","_transform","chunk","encoding","callback","push","normalizeEncoding","_flush","setAutoPadding","autoPadding","res","setAAD","buffer","plaintextLength","getAuthTag","setAuthTag","tag","Cipheriv","Decipheriv","createDecipheriv","algorithm","createCipheriv","xsalsa20","nonce","output","counter","result","Uint8Array"],"sourceRoot":"../../src","sources":["cipher.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_readableStream","_interopRequireDefault","_reactNativeBuffer","_utils","_cipher","e","__esModule","default","CipherUtils","native","NitroModules","createHybridObject","getSupportedCiphers","getCipherInfo","name","keyLength","ivLength","getCiphers","options","length","undefined","CipherCommon","Stream","Transform","constructor","isCipher","cipherType","cipherKey","iv","streamOptions","transformKeys","key","authTagLen","getUIntOption","factory","createCipher","binaryLikeToArrayBuffer","update","data","inputEncoding","outputEncoding","defaultEncoding","getDefaultEncoding","validateEncoding","ArrayBuffer","isView","Error","ret","ab2str","Buffer","from","final","_transform","chunk","encoding","callback","push","normalizeEncoding","_flush","setAutoPadding","autoPadding","res","setAAD","buffer","plaintextLength","getAuthTag","setAuthTag","tag","Cipheriv","Decipheriv","createDecipheriv","algorithm","createCipheriv","xsalsa20","nonce","output","counter","result","Uint8Array"],"sourceRoot":"../../src","sources":["cipher.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DhKeyPairGen = void 0;
7
+ exports.dh_generateKeyPairNode = dh_generateKeyPairNode;
8
+ exports.dh_generateKeyPairNodeSync = dh_generateKeyPairNodeSync;
9
+ var _reactNativeNitroModules = require("react-native-nitro-modules");
10
+ var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
11
+ var _keys = require("./keys");
12
+ var _utils = require("./utils");
13
+ var _dhGroups = require("./dh-groups");
14
+ class DhKeyPairGen {
15
+ constructor(options) {
16
+ this.native = _reactNativeNitroModules.NitroModules.createHybridObject('DhKeyPair');
17
+ const {
18
+ groupName,
19
+ prime,
20
+ primeLength,
21
+ generator
22
+ } = options;
23
+ if (groupName) {
24
+ // Resolve named group to prime + generator
25
+ const group = _dhGroups.DH_GROUPS[groupName];
26
+ if (!group) {
27
+ throw new Error(`Unknown DH group: ${groupName}`);
28
+ }
29
+ const primeBuf = _reactNativeBuffer.Buffer.from(group.prime, 'hex');
30
+ this.native.setPrime(primeBuf.buffer.slice(primeBuf.byteOffset, primeBuf.byteOffset + primeBuf.byteLength));
31
+ const gen = parseInt(group.generator, 16);
32
+ this.native.setGenerator(gen);
33
+ } else if (prime) {
34
+ // Custom prime as Buffer
35
+ const primeBuf = _reactNativeBuffer.Buffer.from(prime);
36
+ this.native.setPrime(primeBuf.buffer.slice(primeBuf.byteOffset, primeBuf.byteOffset + primeBuf.byteLength));
37
+ this.native.setGenerator(generator ?? 2);
38
+ } else if (primeLength) {
39
+ this.native.setPrimeLength(primeLength);
40
+ this.native.setGenerator(generator ?? 2);
41
+ } else {
42
+ throw new Error('DH key generation requires one of: groupName, prime, or primeLength');
43
+ }
44
+ }
45
+ async generateKeyPair() {
46
+ await this.native.generateKeyPair();
47
+ }
48
+ generateKeyPairSync() {
49
+ this.native.generateKeyPairSync();
50
+ }
51
+ }
52
+ exports.DhKeyPairGen = DhKeyPairGen;
53
+ function dh_prepareKeyGenParams(options) {
54
+ if (!options) {
55
+ throw new Error('Options are required for DH key generation');
56
+ }
57
+ return new DhKeyPairGen(options);
58
+ }
59
+ function dh_formatKeyPairOutput(dh, encoding) {
60
+ const {
61
+ publicFormat,
62
+ privateFormat,
63
+ cipher,
64
+ passphrase
65
+ } = encoding;
66
+ const publicKeyData = dh.native.getPublicKey();
67
+ const privateKeyData = dh.native.getPrivateKey();
68
+ const pub = _keys.KeyObject.createKeyObject('public', publicKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
69
+ const priv = _keys.KeyObject.createKeyObject('private', privateKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
70
+ let publicKey;
71
+ let privateKey;
72
+ if (publicFormat === -1) {
73
+ publicKey = pub;
74
+ } else {
75
+ const format = publicFormat === _utils.KFormatType.PEM ? _utils.KFormatType.PEM : _utils.KFormatType.DER;
76
+ const exported = pub.handle.exportKey(format, _utils.KeyEncoding.SPKI);
77
+ if (format === _utils.KFormatType.PEM) {
78
+ publicKey = _reactNativeBuffer.Buffer.from(new Uint8Array(exported)).toString('utf-8');
79
+ } else {
80
+ publicKey = exported;
81
+ }
82
+ }
83
+ if (privateFormat === -1) {
84
+ privateKey = priv;
85
+ } else {
86
+ const format = privateFormat === _utils.KFormatType.PEM ? _utils.KFormatType.PEM : _utils.KFormatType.DER;
87
+ const exported = priv.handle.exportKey(format, _utils.KeyEncoding.PKCS8, cipher, passphrase);
88
+ if (format === _utils.KFormatType.PEM) {
89
+ privateKey = _reactNativeBuffer.Buffer.from(new Uint8Array(exported)).toString('utf-8');
90
+ } else {
91
+ privateKey = exported;
92
+ }
93
+ }
94
+ return {
95
+ publicKey,
96
+ privateKey
97
+ };
98
+ }
99
+ async function dh_generateKeyPairNode(options, encoding) {
100
+ const dh = dh_prepareKeyGenParams(options);
101
+ await dh.generateKeyPair();
102
+ return dh_formatKeyPairOutput(dh, encoding);
103
+ }
104
+ function dh_generateKeyPairNodeSync(options, encoding) {
105
+ const dh = dh_prepareKeyGenParams(options);
106
+ dh.generateKeyPairSync();
107
+ return dh_formatKeyPairOutput(dh, encoding);
108
+ }
109
+ //# sourceMappingURL=dhKeyPair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_keys","_utils","_dhGroups","DhKeyPairGen","constructor","options","native","NitroModules","createHybridObject","groupName","prime","primeLength","generator","group","DH_GROUPS","Error","primeBuf","Buffer","from","setPrime","buffer","slice","byteOffset","byteLength","gen","parseInt","setGenerator","setPrimeLength","generateKeyPair","generateKeyPairSync","exports","dh_prepareKeyGenParams","dh_formatKeyPairOutput","dh","encoding","publicFormat","privateFormat","cipher","passphrase","publicKeyData","getPublicKey","privateKeyData","getPrivateKey","pub","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","priv","PKCS8","publicKey","privateKey","format","PEM","exported","handle","exportKey","Uint8Array","toString","dh_generateKeyPairNode","dh_generateKeyPairNodeSync"],"sourceRoot":"../../src","sources":["dhKeyPair.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Dsa = void 0;
7
+ exports.dsa_generateKeyPairNode = dsa_generateKeyPairNode;
8
+ exports.dsa_generateKeyPairNodeSync = dsa_generateKeyPairNodeSync;
9
+ var _reactNativeNitroModules = require("react-native-nitro-modules");
10
+ var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
11
+ var _keys = require("./keys");
12
+ var _utils = require("./utils");
13
+ class Dsa {
14
+ constructor(modulusLength, divisorLength) {
15
+ this.native = _reactNativeNitroModules.NitroModules.createHybridObject('DsaKeyPair');
16
+ this.native.setModulusLength(modulusLength);
17
+ if (divisorLength !== undefined && divisorLength >= 0) {
18
+ this.native.setDivisorLength(divisorLength);
19
+ }
20
+ }
21
+ async generateKeyPair() {
22
+ await this.native.generateKeyPair();
23
+ }
24
+ generateKeyPairSync() {
25
+ this.native.generateKeyPairSync();
26
+ }
27
+ }
28
+ exports.Dsa = Dsa;
29
+ function dsa_prepareKeyGenParams(options) {
30
+ if (!options) {
31
+ throw new Error('Options are required for DSA key generation');
32
+ }
33
+ const {
34
+ modulusLength,
35
+ divisorLength
36
+ } = options;
37
+ if (!modulusLength || modulusLength <= 0) {
38
+ throw new Error('Invalid or missing modulusLength for DSA key generation');
39
+ }
40
+ return new Dsa(modulusLength, divisorLength);
41
+ }
42
+ function dsa_formatKeyPairOutput(dsa, encoding) {
43
+ const {
44
+ publicFormat,
45
+ privateFormat,
46
+ cipher,
47
+ passphrase
48
+ } = encoding;
49
+ const publicKeyData = dsa.native.getPublicKey();
50
+ const privateKeyData = dsa.native.getPrivateKey();
51
+ const pub = _keys.KeyObject.createKeyObject('public', publicKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
52
+ const priv = _keys.KeyObject.createKeyObject('private', privateKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
53
+ let publicKey;
54
+ let privateKey;
55
+ if (publicFormat === -1) {
56
+ publicKey = pub;
57
+ } else {
58
+ const format = publicFormat === _utils.KFormatType.PEM ? _utils.KFormatType.PEM : _utils.KFormatType.DER;
59
+ const exported = pub.handle.exportKey(format, _utils.KeyEncoding.SPKI);
60
+ if (format === _utils.KFormatType.PEM) {
61
+ publicKey = _reactNativeBuffer.Buffer.from(new Uint8Array(exported)).toString('utf-8');
62
+ } else {
63
+ publicKey = exported;
64
+ }
65
+ }
66
+ if (privateFormat === -1) {
67
+ privateKey = priv;
68
+ } else {
69
+ const format = privateFormat === _utils.KFormatType.PEM ? _utils.KFormatType.PEM : _utils.KFormatType.DER;
70
+ const exported = priv.handle.exportKey(format, _utils.KeyEncoding.PKCS8, cipher, passphrase);
71
+ if (format === _utils.KFormatType.PEM) {
72
+ privateKey = _reactNativeBuffer.Buffer.from(new Uint8Array(exported)).toString('utf-8');
73
+ } else {
74
+ privateKey = exported;
75
+ }
76
+ }
77
+ return {
78
+ publicKey,
79
+ privateKey
80
+ };
81
+ }
82
+ async function dsa_generateKeyPairNode(options, encoding) {
83
+ const dsa = dsa_prepareKeyGenParams(options);
84
+ await dsa.generateKeyPair();
85
+ return dsa_formatKeyPairOutput(dsa, encoding);
86
+ }
87
+ function dsa_generateKeyPairNodeSync(options, encoding) {
88
+ const dsa = dsa_prepareKeyGenParams(options);
89
+ dsa.generateKeyPairSync();
90
+ return dsa_formatKeyPairOutput(dsa, encoding);
91
+ }
92
+ //# sourceMappingURL=dsa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_keys","_utils","Dsa","constructor","modulusLength","divisorLength","native","NitroModules","createHybridObject","setModulusLength","undefined","setDivisorLength","generateKeyPair","generateKeyPairSync","exports","dsa_prepareKeyGenParams","options","Error","dsa_formatKeyPairOutput","dsa","encoding","publicFormat","privateFormat","cipher","passphrase","publicKeyData","getPublicKey","privateKeyData","getPrivateKey","pub","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","priv","PKCS8","publicKey","privateKey","format","PEM","exported","handle","exportKey","Buffer","from","Uint8Array","toString","dsa_generateKeyPairNode","dsa_generateKeyPairNodeSync"],"sourceRoot":"../../src","sources":["dsa.ts"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,16 @@ exports.ECDH = void 0;
7
7
  exports.createECDH = createECDH;
8
8
  var _reactNativeNitroModules = require("react-native-nitro-modules");
9
9
  var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
10
+ const POINT_CONVERSION_COMPRESSED = 2;
11
+ const POINT_CONVERSION_UNCOMPRESSED = 4;
12
+ const POINT_CONVERSION_HYBRID = 6;
10
13
  class ECDH {
14
+ static get convertKeyHybrid() {
15
+ if (!this._convertKeyHybrid) {
16
+ this._convertKeyHybrid = _reactNativeNitroModules.NitroModules.createHybridObject('ECDH');
17
+ }
18
+ return this._convertKeyHybrid;
19
+ }
11
20
  constructor(curveName) {
12
21
  this._hybrid = _reactNativeNitroModules.NitroModules.createHybridObject('ECDH');
13
22
  this._hybrid.init(curveName);
@@ -63,6 +72,34 @@ class ECDH {
63
72
  }
64
73
  this._hybrid.setPublicKey(keyBuf.buffer);
65
74
  }
75
+ static convertKey(key, curve, inputEncoding, outputEncoding, format) {
76
+ let keyBuf;
77
+ if (_reactNativeBuffer.Buffer.isBuffer(key)) {
78
+ keyBuf = key;
79
+ } else {
80
+ keyBuf = _reactNativeBuffer.Buffer.from(key, inputEncoding);
81
+ }
82
+ let formatNum;
83
+ switch (format) {
84
+ case 'compressed':
85
+ formatNum = POINT_CONVERSION_COMPRESSED;
86
+ break;
87
+ case 'hybrid':
88
+ formatNum = POINT_CONVERSION_HYBRID;
89
+ break;
90
+ case 'uncompressed':
91
+ case undefined:
92
+ formatNum = POINT_CONVERSION_UNCOMPRESSED;
93
+ break;
94
+ default:
95
+ throw new TypeError(`Invalid point conversion format: ${format}`);
96
+ }
97
+ const result = _reactNativeBuffer.Buffer.from(ECDH.convertKeyHybrid.convertKey(keyBuf.buffer, curve, formatNum));
98
+ if (outputEncoding) {
99
+ return result.toString(outputEncoding);
100
+ }
101
+ return result;
102
+ }
66
103
  }
67
104
  exports.ECDH = ECDH;
68
105
  function createECDH(curveName) {