react-native-quick-crypto 1.0.9 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/QuickCrypto.podspec +9 -2
  2. package/README.md +13 -9
  3. package/android/CMakeLists.txt +4 -0
  4. package/cpp/cipher/HybridCipherFactory.hpp +15 -1
  5. package/cpp/cipher/OCBCipher.cpp +4 -4
  6. package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +161 -0
  7. package/cpp/cipher/XChaCha20Poly1305Cipher.hpp +43 -0
  8. package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +145 -0
  9. package/cpp/cipher/XSalsa20Poly1305Cipher.hpp +42 -0
  10. package/cpp/dh/HybridDiffieHellman.cpp +10 -0
  11. package/cpp/dh/HybridDiffieHellman.hpp +1 -0
  12. package/cpp/ec/HybridEcKeyPair.cpp +21 -0
  13. package/cpp/ec/HybridEcKeyPair.hpp +1 -0
  14. package/cpp/hash/HybridHash.cpp +1 -1
  15. package/cpp/hash/HybridHash.hpp +1 -1
  16. package/cpp/hmac/HybridHmac.cpp +1 -1
  17. package/cpp/hmac/HybridHmac.hpp +1 -1
  18. package/cpp/keys/HybridKeyObjectHandle.cpp +112 -1
  19. package/cpp/keys/HybridKeyObjectHandle.hpp +5 -1
  20. package/deps/ncrypto/.bazelrc +0 -1
  21. package/deps/ncrypto/.bazelversion +1 -1
  22. package/deps/ncrypto/.github/workflows/commitlint.yml +16 -0
  23. package/deps/ncrypto/.github/workflows/linter.yml +2 -2
  24. package/deps/ncrypto/.github/workflows/release-please.yml +16 -0
  25. package/deps/ncrypto/.github/workflows/ubuntu.yml +82 -0
  26. package/deps/ncrypto/.release-please-manifest.json +3 -0
  27. package/deps/ncrypto/BUILD.bazel +9 -1
  28. package/deps/ncrypto/CHANGELOG.md +37 -0
  29. package/deps/ncrypto/CMakeLists.txt +35 -11
  30. package/deps/ncrypto/MODULE.bazel +16 -1
  31. package/deps/ncrypto/MODULE.bazel.lock +299 -118
  32. package/deps/ncrypto/cmake/ncrypto-flags.cmake +1 -0
  33. package/deps/ncrypto/include/ncrypto/aead.h +137 -0
  34. package/deps/ncrypto/include/ncrypto/version.h +14 -0
  35. package/deps/ncrypto/include/ncrypto.h +85 -230
  36. package/deps/ncrypto/ncrypto.pc.in +10 -0
  37. package/deps/ncrypto/release-please-config.json +11 -0
  38. package/deps/ncrypto/src/CMakeLists.txt +31 -6
  39. package/deps/ncrypto/src/aead.cpp +302 -0
  40. package/deps/ncrypto/src/ncrypto.cpp +274 -556
  41. package/deps/ncrypto/tests/BUILD.bazel +2 -0
  42. package/deps/ncrypto/tests/basic.cpp +772 -2
  43. package/deps/ncrypto/tools/run-clang-format.sh +5 -5
  44. package/lib/commonjs/diffie-hellman.js +4 -1
  45. package/lib/commonjs/diffie-hellman.js.map +1 -1
  46. package/lib/commonjs/ec.js +20 -25
  47. package/lib/commonjs/ec.js.map +1 -1
  48. package/lib/commonjs/ed.js +1 -2
  49. package/lib/commonjs/ed.js.map +1 -1
  50. package/lib/commonjs/hash.js +7 -0
  51. package/lib/commonjs/hash.js.map +1 -1
  52. package/lib/commonjs/index.js +11 -1
  53. package/lib/commonjs/index.js.map +1 -1
  54. package/lib/commonjs/keys/classes.js +9 -5
  55. package/lib/commonjs/keys/classes.js.map +1 -1
  56. package/lib/commonjs/subtle.js +82 -31
  57. package/lib/commonjs/subtle.js.map +1 -1
  58. package/lib/commonjs/utils/types.js.map +1 -1
  59. package/lib/module/diffie-hellman.js +4 -0
  60. package/lib/module/diffie-hellman.js.map +1 -1
  61. package/lib/module/ec.js +19 -25
  62. package/lib/module/ec.js.map +1 -1
  63. package/lib/module/ed.js +1 -2
  64. package/lib/module/ed.js.map +1 -1
  65. package/lib/module/hash.js +6 -0
  66. package/lib/module/hash.js.map +1 -1
  67. package/lib/module/index.js +3 -0
  68. package/lib/module/index.js.map +1 -1
  69. package/lib/module/keys/classes.js +9 -5
  70. package/lib/module/keys/classes.js.map +1 -1
  71. package/lib/module/subtle.js +83 -32
  72. package/lib/module/subtle.js.map +1 -1
  73. package/lib/module/utils/types.js.map +1 -1
  74. package/lib/tsconfig.tsbuildinfo +1 -1
  75. package/lib/typescript/diffie-hellman.d.ts +2 -0
  76. package/lib/typescript/diffie-hellman.d.ts.map +1 -1
  77. package/lib/typescript/ec.d.ts +1 -0
  78. package/lib/typescript/ec.d.ts.map +1 -1
  79. package/lib/typescript/ed.d.ts.map +1 -1
  80. package/lib/typescript/hash.d.ts +2 -0
  81. package/lib/typescript/hash.d.ts.map +1 -1
  82. package/lib/typescript/index.d.ts +5 -0
  83. package/lib/typescript/index.d.ts.map +1 -1
  84. package/lib/typescript/keys/classes.d.ts +2 -0
  85. package/lib/typescript/keys/classes.d.ts.map +1 -1
  86. package/lib/typescript/specs/diffie-hellman.nitro.d.ts +1 -0
  87. package/lib/typescript/specs/diffie-hellman.nitro.d.ts.map +1 -1
  88. package/lib/typescript/specs/ecKeyPair.nitro.d.ts +1 -0
  89. package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -1
  90. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +2 -0
  91. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
  92. package/lib/typescript/subtle.d.ts.map +1 -1
  93. package/lib/typescript/utils/types.d.ts +12 -5
  94. package/lib/typescript/utils/types.d.ts.map +1 -1
  95. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +8 -5
  96. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +1 -1
  97. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +54 -54
  98. package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +1 -1
  99. package/nitrogen/generated/android/kotlin/com/margelo/nitro/crypto/QuickCryptoOnLoad.kt +1 -1
  100. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +2 -2
  101. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +1 -1
  102. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +1 -1
  103. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +1 -1
  104. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +54 -54
  105. package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +5 -1
  106. package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +1 -1
  107. package/nitrogen/generated/shared/c++/CipherArgs.hpp +34 -19
  108. package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +1 -1
  109. package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +1 -3
  110. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.cpp +1 -1
  111. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +1 -1
  112. package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +1 -1
  113. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +1 -3
  114. package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.cpp +2 -1
  115. package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.hpp +3 -3
  116. package/nitrogen/generated/shared/c++/HybridECDHSpec.cpp +1 -1
  117. package/nitrogen/generated/shared/c++/HybridECDHSpec.hpp +2 -3
  118. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +2 -1
  119. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +2 -3
  120. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +1 -1
  121. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +2 -3
  122. package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +1 -1
  123. package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +2 -4
  124. package/nitrogen/generated/shared/c++/HybridHkdfSpec.cpp +1 -1
  125. package/nitrogen/generated/shared/c++/HybridHkdfSpec.hpp +2 -3
  126. package/nitrogen/generated/shared/c++/HybridHmacSpec.cpp +1 -1
  127. package/nitrogen/generated/shared/c++/HybridHmacSpec.hpp +3 -4
  128. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +3 -1
  129. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +8 -4
  130. package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.cpp +1 -1
  131. package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.hpp +2 -3
  132. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +1 -1
  133. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +2 -3
  134. package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +1 -1
  135. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +2 -3
  136. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.cpp +1 -1
  137. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.hpp +1 -3
  138. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +1 -1
  139. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +1 -3
  140. package/nitrogen/generated/shared/c++/HybridScryptSpec.cpp +1 -1
  141. package/nitrogen/generated/shared/c++/HybridScryptSpec.hpp +2 -3
  142. package/nitrogen/generated/shared/c++/HybridSignHandleSpec.cpp +1 -1
  143. package/nitrogen/generated/shared/c++/HybridSignHandleSpec.hpp +1 -3
  144. package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +1 -1
  145. package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +2 -3
  146. package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.cpp +1 -1
  147. package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.hpp +1 -3
  148. package/nitrogen/generated/shared/c++/JWK.hpp +84 -68
  149. package/nitrogen/generated/shared/c++/JWKkty.hpp +5 -1
  150. package/nitrogen/generated/shared/c++/JWKuse.hpp +1 -1
  151. package/nitrogen/generated/shared/c++/KFormatType.hpp +1 -1
  152. package/nitrogen/generated/shared/c++/KeyDetail.hpp +39 -23
  153. package/nitrogen/generated/shared/c++/KeyEncoding.hpp +1 -1
  154. package/nitrogen/generated/shared/c++/KeyObject.hpp +21 -5
  155. package/nitrogen/generated/shared/c++/KeyType.hpp +1 -1
  156. package/nitrogen/generated/shared/c++/KeyUsage.hpp +1 -1
  157. package/nitrogen/generated/shared/c++/NamedCurve.hpp +1 -1
  158. package/package.json +1 -1
  159. package/src/diffie-hellman.ts +6 -0
  160. package/src/ec.ts +23 -19
  161. package/src/ed.ts +1 -2
  162. package/src/hash.ts +11 -0
  163. package/src/index.ts +3 -0
  164. package/src/keys/classes.ts +10 -3
  165. package/src/specs/diffie-hellman.nitro.ts +1 -0
  166. package/src/specs/ecKeyPair.nitro.ts +2 -0
  167. package/src/specs/keyObjectHandle.nitro.ts +2 -0
  168. package/src/subtle.ts +131 -32
  169. package/src/utils/types.ts +18 -3
  170. package/deps/ncrypto/WORKSPACE +0 -15
