react-native-quick-crypto 1.0.8 → 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 (171) hide show
  1. package/QuickCrypto.podspec +56 -6
  2. package/README.md +17 -11
  3. package/android/CMakeLists.txt +4 -0
  4. package/android/build.gradle +3 -0
  5. package/cpp/cipher/HybridCipherFactory.hpp +15 -1
  6. package/cpp/cipher/OCBCipher.cpp +4 -4
  7. package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +161 -0
  8. package/cpp/cipher/XChaCha20Poly1305Cipher.hpp +43 -0
  9. package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +145 -0
  10. package/cpp/cipher/XSalsa20Poly1305Cipher.hpp +42 -0
  11. package/cpp/dh/HybridDiffieHellman.cpp +10 -0
  12. package/cpp/dh/HybridDiffieHellman.hpp +1 -0
  13. package/cpp/ec/HybridEcKeyPair.cpp +21 -0
  14. package/cpp/ec/HybridEcKeyPair.hpp +1 -0
  15. package/cpp/hash/HybridHash.cpp +1 -1
  16. package/cpp/hash/HybridHash.hpp +1 -1
  17. package/cpp/hmac/HybridHmac.cpp +1 -1
  18. package/cpp/hmac/HybridHmac.hpp +1 -1
  19. package/cpp/keys/HybridKeyObjectHandle.cpp +112 -1
  20. package/cpp/keys/HybridKeyObjectHandle.hpp +5 -1
  21. package/deps/ncrypto/.bazelrc +0 -1
  22. package/deps/ncrypto/.bazelversion +1 -1
  23. package/deps/ncrypto/.github/workflows/commitlint.yml +16 -0
  24. package/deps/ncrypto/.github/workflows/linter.yml +2 -2
  25. package/deps/ncrypto/.github/workflows/release-please.yml +16 -0
  26. package/deps/ncrypto/.github/workflows/ubuntu.yml +82 -0
  27. package/deps/ncrypto/.release-please-manifest.json +3 -0
  28. package/deps/ncrypto/BUILD.bazel +9 -1
  29. package/deps/ncrypto/CHANGELOG.md +37 -0
  30. package/deps/ncrypto/CMakeLists.txt +35 -11
  31. package/deps/ncrypto/MODULE.bazel +16 -1
  32. package/deps/ncrypto/MODULE.bazel.lock +299 -118
  33. package/deps/ncrypto/cmake/ncrypto-flags.cmake +1 -0
  34. package/deps/ncrypto/include/ncrypto/aead.h +137 -0
  35. package/deps/ncrypto/include/ncrypto/version.h +14 -0
  36. package/deps/ncrypto/include/ncrypto.h +85 -230
  37. package/deps/ncrypto/ncrypto.pc.in +10 -0
  38. package/deps/ncrypto/release-please-config.json +11 -0
  39. package/deps/ncrypto/src/CMakeLists.txt +31 -6
  40. package/deps/ncrypto/src/aead.cpp +302 -0
  41. package/deps/ncrypto/src/ncrypto.cpp +274 -556
  42. package/deps/ncrypto/tests/BUILD.bazel +2 -0
  43. package/deps/ncrypto/tests/basic.cpp +772 -2
  44. package/deps/ncrypto/tools/run-clang-format.sh +5 -5
  45. package/lib/commonjs/diffie-hellman.js +4 -1
  46. package/lib/commonjs/diffie-hellman.js.map +1 -1
  47. package/lib/commonjs/ec.js +20 -25
  48. package/lib/commonjs/ec.js.map +1 -1
  49. package/lib/commonjs/ed.js +1 -2
  50. package/lib/commonjs/ed.js.map +1 -1
  51. package/lib/commonjs/hash.js +7 -0
  52. package/lib/commonjs/hash.js.map +1 -1
  53. package/lib/commonjs/index.js +24 -2
  54. package/lib/commonjs/index.js.map +1 -1
  55. package/lib/commonjs/keys/classes.js +9 -5
  56. package/lib/commonjs/keys/classes.js.map +1 -1
  57. package/lib/commonjs/subtle.js +82 -31
  58. package/lib/commonjs/subtle.js.map +1 -1
  59. package/lib/commonjs/utils/types.js.map +1 -1
  60. package/lib/module/diffie-hellman.js +4 -0
  61. package/lib/module/diffie-hellman.js.map +1 -1
  62. package/lib/module/ec.js +19 -25
  63. package/lib/module/ec.js.map +1 -1
  64. package/lib/module/ed.js +1 -2
  65. package/lib/module/ed.js.map +1 -1
  66. package/lib/module/hash.js +6 -0
  67. package/lib/module/hash.js.map +1 -1
  68. package/lib/module/index.js +10 -1
  69. package/lib/module/index.js.map +1 -1
  70. package/lib/module/keys/classes.js +9 -5
  71. package/lib/module/keys/classes.js.map +1 -1
  72. package/lib/module/subtle.js +83 -32
  73. package/lib/module/subtle.js.map +1 -1
  74. package/lib/module/utils/types.js.map +1 -1
  75. package/lib/tsconfig.tsbuildinfo +1 -1
  76. package/lib/typescript/diffie-hellman.d.ts +2 -0
  77. package/lib/typescript/diffie-hellman.d.ts.map +1 -1
  78. package/lib/typescript/ec.d.ts +1 -0
  79. package/lib/typescript/ec.d.ts.map +1 -1
  80. package/lib/typescript/ed.d.ts.map +1 -1
  81. package/lib/typescript/hash.d.ts +2 -0
  82. package/lib/typescript/hash.d.ts.map +1 -1
  83. package/lib/typescript/index.d.ts +7 -0
  84. package/lib/typescript/index.d.ts.map +1 -1
  85. package/lib/typescript/keys/classes.d.ts +2 -0
  86. package/lib/typescript/keys/classes.d.ts.map +1 -1
  87. package/lib/typescript/specs/diffie-hellman.nitro.d.ts +1 -0
  88. package/lib/typescript/specs/diffie-hellman.nitro.d.ts.map +1 -1
  89. package/lib/typescript/specs/ecKeyPair.nitro.d.ts +1 -0
  90. package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -1
  91. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +2 -0
  92. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
  93. package/lib/typescript/subtle.d.ts.map +1 -1
  94. package/lib/typescript/utils/types.d.ts +12 -5
  95. package/lib/typescript/utils/types.d.ts.map +1 -1
  96. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +8 -5
  97. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +1 -1
  98. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +54 -54
  99. package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +1 -1
  100. package/nitrogen/generated/android/kotlin/com/margelo/nitro/crypto/QuickCryptoOnLoad.kt +1 -1
  101. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +2 -2
  102. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +1 -1
  103. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +1 -1
  104. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +1 -1
  105. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +54 -54
  106. package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +5 -1
  107. package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +1 -1
  108. package/nitrogen/generated/shared/c++/CipherArgs.hpp +34 -19
  109. package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +1 -1
  110. package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +1 -3
  111. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.cpp +1 -1
  112. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +1 -1
  113. package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +1 -1
  114. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +1 -3
  115. package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.cpp +2 -1
  116. package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.hpp +3 -3
  117. package/nitrogen/generated/shared/c++/HybridECDHSpec.cpp +1 -1
  118. package/nitrogen/generated/shared/c++/HybridECDHSpec.hpp +2 -3
  119. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +2 -1
  120. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +2 -3
  121. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +1 -1
  122. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +2 -3
  123. package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +1 -1
  124. package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +2 -4
  125. package/nitrogen/generated/shared/c++/HybridHkdfSpec.cpp +1 -1
  126. package/nitrogen/generated/shared/c++/HybridHkdfSpec.hpp +2 -3
  127. package/nitrogen/generated/shared/c++/HybridHmacSpec.cpp +1 -1
  128. package/nitrogen/generated/shared/c++/HybridHmacSpec.hpp +3 -4
  129. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +3 -1
  130. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +8 -4
  131. package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.cpp +1 -1
  132. package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.hpp +2 -3
  133. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +1 -1
  134. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +2 -3
  135. package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +1 -1
  136. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +2 -3
  137. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.cpp +1 -1
  138. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.hpp +1 -3
  139. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +1 -1
  140. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +1 -3
  141. package/nitrogen/generated/shared/c++/HybridScryptSpec.cpp +1 -1
  142. package/nitrogen/generated/shared/c++/HybridScryptSpec.hpp +2 -3
  143. package/nitrogen/generated/shared/c++/HybridSignHandleSpec.cpp +1 -1
  144. package/nitrogen/generated/shared/c++/HybridSignHandleSpec.hpp +1 -3
  145. package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +1 -1
  146. package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +2 -3
  147. package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.cpp +1 -1
  148. package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.hpp +1 -3
  149. package/nitrogen/generated/shared/c++/JWK.hpp +84 -68
  150. package/nitrogen/generated/shared/c++/JWKkty.hpp +5 -1
  151. package/nitrogen/generated/shared/c++/JWKuse.hpp +1 -1
  152. package/nitrogen/generated/shared/c++/KFormatType.hpp +1 -1
  153. package/nitrogen/generated/shared/c++/KeyDetail.hpp +39 -23
  154. package/nitrogen/generated/shared/c++/KeyEncoding.hpp +1 -1
  155. package/nitrogen/generated/shared/c++/KeyObject.hpp +21 -5
  156. package/nitrogen/generated/shared/c++/KeyType.hpp +1 -1
  157. package/nitrogen/generated/shared/c++/KeyUsage.hpp +1 -1
  158. package/nitrogen/generated/shared/c++/NamedCurve.hpp +1 -1
  159. package/package.json +10 -7
  160. package/src/diffie-hellman.ts +6 -0
  161. package/src/ec.ts +23 -19
  162. package/src/ed.ts +1 -2
  163. package/src/hash.ts +11 -0
  164. package/src/index.ts +9 -0
  165. package/src/keys/classes.ts +10 -3
  166. package/src/specs/diffie-hellman.nitro.ts +1 -0
  167. package/src/specs/ecKeyPair.nitro.ts +2 -0
  168. package/src/specs/keyObjectHandle.nitro.ts +2 -0
  169. package/src/subtle.ts +131 -32
  170. package/src/utils/types.ts +18 -3
  171. package/deps/ncrypto/WORKSPACE +0 -15