@@ -2,7 +2,7 @@
2
2
  /// HybridHmacSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,7 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
16
+
18
17
 
19
18
  #include <string>
20
19
  #include <NitroModules/ArrayBuffer.hpp>
@@ -52,7 +51,7 @@ namespace margelo::nitro::crypto {
52
51
  public:
53
52
  // Methods
54
53
  virtual void createHmac(const std::string& algorithm, const std::shared_ptr<ArrayBuffer>& key) = 0;
55
- virtual void update(const std::variant<std::string, std::shared_ptr<ArrayBuffer>>& data) = 0;
54
+ virtual void update(const std::variant<std::shared_ptr<ArrayBuffer>, std::string>& data) = 0;
56
55
  virtual std::shared_ptr<ArrayBuffer> digest() = 0;
57
56
 
58
57
  protected:
@@ -2,7 +2,7 @@
2
2
  /// HybridKeyObjectHandleSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridKeyObjectHandleSpec.hpp"
@@ -21,6 +21,8 @@ namespace margelo::nitro::crypto {
21
21
  prototype.registerHybridMethod("initECRaw", &HybridKeyObjectHandleSpec::initECRaw);
22
22
  prototype.registerHybridMethod("initJwk", &HybridKeyObjectHandleSpec::initJwk);
23
23
  prototype.registerHybridMethod("keyDetail", &HybridKeyObjectHandleSpec::keyDetail);
24
+ prototype.registerHybridMethod("keyEquals", &HybridKeyObjectHandleSpec::keyEquals);
25
+ prototype.registerHybridMethod("getSymmetricKeySize", &HybridKeyObjectHandleSpec::getSymmetricKeySize);
24
26
  });