@@ -2,7 +2,7 @@
2
2
  /// QuickCrypto-Swift-Cxx-Bridge.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
@@ -2,7 +2,7 @@
2
2
  /// QuickCrypto-Swift-Cxx-Umbrella.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
@@ -2,7 +2,7 @@
2
2
  /// QuickCryptoAutolinking.mm
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
  #import <Foundation/Foundation.h>
@@ -13,23 +13,23 @@
13
13
  #include "HybridBlake3.hpp"
14
14
  #include "HybridCipher.hpp"
15
15
  #include "HybridCipherFactory.hpp"
16
+ #include "HybridDiffieHellman.hpp"
17
+ #include "HybridECDH.hpp"
16
18
  #include "HybridEcKeyPair.hpp"
17
19
  #include "HybridEdKeyPair.hpp"
18
20
  #include "HybridHash.hpp"
19
- #include "HybridHmac.hpp"
20
21
  #include "HybridHkdf.hpp"
22
+ #include "HybridHmac.hpp"
21
23
  #include "HybridKeyObjectHandle.hpp"
24
+ #include "HybridMlDsaKeyPair.hpp"
22
25
  #include "HybridPbkdf2.hpp"
23
26
  #include "HybridRandom.hpp"
24
27
  #include "HybridRsaCipher.hpp"
25
28
  #include "HybridRsaKeyPair.hpp"
26
- #include "HybridSignHandle.hpp"
27
- #include "HybridVerifyHandle.hpp"
28
- #include "HybridMlDsaKeyPair.hpp"
29
29
  #include "HybridScrypt.hpp"
30
+ #include "HybridSignHandle.hpp"
30
31
  #include "HybridUtils.hpp"
31
- #include "HybridECDH.hpp"
32
- #include "HybridDiffieHellman.hpp"
32
+ #include "HybridVerifyHandle.hpp"
33
33
 
34
34
  @interface QuickCryptoAutolinking : NSObject
35
35
  @end
@@ -67,6 +67,24 @@
67
67
  return std::make_shared<HybridCipherFactory>();
68
68
  }
69
69
  );
70
+ HybridObjectRegistry::registerHybridObjectConstructor(
71
+ "DiffieHellman",
72
+ []() -> std::shared_ptr<HybridObject> {
73
+ static_assert(std::is_default_constructible_v<HybridDiffieHellman>,
74
+ "The HybridObject \"HybridDiffieHellman\" is not default-constructible! "
75
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
76
+ return std::make_shared<HybridDiffieHellman>();
77
+ }
78
+ );
79
+ HybridObjectRegistry::registerHybridObjectConstructor(
80
+ "ECDH",
81
+ []() -> std::shared_ptr<HybridObject> {
82
+ static_assert(std::is_default_constructible_v<HybridECDH>,
83
+ "The HybridObject \"HybridECDH\" is not default-constructible! "
84
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
85
+ return std::make_shared<HybridECDH>();
86
+ }
87
+ );
70
88
  HybridObjectRegistry::registerHybridObjectConstructor(
71
89
  "EcKeyPair",
72
90
  []() -> std::shared_ptr<HybridObject> {
@@ -95,21 +113,21 @@
95
113
  }
96
114
  );
97
115
  HybridObjectRegistry::registerHybridObjectConstructor(
98
- "Hmac",
116
+ "Hkdf",
99
117
  []() -> std::shared_ptr<HybridObject> {
100
- static_assert(std::is_default_constructible_v<HybridHmac>,
101
- "The HybridObject \"HybridHmac\" is not default-constructible! "
118
+ static_assert(std::is_default_constructible_v<HybridHkdf>,
119
+ "The HybridObject \"HybridHkdf\" is not default-constructible! "
102
120
  "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
103
- return std::make_shared<HybridHmac>();
121
+ return std::make_shared<HybridHkdf>();
104
122
  }
105
123
  );
106
124
  HybridObjectRegistry::registerHybridObjectConstructor(
107
- "Hkdf",
125
+ "Hmac",
108
126
  []() -> std::shared_ptr<HybridObject> {
109
- static_assert(std::is_default_constructible_v<HybridHkdf>,
110
- "The HybridObject \"HybridHkdf\" is not default-constructible! "
127
+ static_assert(std::is_default_constructible_v<HybridHmac>,
128
+ "The HybridObject \"HybridHmac\" is not default-constructible! "
111
129
  "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
112
- return std::make_shared<HybridHkdf>();
130
+ return std::make_shared<HybridHmac>();
113
131
  }
114
132
  );
115
133
  HybridObjectRegistry::registerHybridObjectConstructor(
@@ -121,6 +139,15 @@
121
139
  return std::make_shared<HybridKeyObjectHandle>();
122
140
  }
123
141
  );
142
+ HybridObjectRegistry::registerHybridObjectConstructor(
143
+ "MlDsaKeyPair",
144
+ []() -> std::shared_ptr<HybridObject> {
145
+ static_assert(std::is_default_constructible_v<HybridMlDsaKeyPair>,
146
+ "The HybridObject \"HybridMlDsaKeyPair\" is not default-constructible! "
147
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
148
+ return std::make_shared<HybridMlDsaKeyPair>();
149
+ }
150
+ );
124
151
  HybridObjectRegistry::registerHybridObjectConstructor(
125
152
  "Pbkdf2",
126
153
  []() -> std::shared_ptr<HybridObject> {
@@ -157,33 +184,6 @@
157
184
  return std::make_shared<HybridRsaKeyPair>();
158
185
  }
159
186
  );
160
- HybridObjectRegistry::registerHybridObjectConstructor(
161
- "SignHandle",
162
- []() -> std::shared_ptr<HybridObject> {
163
- static_assert(std::is_default_constructible_v<HybridSignHandle>,
164
- "The HybridObject \"HybridSignHandle\" is not default-constructible! "
165
- "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
166
- return std::make_shared<HybridSignHandle>();
167
- }
168
- );
169
- HybridObjectRegistry::registerHybridObjectConstructor(
170
- "VerifyHandle",
171
- []() -> std::shared_ptr<HybridObject> {
172
- static_assert(std::is_default_constructible_v<HybridVerifyHandle>,
173
- "The HybridObject \"HybridVerifyHandle\" is not default-constructible! "
174
- "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
175
- return std::make_shared<HybridVerifyHandle>();
176
- }
177
- );
178
- HybridObjectRegistry::registerHybridObjectConstructor(
179
- "MlDsaKeyPair",
180
- []() -> std::shared_ptr<HybridObject> {
181
- static_assert(std::is_default_constructible_v<HybridMlDsaKeyPair>,
182
- "The HybridObject \"HybridMlDsaKeyPair\" is not default-constructible! "
183
- "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
184
- return std::make_shared<HybridMlDsaKeyPair>();
185
- }
186
- );
187
187
  HybridObjectRegistry::registerHybridObjectConstructor(
188
188
  "Scrypt",
189
189
  []() -> std::shared_ptr<HybridObject> {
@@ -194,30 +194,30 @@
194
194
  }
195
195
  );
196
196
  HybridObjectRegistry::registerHybridObjectConstructor(
197
- "Utils",
197
+ "SignHandle",
198
198
  []() -> std::shared_ptr<HybridObject> {
199
- static_assert(std::is_default_constructible_v<HybridUtils>,
200
- "The HybridObject \"HybridUtils\" is not default-constructible! "
199
+ static_assert(std::is_default_constructible_v<HybridSignHandle>,
200
+ "The HybridObject \"HybridSignHandle\" is not default-constructible! "
201
201
  "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
202
- return std::make_shared<HybridUtils>();
202
+ return std::make_shared<HybridSignHandle>();
203
203
  }
204
204
  );
205
205
  HybridObjectRegistry::registerHybridObjectConstructor(
206
- "ECDH",
206
+ "Utils",
207
207
  []() -> std::shared_ptr<HybridObject> {
208
- static_assert(std::is_default_constructible_v<HybridECDH>,
209
- "The HybridObject \"HybridECDH\" is not default-constructible! "
208
+ static_assert(std::is_default_constructible_v<HybridUtils>,
209
+ "The HybridObject \"HybridUtils\" is not default-constructible! "
210
210
  "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
211
- return std::make_shared<HybridECDH>();
211
+ return std::make_shared<HybridUtils>();
212
212
  }
213
213
  );
214
214
  HybridObjectRegistry::registerHybridObjectConstructor(
215
- "DiffieHellman",
215
+ "VerifyHandle",
216
216
  []() -> std::shared_ptr<HybridObject> {
217
- static_assert(std::is_default_constructible_v<HybridDiffieHellman>,
218
- "The HybridObject \"HybridDiffieHellman\" is not default-constructible! "
217
+ static_assert(std::is_default_constructible_v<HybridVerifyHandle>,
218
+ "The HybridObject \"HybridVerifyHandle\" is not default-constructible! "
219
219
  "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
220
- return std::make_shared<HybridDiffieHellman>();
220
+ return std::make_shared<HybridVerifyHandle>();
221
221
  }
222
222
  );
223
223
  }
@@ -2,9 +2,13 @@
2
2
  /// QuickCryptoAutolinking.swift
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
+ import NitroModules
9
+
10
+ // TODO: Use empty enums once Swift supports exporting them as namespaces
11
+ // See: https://github.com/swiftlang/swift/pull/83616
8
12
  public final class QuickCryptoAutolinking {
9
13
  public typealias bridge = margelo.nitro.crypto.bridge.swift
10
14
 
@@ -2,7 +2,7 @@
2
2
  /// AsymmetricKeyType.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
@@ -2,7 +2,7 @@
2
2
  /// CipherArgs.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,9 +17,18 @@
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
30
+
20
31
 
21
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
22
- namespace NitroModules { class ArrayBuffer; }
23
32
 
24
33
  #include <string>
25
34
  #include <NitroModules/ArrayBuffer.hpp>
@@ -30,7 +39,7 @@ namespace margelo::nitro::crypto {
30
39
  /**
31
40
  * A struct which can be represented as a JavaScript object (CipherArgs).
32
41
  */
33
- struct CipherArgs {
42
+ struct CipherArgs final {
34
43
  public:
35
44
  bool isCipher SWIFT_PRIVATE;
36
45
  std::string cipherType SWIFT_PRIVATE;
@@ -41,6 +50,9 @@ namespace margelo::nitro::crypto {
41
50
  public:
42
51
  CipherArgs() = default;
43
52
  explicit CipherArgs(bool isCipher, std::string cipherType, std::shared_ptr<ArrayBuffer> cipherKey, std::shared_ptr<ArrayBuffer> iv, std::optional<double> authTagLen): isCipher(isCipher), cipherType(cipherType), cipherKey(cipherKey), iv(iv), authTagLen(authTagLen) {}
53
+
54
+ public:
55
+ friend bool operator==(const CipherArgs& lhs, const CipherArgs& rhs) = default;
44
56
  };
45
57
 
46
58
  } // namespace margelo::nitro::crypto
@@ -53,20 +65,20 @@ namespace margelo::nitro {
53
65
  static inline margelo::nitro::crypto::CipherArgs fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
54
66
  jsi::Object obj = arg.asObject(runtime);
55
67
  return margelo::nitro::crypto::CipherArgs(
56
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isCipher")),
57
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cipherType")),
58
- JSIConverter<std::shared_ptr<ArrayBuffer>>::fromJSI(runtime, obj.getProperty(runtime, "cipherKey")),
59
- JSIConverter<std::shared_ptr<ArrayBuffer>>::fromJSI(runtime, obj.getProperty(runtime, "iv")),
60
- JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "authTagLen"))
68
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isCipher"))),
69
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "cipherType"))),
70
+ JSIConverter<std::shared_ptr<ArrayBuffer>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "cipherKey"))),
71
+ JSIConverter<std::shared_ptr<ArrayBuffer>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "iv"))),
72
+ JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "authTagLen")))
61
73
  );
62
74
  }
63
75
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::crypto::CipherArgs& arg) {
64
76
  jsi::Object obj(runtime);
65
- obj.setProperty(runtime, "isCipher", JSIConverter<bool>::toJSI(runtime, arg.isCipher));
66
- obj.setProperty(runtime, "cipherType", JSIConverter<std::string>::toJSI(runtime, arg.cipherType));
67
- obj.setProperty(runtime, "cipherKey", JSIConverter<std::shared_ptr<ArrayBuffer>>::toJSI(runtime, arg.cipherKey));
68
- obj.setProperty(runtime, "iv", JSIConverter<std::shared_ptr<ArrayBuffer>>::toJSI(runtime, arg.iv));
69
- obj.setProperty(runtime, "authTagLen", JSIConverter<std::optional<double>>::toJSI(runtime, arg.authTagLen));
77
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "isCipher"), JSIConverter<bool>::toJSI(runtime, arg.isCipher));
78
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "cipherType"), JSIConverter<std::string>::toJSI(runtime, arg.cipherType));
79
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "cipherKey"), JSIConverter<std::shared_ptr<ArrayBuffer>>::toJSI(runtime, arg.cipherKey));
80
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "iv"), JSIConverter<std::shared_ptr<ArrayBuffer>>::toJSI(runtime, arg.iv));
81
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "authTagLen"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.authTagLen));
70
82
  return obj;