25
27
  }
26
28
 
@@ -2,7 +2,7 @@
2
2
  /// HybridKeyObjectHandleSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,6 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
18
16
  // Forward declaration of `KFormatType` to properly resolve imports.
19
17
  namespace margelo::nitro::crypto { enum class KFormatType; }
20
18
  // Forward declaration of `KeyEncoding` to properly resolve imports.
@@ -29,6 +27,8 @@ namespace margelo::nitro::crypto { enum class KeyType; }
29
27
  namespace margelo::nitro::crypto { enum class NamedCurve; }
30
28
  // Forward declaration of `KeyDetail` to properly resolve imports.
31
29
  namespace margelo::nitro::crypto { struct KeyDetail; }
30
+ // Forward declaration of `HybridKeyObjectHandleSpec` to properly resolve imports.
31
+ namespace margelo::nitro::crypto { class HybridKeyObjectHandleSpec; }
32
32
 
33
33
  #include <NitroModules/ArrayBuffer.hpp>
34
34
  #include "KFormatType.hpp"
@@ -41,6 +41,8 @@ namespace margelo::nitro::crypto { struct KeyDetail; }
41
41
  #include <variant>
42
42
  #include "NamedCurve.hpp"
43
43
  #include "KeyDetail.hpp"
44
+ #include <memory>
45
+ #include "HybridKeyObjectHandleSpec.hpp"
44
46
 