71
83
  }
72
84
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -74,11 +86,14 @@ namespace margelo::nitro {
74
86
  return false;
75
87
  }
76
88
  jsi::Object obj = value.getObject(runtime);
77
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isCipher"))) return false;
78
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cipherType"))) return false;
79
- if (!JSIConverter<std::shared_ptr<ArrayBuffer>>::canConvert(runtime, obj.getProperty(runtime, "cipherKey"))) return false;
80
- if (!JSIConverter<std::shared_ptr<ArrayBuffer>>::canConvert(runtime, obj.getProperty(runtime, "iv"))) return false;
81
- if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "authTagLen"))) return false;
89
+ if (!nitro::isPlainObject(runtime, obj)) {
90
+ return false;
91
+ }
92
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isCipher")))) return false;
93
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "cipherType")))) return false;
94
+ if (!JSIConverter<std::shared_ptr<ArrayBuffer>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "cipherKey")))) return false;
95
+ if (!JSIConverter<std::shared_ptr<ArrayBuffer>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "iv")))) return false;
96
+ if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "authTagLen")))) return false;
82
97
  return true;
83
98
  }
84
99
  };
@@ -2,7 +2,7 @@
2
2
  /// HybridBlake3Spec.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 "HybridBlake3Spec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridBlake3Spec.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 `HybridBlake3Spec` to properly resolve imports.