45
47
  namespace margelo::nitro::crypto {
46
48
 
@@ -76,10 +78,12 @@ namespace margelo::nitro::crypto {
76
78
  virtual std::shared_ptr<ArrayBuffer> exportKey(std::optional<KFormatType> format, std::optional<KeyEncoding> type, const std::optional<std::string>& cipher, const std::optional<std::shared_ptr<ArrayBuffer>>& passphrase) = 0;
77
79
  virtual JWK exportJwk(const JWK& key, bool handleRsaPss) = 0;
78
80
  virtual AsymmetricKeyType getAsymmetricKeyType() = 0;
79
- virtual bool init(KeyType keyType, const std::variant<std::string, std::shared_ptr<ArrayBuffer>>& key, std::optional<KFormatType> format, std::optional<KeyEncoding> type, const std::optional<std::shared_ptr<ArrayBuffer>>& passphrase) = 0;
81
+ virtual bool init(KeyType keyType, const std::variant<std::shared_ptr<ArrayBuffer>, std::string>& key, std::optional<KFormatType> format, std::optional<KeyEncoding> type, const std::optional<std::shared_ptr<ArrayBuffer>>& passphrase) = 0;
80
82
  virtual bool initECRaw(const std::string& namedCurve, const std::shared_ptr<ArrayBuffer>& keyData) = 0;
81
83
  virtual std::optional<KeyType> initJwk(const JWK& keyData, std::optional<NamedCurve> namedCurve) = 0;
82
84
  virtual KeyDetail keyDetail() = 0;
85
+ virtual bool keyEquals(const std::shared_ptr<HybridKeyObjectHandleSpec>& other) = 0;
86
+ virtual double getSymmetricKeySize() = 0;
83
87
 
84
88
  protected:
85
89
  // Hybrid Setup
@@ -2,7 +2,7 @@
2
2
  /// HybridMlDsaKeyPairSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridMlDsaKeyPairSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridMlDsaKeyPairSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,7 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
16
+
18
17
 
19
18
  #include <NitroModules/Promise.hpp>
20
19
  #include <NitroModules/ArrayBuffer.hpp>
@@ -2,7 +2,7 @@
2
2
  /// HybridPbkdf2Spec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridPbkdf2Spec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridPbkdf2Spec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,7 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
16
+
18
17
 
19
18
  #include <NitroModules/ArrayBuffer.hpp>
20
19
  #include <NitroModules/Promise.hpp>
@@ -2,7 +2,7 @@
2
2
  /// HybridRandomSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridRandomSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridRandomSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,7 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
16
+
18
17
 
19
18
  #include <NitroModules/ArrayBuffer.hpp>
20
19
  #include <NitroModules/Promise.hpp>
@@ -2,7 +2,7 @@
2
2
  /// HybridRsaCipherSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridRsaCipherSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridRsaCipherSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,6 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
18
16
  // Forward declaration of `HybridKeyObjectHandleSpec` to properly resolve imports.
19
17
  namespace margelo::nitro::crypto { class HybridKeyObjectHandleSpec; }
20
18
 
@@ -2,7 +2,7 @@
2
2
  /// HybridRsaKeyPairSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridRsaKeyPairSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridRsaKeyPairSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,6 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
18
16
  // Forward declaration of `KeyObject` to properly resolve imports.
19
17
  namespace margelo::nitro::crypto { struct KeyObject; }
20
18
 
@@ -2,7 +2,7 @@
2
2
  /// HybridScryptSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridScryptSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridScryptSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,7 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
16
+
18
17
 
19
18
  #include <NitroModules/ArrayBuffer.hpp>
20
19
  #include <NitroModules/Promise.hpp>
@@ -2,7 +2,7 @@
2
2
  /// HybridSignHandleSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridSignHandleSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridSignHandleSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,6 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
18
16
  // Forward declaration of `HybridKeyObjectHandleSpec` to properly resolve imports.
19
17
  namespace margelo::nitro::crypto { class HybridKeyObjectHandleSpec; }
20
18
 
@@ -2,7 +2,7 @@
2
2
  /// HybridUtilsSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridUtilsSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridUtilsSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,7 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
16
+
18
17
 
19
18
  #include <NitroModules/ArrayBuffer.hpp>
20
19
 
@@ -2,7 +2,7 @@
2
2
  /// HybridVerifyHandleSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridVerifyHandleSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridVerifyHandleSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,8 +13,6 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
- namespace NitroModules { class ArrayBuffer; }
18
16
  // Forward declaration of `HybridKeyObjectHandleSpec` to properly resolve imports.
19
17
  namespace margelo::nitro::crypto { class HybridKeyObjectHandleSpec; }
20
18
 
@@ -2,7 +2,7 @@
2
2
  /// JWK.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -17,6 +17,16 @@
17
17
  #else
18
18
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
19
  #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
20
30
 
21
31
  // Forward declaration of `JWKkty` to properly resolve imports.
22
32
  namespace margelo::nitro::crypto { enum class JWKkty; }
@@ -37,7 +47,7 @@ namespace margelo::nitro::crypto {
37
47
  /**
38
48
  * A struct which can be represented as a JavaScript object (JWK).
39
49
  */
40
- struct JWK {
50
+ struct JWK final {
41
51
  public:
42
52
  std::optional<JWKkty> kty SWIFT_PRIVATE;
43
53
  std::optional<JWKuse> use SWIFT_PRIVATE;
@@ -65,6 +75,9 @@ namespace margelo::nitro::crypto {
65
75
  public:
66
76
  JWK() = default;
67
77
  explicit JWK(std::optional<JWKkty> kty, std::optional<JWKuse> use, std::optional<std::vector<KeyUsage>> key_ops, std::optional<std::string> alg, std::optional<std::string> crv, std::optional<std::string> kid, std::optional<std::string> x5u, std::optional<std::vector<std::string>> x5c, std::optional<std::string> x5t, std::optional<std::string> x5t_256, std::optional<std::string> n, std::optional<std::string> e, std::optional<std::string> d, std::optional<std::string> p, std::optional<std::string> q, std::optional<std::string> x, std::optional<std::string> y, std::optional<std::string> k, std::optional<std::string> dp, std::optional<std::string> dq, std::optional<std::string> qi, std::optional<bool> ext): kty(kty), use(use), key_ops(key_ops), alg(alg), crv(crv), kid(kid), x5u(x5u), x5c(x5c), x5t(x5t), x5t_256(x5t_256), n(n), e(e), d(d), p(p), q(q), x(x), y(y), k(k), dp(dp), dq(dq), qi(qi), ext(ext) {}
78
+
79
+ public:
80
+ friend bool operator==(const JWK& lhs, const JWK& rhs) = default;
68
81
  };
69
82
 
70
83
  } // namespace margelo::nitro::crypto
@@ -77,54 +90,54 @@ namespace margelo::nitro {
77
90
  static inline margelo::nitro::crypto::JWK fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
78
91
  jsi::Object obj = arg.asObject(runtime);
79
92
  return margelo::nitro::crypto::JWK(
80
- JSIConverter<std::optional<margelo::nitro::crypto::JWKkty>>::fromJSI(runtime, obj.getProperty(runtime, "kty")),
81
- JSIConverter<std::optional<margelo::nitro::crypto::JWKuse>>::fromJSI(runtime, obj.getProperty(runtime, "use")),
82
- JSIConverter<std::optional<std::vector<margelo::nitro::crypto::KeyUsage>>>::fromJSI(runtime, obj.getProperty(runtime, "key_ops")),
83
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "alg")),
84
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "crv")),
85
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "kid")),
86
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "x5u")),
87
- JSIConverter<std::optional<std::vector<std::string>>>::fromJSI(runtime, obj.getProperty(runtime, "x5c")),
88
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "x5t")),
89
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "x5t#256")),
90
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "n")),
91
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "e")),
92
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "d")),
93
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "p")),
94
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "q")),
95
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "x")),
96
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "y")),
97
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "k")),
98
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "dp")),
99
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "dq")),
100
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "qi")),
101
- JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "ext"))
93
+ JSIConverter<std::optional<margelo::nitro::crypto::JWKkty>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "kty"))),
94
+ JSIConverter<std::optional<margelo::nitro::crypto::JWKuse>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "use"))),
95
+ JSIConverter<std::optional<std::vector<margelo::nitro::crypto::KeyUsage>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "key_ops"))),
96
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "alg"))),
97
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "crv"))),
98
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "kid"))),
99
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x5u"))),
100
+ JSIConverter<std::optional<std::vector<std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x5c"))),
101
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x5t"))),
102
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x5t#256"))),
103
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "n"))),
104
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "e"))),
105
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "d"))),
106
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "p"))),
107
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "q"))),
108
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x"))),
109
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "y"))),
110
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "k"))),
111
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "dp"))),
112
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "dq"))),
113
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "qi"))),
114
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "ext")))
102
115
  );