19
17
  namespace margelo::nitro::crypto { class HybridBlake3Spec; }
20
18
 
@@ -2,7 +2,7 @@
2
2
  /// HybridCipherFactorySpec.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 "HybridCipherFactorySpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridCipherFactorySpec.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
@@ -2,7 +2,7 @@
2
2
  /// HybridCipherSpec.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 "HybridCipherSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridCipherSpec.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 `CipherArgs` to properly resolve imports.
19
17
  namespace margelo::nitro::crypto { struct CipherArgs; }
20
18
 
@@ -2,7 +2,7 @@
2
2
  /// HybridDiffieHellmanSpec.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 "HybridDiffieHellmanSpec.hpp"
@@ -24,6 +24,7 @@ namespace margelo::nitro::crypto {
24
24
  prototype.registerHybridMethod("getPrivateKey", &HybridDiffieHellmanSpec::getPrivateKey);
25
25
  prototype.registerHybridMethod("setPublicKey", &HybridDiffieHellmanSpec::setPublicKey);
26
26
  prototype.registerHybridMethod("setPrivateKey", &HybridDiffieHellmanSpec::setPrivateKey);
27
+ prototype.registerHybridMethod("getVerifyError", &HybridDiffieHellmanSpec::getVerifyError);
27
28
  });