103
116
  }
104
117
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::crypto::JWK& arg) {
105
118
  jsi::Object obj(runtime);
106
- obj.setProperty(runtime, "kty", JSIConverter<std::optional<margelo::nitro::crypto::JWKkty>>::toJSI(runtime, arg.kty));
107
- obj.setProperty(runtime, "use", JSIConverter<std::optional<margelo::nitro::crypto::JWKuse>>::toJSI(runtime, arg.use));
108
- obj.setProperty(runtime, "key_ops", JSIConverter<std::optional<std::vector<margelo::nitro::crypto::KeyUsage>>>::toJSI(runtime, arg.key_ops));
109
- obj.setProperty(runtime, "alg", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.alg));
110
- obj.setProperty(runtime, "crv", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.crv));
111
- obj.setProperty(runtime, "kid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.kid));
112
- obj.setProperty(runtime, "x5u", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.x5u));
113
- obj.setProperty(runtime, "x5c", JSIConverter<std::optional<std::vector<std::string>>>::toJSI(runtime, arg.x5c));
114
- obj.setProperty(runtime, "x5t", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.x5t));
115
- obj.setProperty(runtime, "x5t#256", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.x5t_256));
116
- obj.setProperty(runtime, "n", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.n));
117
- obj.setProperty(runtime, "e", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.e));
118
- obj.setProperty(runtime, "d", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.d));
119
- obj.setProperty(runtime, "p", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.p));
120
- obj.setProperty(runtime, "q", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.q));
121
- obj.setProperty(runtime, "x", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.x));
122
- obj.setProperty(runtime, "y", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.y));
123
- obj.setProperty(runtime, "k", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.k));
124
- obj.setProperty(runtime, "dp", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.dp));
125
- obj.setProperty(runtime, "dq", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.dq));
126
- obj.setProperty(runtime, "qi", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.qi));
127
- obj.setProperty(runtime, "ext", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.ext));
119
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "kty"), JSIConverter<std::optional<margelo::nitro::crypto::JWKkty>>::toJSI(runtime, arg.kty));
120
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "use"), JSIConverter<std::optional<margelo::nitro::crypto::JWKuse>>::toJSI(runtime, arg.use));
121
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "key_ops"), JSIConverter<std::optional<std::vector<margelo::nitro::crypto::KeyUsage>>>::toJSI(runtime, arg.key_ops));
122
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "alg"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.alg));
123
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "crv"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.crv));
124
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "kid"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.kid));
125
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "x5u"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.x5u));
126
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "x5c"), JSIConverter<std::optional<std::vector<std::string>>>::toJSI(runtime, arg.x5c));
127
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "x5t"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.x5t));
128
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "x5t#256"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.x5t_256));
129
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "n"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.n));
130
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "e"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.e));
131
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "d"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.d));
132
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "p"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.p));
133
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "q"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.q));
134
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "x"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.x));
135
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "y"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.y));
136
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "k"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.k));
137
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "dp"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.dp));
138
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "dq"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.dq));
139
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "qi"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.qi));
140
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "ext"), JSIConverter<std::optional<bool>>::toJSI(runtime, arg.ext));
128
141
  return obj;