28
29
  }
29
30
 
@@ -2,7 +2,7 @@
2
2
  /// HybridDiffieHellmanSpec.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
 
@@ -59,6 +58,7 @@ namespace margelo::nitro::crypto {
59
58
  virtual std::shared_ptr<ArrayBuffer> getPrivateKey() = 0;
60
59
  virtual void setPublicKey(const std::shared_ptr<ArrayBuffer>& publicKey) = 0;
61
60
  virtual void setPrivateKey(const std::shared_ptr<ArrayBuffer>& privateKey) = 0;
61
+ virtual double getVerifyError() = 0;
62
62
 
63
63
  protected:
64
64
  // Hybrid Setup
@@ -2,7 +2,7 @@
2
2
  /// HybridECDHSpec.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 "HybridECDHSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridECDHSpec.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>
@@ -2,7 +2,7 @@
2
2
  /// HybridEcKeyPairSpec.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 "HybridEcKeyPairSpec.hpp"
@@ -23,6 +23,7 @@ namespace margelo::nitro::crypto {
23
23
  prototype.registerHybridMethod("setCurve", &HybridEcKeyPairSpec::setCurve);
24
24
  prototype.registerHybridMethod("sign", &HybridEcKeyPairSpec::sign);
25
25
  prototype.registerHybridMethod("verify", &HybridEcKeyPairSpec::verify);
26
+ prototype.registerHybridMethod("getSupportedCurves", &HybridEcKeyPairSpec::getSupportedCurves);
26
27
  });
27
28
  }
28
29
 
@@ -2,7 +2,7 @@
2
2
  /// HybridEcKeyPairSpec.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
@@ -15,8 +15,6 @@
15
15
 
16
16
  // Forward declaration of `KeyObject` to properly resolve imports.
17
17
  namespace margelo::nitro::crypto { struct KeyObject; }
18
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
19
- namespace NitroModules { class ArrayBuffer; }
20
18
 
21
19
  #include <NitroModules/Promise.hpp>
22
20
  #include "KeyObject.hpp"
@@ -64,6 +62,7 @@ namespace margelo::nitro::crypto {
64
62
  virtual void setCurve(const std::string& curve) = 0;
65
63
  virtual std::shared_ptr<ArrayBuffer> sign(const std::shared_ptr<ArrayBuffer>& data, const std::string& hashAlgorithm) = 0;
66
64
  virtual bool verify(const std::shared_ptr<ArrayBuffer>& data, const std::shared_ptr<ArrayBuffer>& signature, const std::string& hashAlgorithm) = 0;
65
+ virtual std::vector<std::string> getSupportedCurves() = 0;
67
66
 
68
67
  protected:
69
68
  // Hybrid Setup
@@ -2,7 +2,7 @@
2
2
  /// HybridEdKeyPairSpec.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 "HybridEdKeyPairSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridEdKeyPairSpec.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
  /// HybridHashSpec.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 "HybridHashSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridHashSpec.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 `HybridHashSpec` to properly resolve imports.
19
17
  namespace margelo::nitro::crypto { class HybridHashSpec; }
20
18
 
@@ -58,7 +56,7 @@ namespace margelo::nitro::crypto {
58
56
  public:
59
57
  // Methods
60
58
  virtual void createHash(const std::string& algorithm, std::optional<double> outputLength) = 0;
61
- virtual void update(const std::variant<std::string, std::shared_ptr<ArrayBuffer>>& data) = 0;
59
+ virtual void update(const std::variant<std::shared_ptr<ArrayBuffer>, std::string>& data) = 0;
62
60
  virtual std::shared_ptr<ArrayBuffer> digest(const std::optional<std::string>& encoding) = 0;
63
61
  virtual std::shared_ptr<HybridHashSpec> copy(std::optional<double> outputLength) = 0;
64
62
  virtual std::vector<std::string> getSupportedHashAlgorithms() = 0;
@@ -2,7 +2,7 @@
2
2
  /// HybridHkdfSpec.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 "HybridHkdfSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridHkdfSpec.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 <string>
@@ -2,7 +2,7 @@
2
2
  /// HybridHmacSpec.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 "HybridHmacSpec.hpp"