129
142
  }
130
143
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -132,28 +145,31 @@ namespace margelo::nitro {
132
145
  return false;
133
146
  }
134
147
  jsi::Object obj = value.getObject(runtime);
135
- if (!JSIConverter<std::optional<margelo::nitro::crypto::JWKkty>>::canConvert(runtime, obj.getProperty(runtime, "kty"))) return false;
136
- if (!JSIConverter<std::optional<margelo::nitro::crypto::JWKuse>>::canConvert(runtime, obj.getProperty(runtime, "use"))) return false;
137
- if (!JSIConverter<std::optional<std::vector<margelo::nitro::crypto::KeyUsage>>>::canConvert(runtime, obj.getProperty(runtime, "key_ops"))) return false;
138
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "alg"))) return false;
139
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "crv"))) return false;
140
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "kid"))) return false;
141
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "x5u"))) return false;
142
- if (!JSIConverter<std::optional<std::vector<std::string>>>::canConvert(runtime, obj.getProperty(runtime, "x5c"))) return false;
143
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "x5t"))) return false;
144
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "x5t#256"))) return false;
145
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "n"))) return false;
146
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "e"))) return false;
147
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "d"))) return false;
148
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "p"))) return false;
149
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "q"))) return false;
150
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "x"))) return false;
151
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "y"))) return false;
152
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "k"))) return false;
153
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "dp"))) return false;
154
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "dq"))) return false;
155
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "qi"))) return false;
156
- if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "ext"))) return false;
148
+ if (!nitro::isPlainObject(runtime, obj)) {
149
+ return false;
150
+ }
151
+ if (!JSIConverter<std::optional<margelo::nitro::crypto::JWKkty>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "kty")))) return false;
152
+ if (!JSIConverter<std::optional<margelo::nitro::crypto::JWKuse>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "use")))) return false;
153
+ if (!JSIConverter<std::optional<std::vector<margelo::nitro::crypto::KeyUsage>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "key_ops")))) return false;
154
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "alg")))) return false;
155
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "crv")))) return false;
156
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "kid")))) return false;
157
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x5u")))) return false;
158
+ if (!JSIConverter<std::optional<std::vector<std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x5c")))) return false;
159
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x5t")))) return false;
160
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x5t#256")))) return false;
161
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "n")))) return false;
162
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "e")))) return false;
163
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "d")))) return false;
164
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "p")))) return false;
165
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "q")))) return false;
166
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "x")))) return false;
167
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "y")))) return false;
168
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "k")))) return false;
169
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "dp")))) return false;
170
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "dq")))) return false;
171
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "qi")))) return false;
172
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "ext")))) return false;
157
173
  return true;
158
174
  }
159
175
  };
@@ -2,7 +2,7 @@
2
2
  /// JWKkty.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -33,6 +33,7 @@ namespace margelo::nitro::crypto {
33
33
  RSA SWIFT_NAME(rsa) = 1,
34
34
  EC SWIFT_NAME(ec) = 2,
35
35
  OCT SWIFT_NAME(oct) = 3,
36
+ OKP SWIFT_NAME(okp) = 4,
36
37
  } CLOSED_ENUM;
37
38
 
38
39
  } // namespace margelo::nitro::crypto
@@ -49,6 +50,7 @@ namespace margelo::nitro {
49
50
  case hashString("RSA"): return margelo::nitro::crypto::JWKkty::RSA;
50
51
  case hashString("EC"): return margelo::nitro::crypto::JWKkty::EC;
51
52
  case hashString("oct"): return margelo::nitro::crypto::JWKkty::OCT;
53
+ case hashString("OKP"): return margelo::nitro::crypto::JWKkty::OKP;
52
54
  default: [[unlikely]]
53
55
  throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum JWKkty - invalid value!");
54
56
  }
@@ -59,6 +61,7 @@ namespace margelo::nitro {
59
61
  case margelo::nitro::crypto::JWKkty::RSA: return JSIConverter<std::string>::toJSI(runtime, "RSA");
60
62
  case margelo::nitro::crypto::JWKkty::EC: return JSIConverter<std::string>::toJSI(runtime, "EC");
61
63
  case margelo::nitro::crypto::JWKkty::OCT: return JSIConverter<std::string>::toJSI(runtime, "oct");
64
+ case margelo::nitro::crypto::JWKkty::OKP: return JSIConverter<std::string>::toJSI(runtime, "OKP");
62
65
  default: [[unlikely]]
63
66
  throw std::invalid_argument("Cannot convert JWKkty to JS - invalid value: "
64
67
  + std::to_string(static_cast<int>(arg)) + "!");
@@ -74,6 +77,7 @@ namespace margelo::nitro {
74
77
  case hashString("RSA"):
75
78
  case hashString("EC"):
76
79
  case hashString("oct"):
80
+ case hashString("OKP"):
77
81
  return true;
78
82
  default:
79
83
  return false;
@@ -2,7 +2,7 @@
2
2
  /// JWKuse.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once