react-native-quick-crypto 1.1.1 → 1.1.2
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.
- package/QuickCrypto.podspec +1 -0
- package/android/CMakeLists.txt +4 -0
- package/cpp/cipher/CCMCipher.cpp +7 -11
- package/cpp/cipher/ChaCha20Cipher.cpp +6 -10
- package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +10 -16
- package/cpp/cipher/GCMCipher.cpp +3 -5
- package/cpp/cipher/HybridCipher.cpp +7 -13
- package/cpp/cipher/HybridRsaCipher.cpp +19 -27
- package/cpp/cipher/OCBCipher.cpp +2 -3
- package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +13 -19
- package/cpp/cipher/XSalsa20Cipher.cpp +8 -12
- package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +11 -16
- package/cpp/keys/HybridKeyObjectHandle.cpp +630 -2
- package/cpp/keys/HybridKeyObjectHandle.hpp +21 -1
- package/cpp/sign/HybridSignHandle.cpp +26 -8
- package/cpp/sign/HybridVerifyHandle.cpp +28 -11
- package/cpp/slhdsa/HybridSlhDsaKeyPair.cpp +245 -0
- package/cpp/slhdsa/HybridSlhDsaKeyPair.hpp +48 -0
- package/cpp/turboshake/HybridTurboShake.cpp +379 -0
- package/cpp/turboshake/HybridTurboShake.hpp +28 -0
- package/cpp/utils/HybridUtils.cpp +26 -14
- package/deps/blake3/README.md +6 -7
- package/deps/blake3/c/blake3.c +3 -2
- package/deps/blake3/c/blake3.h +2 -2
- package/deps/blake3/c/blake3_dispatch.c +2 -2
- package/deps/blake3/c/blake3_impl.h +1 -1
- package/deps/blake3/c/blake3_neon.c +5 -4
- package/deps/ncrypto/include/ncrypto/version.h +2 -2
- package/deps/ncrypto/include/ncrypto.h +9 -2
- package/deps/ncrypto/src/ncrypto.cpp +130 -35
- package/lib/commonjs/dhKeyPair.js +3 -0
- package/lib/commonjs/dhKeyPair.js.map +1 -1
- package/lib/commonjs/dsa.js +3 -0
- package/lib/commonjs/dsa.js.map +1 -1
- package/lib/commonjs/ec.js +37 -30
- package/lib/commonjs/ec.js.map +1 -1
- package/lib/commonjs/ed.js +60 -6
- package/lib/commonjs/ed.js.map +1 -1
- package/lib/commonjs/hash.js +52 -5
- package/lib/commonjs/hash.js.map +1 -1
- package/lib/commonjs/keys/classes.js +33 -7
- package/lib/commonjs/keys/classes.js.map +1 -1
- package/lib/commonjs/keys/generateKeyPair.js +85 -4
- package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
- package/lib/commonjs/keys/index.js +50 -2
- package/lib/commonjs/keys/index.js.map +1 -1
- package/lib/commonjs/keys/signVerify.js +9 -2
- package/lib/commonjs/keys/signVerify.js.map +1 -1
- package/lib/commonjs/keys/utils.js +59 -1
- package/lib/commonjs/keys/utils.js.map +1 -1
- package/lib/commonjs/random.js +63 -9
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/rsa.js +3 -0
- package/lib/commonjs/rsa.js.map +1 -1
- package/lib/commonjs/slhdsa.js +70 -0
- package/lib/commonjs/slhdsa.js.map +1 -0
- package/lib/commonjs/specs/slhDsaKeyPair.nitro.js +6 -0
- package/lib/commonjs/specs/slhDsaKeyPair.nitro.js.map +1 -0
- package/lib/commonjs/specs/turboshake.nitro.js +6 -0
- package/lib/commonjs/specs/turboshake.nitro.js.map +1 -0
- package/lib/commonjs/subtle.js +926 -275
- package/lib/commonjs/subtle.js.map +1 -1
- package/lib/commonjs/utils/conversion.js +53 -19
- package/lib/commonjs/utils/conversion.js.map +1 -1
- package/lib/commonjs/utils/errors.js +63 -4
- package/lib/commonjs/utils/errors.js.map +1 -1
- package/lib/commonjs/utils/types.js.map +1 -1
- package/lib/commonjs/utils/validation.js +46 -0
- package/lib/commonjs/utils/validation.js.map +1 -1
- package/lib/module/dhKeyPair.js +3 -0
- package/lib/module/dhKeyPair.js.map +1 -1
- package/lib/module/dsa.js +3 -0
- package/lib/module/dsa.js.map +1 -1
- package/lib/module/ec.js +38 -31
- package/lib/module/ec.js.map +1 -1
- package/lib/module/ed.js +61 -7
- package/lib/module/ed.js.map +1 -1
- package/lib/module/hash.js +52 -5
- package/lib/module/hash.js.map +1 -1
- package/lib/module/keys/classes.js +31 -5
- package/lib/module/keys/classes.js.map +1 -1
- package/lib/module/keys/generateKeyPair.js +86 -5
- package/lib/module/keys/generateKeyPair.js.map +1 -1
- package/lib/module/keys/index.js +50 -2
- package/lib/module/keys/index.js.map +1 -1
- package/lib/module/keys/signVerify.js +9 -2
- package/lib/module/keys/signVerify.js.map +1 -1
- package/lib/module/keys/utils.js +57 -1
- package/lib/module/keys/utils.js.map +1 -1
- package/lib/module/random.js +63 -10
- package/lib/module/random.js.map +1 -1
- package/lib/module/rsa.js +3 -0
- package/lib/module/rsa.js.map +1 -1
- package/lib/module/slhdsa.js +64 -0
- package/lib/module/slhdsa.js.map +1 -0
- package/lib/module/specs/slhDsaKeyPair.nitro.js +4 -0
- package/lib/module/specs/slhDsaKeyPair.nitro.js.map +1 -0
- package/lib/module/specs/turboshake.nitro.js +4 -0
- package/lib/module/specs/turboshake.nitro.js.map +1 -0
- package/lib/module/subtle.js +927 -276
- package/lib/module/subtle.js.map +1 -1
- package/lib/module/utils/conversion.js +51 -19
- package/lib/module/utils/conversion.js.map +1 -1
- package/lib/module/utils/errors.js +61 -4
- package/lib/module/utils/errors.js.map +1 -1
- package/lib/module/utils/types.js.map +1 -1
- package/lib/module/utils/validation.js +44 -0
- package/lib/module/utils/validation.js.map +1 -1
- package/lib/typescript/dhKeyPair.d.ts.map +1 -1
- package/lib/typescript/dsa.d.ts.map +1 -1
- package/lib/typescript/ec.d.ts.map +1 -1
- package/lib/typescript/ed.d.ts.map +1 -1
- package/lib/typescript/hash.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +12 -7
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/classes.d.ts +10 -1
- package/lib/typescript/keys/classes.d.ts.map +1 -1
- package/lib/typescript/keys/generateKeyPair.d.ts +12 -1
- package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
- package/lib/typescript/keys/index.d.ts +3 -1
- package/lib/typescript/keys/index.d.ts.map +1 -1
- package/lib/typescript/keys/signVerify.d.ts.map +1 -1
- package/lib/typescript/keys/utils.d.ts +21 -4
- package/lib/typescript/keys/utils.d.ts.map +1 -1
- package/lib/typescript/random.d.ts +5 -1
- package/lib/typescript/random.d.ts.map +1 -1
- package/lib/typescript/rsa.d.ts.map +1 -1
- package/lib/typescript/slhdsa.d.ts +19 -0
- package/lib/typescript/slhdsa.d.ts.map +1 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +9 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/slhDsaKeyPair.nitro.d.ts +16 -0
- package/lib/typescript/specs/slhDsaKeyPair.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/turboshake.nitro.d.ts +11 -0
- package/lib/typescript/specs/turboshake.nitro.d.ts.map +1 -0
- package/lib/typescript/subtle.d.ts +3 -2
- package/lib/typescript/subtle.d.ts.map +1 -1
- package/lib/typescript/utils/conversion.d.ts +4 -3
- package/lib/typescript/utils/conversion.d.ts.map +1 -1
- package/lib/typescript/utils/errors.d.ts +12 -0
- package/lib/typescript/utils/errors.d.ts.map +1 -1
- package/lib/typescript/utils/types.d.ts +32 -15
- package/lib/typescript/utils/types.d.ts.map +1 -1
- package/lib/typescript/utils/validation.d.ts +3 -1
- package/lib/typescript/utils/validation.d.ts.map +1 -1
- package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +2 -0
- package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +20 -0
- package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +20 -0
- package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +48 -0
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +9 -0
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +9 -0
- package/nitrogen/generated/shared/c++/HybridSlhDsaKeyPairSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridSlhDsaKeyPairSpec.hpp +72 -0
- package/nitrogen/generated/shared/c++/HybridTurboShakeSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridTurboShakeSpec.hpp +70 -0
- package/nitrogen/generated/shared/c++/JWK.hpp +9 -1
- package/nitrogen/generated/shared/c++/JWKkty.hpp +4 -0
- package/nitrogen/generated/shared/c++/KangarooTwelveVariant.hpp +76 -0
- package/nitrogen/generated/shared/c++/TurboShakeVariant.hpp +76 -0
- package/package.json +2 -3
- package/src/dhKeyPair.ts +8 -0
- package/src/dsa.ts +8 -0
- package/src/ec.ts +52 -29
- package/src/ed.ts +95 -16
- package/src/hash.ts +108 -5
- package/src/keys/classes.ts +46 -5
- package/src/keys/generateKeyPair.ts +151 -5
- package/src/keys/index.ts +73 -3
- package/src/keys/signVerify.ts +13 -2
- package/src/keys/utils.ts +78 -5
- package/src/random.ts +93 -9
- package/src/rsa.ts +8 -0
- package/src/slhdsa.ts +146 -0
- package/src/specs/keyObjectHandle.nitro.ts +17 -0
- package/src/specs/slhDsaKeyPair.nitro.ts +29 -0
- package/src/specs/turboshake.nitro.ts +21 -0
- package/src/subtle.ts +1191 -360
- package/src/utils/conversion.ts +72 -21
- package/src/utils/errors.ts +72 -4
- package/src/utils/types.ts +80 -15
- package/src/utils/validation.ts +70 -1
|
@@ -15,10 +15,6 @@
|
|
|
15
15
|
#include <openssl/hkdf.h>
|
|
16
16
|
#endif
|
|
17
17
|
|
|
18
|
-
#if OPENSSL_VERSION_NUMBER >= 0x30200000L
|
|
19
|
-
#include <openssl/thread.h>
|
|
20
|
-
#endif
|
|
21
|
-
|
|
22
18
|
#include <algorithm>
|
|
23
19
|
#include <array>
|
|
24
20
|
#include <cstring>
|
|
@@ -28,6 +24,9 @@
|
|
|
28
24
|
#include <openssl/core_names.h>
|
|
29
25
|
#include <openssl/params.h>
|
|
30
26
|
#include <openssl/provider.h>
|
|
27
|
+
#if OPENSSL_VERSION_NUMBER >= 0x30200000L
|
|
28
|
+
#include <openssl/thread.h>
|
|
29
|
+
#endif
|
|
31
30
|
#endif
|
|
32
31
|
#if OPENSSL_WITH_PQC
|
|
33
32
|
struct PQCMapping {
|
|
@@ -228,7 +227,7 @@ void DataPointer::zero() {
|
|
|
228
227
|
OPENSSL_cleanse(data_, len_);
|
|
229
228
|
}
|
|
230
229
|
|
|
231
|
-
void DataPointer::
|
|
230
|
+
void DataPointer::free() {
|
|
232
231
|
if (data_ != nullptr) {
|
|
233
232
|
if (secure_) {
|
|
234
233
|
OPENSSL_secure_clear_free(data_, len_);
|
|
@@ -236,6 +235,10 @@ void DataPointer::reset(void* data, size_t length) {
|
|
|
236
235
|
OPENSSL_clear_free(data_, len_);
|
|
237
236
|
}
|
|
238
237
|
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
void DataPointer::reset(void* data, size_t length) {
|
|
241
|
+
free();
|
|
239
242
|
data_ = data;
|
|
240
243
|
len_ = length;
|
|
241
244
|
}
|
|
@@ -258,7 +261,12 @@ DataPointer DataPointer::resize(size_t len) {
|
|
|
258
261
|
size_t actual_len = std::min(len_, len);
|
|
259
262
|
auto buf = release();
|
|
260
263
|
if (actual_len == len_) return DataPointer(buf.data, actual_len);
|
|
261
|
-
|
|
264
|
+
auto new_data = OPENSSL_realloc(buf.data, actual_len);
|
|
265
|
+
if (new_data == nullptr) {
|
|
266
|
+
free();
|
|
267
|
+
return {};
|
|
268
|
+
}
|
|
269
|
+
buf.data = new_data;
|
|
262
270
|
buf.len = actual_len;
|
|
263
271
|
return DataPointer(buf);
|
|
264
272
|
}
|
|
@@ -810,11 +818,15 @@ bool PrintGeneralName(const BIOPointer& out, const GENERAL_NAME* gen) {
|
|
|
810
818
|
// Note that the preferred name syntax (see RFCs 5280 and 1034) with
|
|
811
819
|
// wildcards is a subset of what we consider "safe", so spec-compliant DNS
|
|
812
820
|
// names will never need to be escaped.
|
|
813
|
-
PrintAltName(out,
|
|
821
|
+
PrintAltName(out,
|
|
822
|
+
reinterpret_cast<const char*>(ASN1_STRING_get0_data(name)),
|
|
823
|
+
ASN1_STRING_length(name));
|
|
814
824
|
} else if (gen->type == GEN_EMAIL) {
|
|
815
825
|
ASN1_IA5STRING* name = gen->d.rfc822Name;
|
|
816
826
|
BIO_write(out.get(), "email:", 6);
|
|
817
|
-
PrintAltName(out,
|
|
827
|
+
PrintAltName(out,
|
|
828
|
+
reinterpret_cast<const char*>(ASN1_STRING_get0_data(name)),
|
|
829
|
+
ASN1_STRING_length(name));
|
|
818
830
|
} else if (gen->type == GEN_URI) {
|
|
819
831
|
ASN1_IA5STRING* name = gen->d.uniformResourceIdentifier;
|
|
820
832
|
BIO_write(out.get(), "URI:", 4);
|
|
@@ -822,7 +834,9 @@ bool PrintGeneralName(const BIOPointer& out, const GENERAL_NAME* gen) {
|
|
|
822
834
|
// with a few exceptions, most notably URIs that contains commas (see
|
|
823
835
|
// RFC 2396). In other words, most legitimate URIs will not require
|
|
824
836
|
// escaping.
|
|
825
|
-
PrintAltName(out,
|
|
837
|
+
PrintAltName(out,
|
|
838
|
+
reinterpret_cast<const char*>(ASN1_STRING_get0_data(name)),
|
|
839
|
+
ASN1_STRING_length(name));
|
|
826
840
|
} else if (gen->type == GEN_DIRNAME) {
|
|
827
841
|
// Earlier versions of Node.js used X509_NAME_oneline to print the X509_NAME
|
|
828
842
|
// object. The format was non standard and should be avoided. The use of
|
|
@@ -855,17 +869,18 @@ bool PrintGeneralName(const BIOPointer& out, const GENERAL_NAME* gen) {
|
|
|
855
869
|
} else if (gen->type == GEN_IPADD) {
|
|
856
870
|
BIO_printf(out.get(), "IP Address:");
|
|
857
871
|
const ASN1_OCTET_STRING* ip = gen->d.ip;
|
|
858
|
-
const unsigned char* b = ip
|
|
859
|
-
|
|
872
|
+
const unsigned char* b = ASN1_STRING_get0_data(ip);
|
|
873
|
+
int ip_len = ASN1_STRING_length(ip);
|
|
874
|
+
if (ip_len == 4) {
|
|
860
875
|
BIO_printf(out.get(), "%d.%d.%d.%d", b[0], b[1], b[2], b[3]);
|
|
861
|
-
} else if (
|
|
876
|
+
} else if (ip_len == 16) {
|
|
862
877
|
for (unsigned int j = 0; j < 8; j++) {
|
|
863
878
|
uint16_t pair = (b[2 * j] << 8) | b[2 * j + 1];
|
|
864
879
|
BIO_printf(out.get(), (j == 0) ? "%X" : ":%X", pair);
|
|
865
880
|
}
|
|
866
881
|
} else {
|
|
867
882
|
#if OPENSSL_VERSION_MAJOR >= 3
|
|
868
|
-
BIO_printf(out.get(), "<invalid length=%d>",
|
|
883
|
+
BIO_printf(out.get(), "<invalid length=%d>", ip_len);
|
|
869
884
|
#else
|
|
870
885
|
BIO_printf(out.get(), "<invalid>");
|
|
871
886
|
#endif
|
|
@@ -915,15 +930,15 @@ bool PrintGeneralName(const BIOPointer& out, const GENERAL_NAME* gen) {
|
|
|
915
930
|
if (unicode) {
|
|
916
931
|
auto name = gen->d.otherName->value->value.utf8string;
|
|
917
932
|
PrintAltName(out,
|
|
918
|
-
reinterpret_cast<const char*>(name
|
|
919
|
-
name
|
|
933
|
+
reinterpret_cast<const char*>(ASN1_STRING_get0_data(name)),
|
|
934
|
+
ASN1_STRING_length(name),
|
|
920
935
|
AltNameOption::UTF8,
|
|
921
936
|
prefix);
|
|
922
937
|
} else {
|
|
923
938
|
auto name = gen->d.otherName->value->value.ia5string;
|
|
924
939
|
PrintAltName(out,
|
|
925
|
-
reinterpret_cast<const char*>(name
|
|
926
|
-
name
|
|
940
|
+
reinterpret_cast<const char*>(ASN1_STRING_get0_data(name)),
|
|
941
|
+
ASN1_STRING_length(name),
|
|
927
942
|
AltNameOption::NONE,
|
|
928
943
|
prefix);
|
|
929
944
|
}
|
|
@@ -944,11 +959,14 @@ bool PrintGeneralName(const BIOPointer& out, const GENERAL_NAME* gen) {
|
|
|
944
959
|
}
|
|
945
960
|
} // namespace
|
|
946
961
|
|
|
947
|
-
bool SafeX509SubjectAltNamePrint(const BIOPointer& out,
|
|
948
|
-
|
|
962
|
+
bool SafeX509SubjectAltNamePrint(const BIOPointer& out,
|
|
963
|
+
const X509_EXTENSION* ext) {
|
|
964
|
+
// const_cast needed for OpenSSL < 4.0 which lacks const-correctness
|
|
965
|
+
auto* mext = const_cast<X509_EXTENSION*>(ext);
|
|
966
|
+
auto ret = OBJ_obj2nid(X509_EXTENSION_get_object(mext));
|
|
949
967
|
if (ret != NID_subject_alt_name) return false;
|
|
950
968
|
|
|
951
|
-
GENERAL_NAMES* names = static_cast<GENERAL_NAMES*>(X509V3_EXT_d2i(
|
|
969
|
+
GENERAL_NAMES* names = static_cast<GENERAL_NAMES*>(X509V3_EXT_d2i(mext));
|
|
952
970
|
if (names == nullptr) return false;
|
|
953
971
|
|
|
954
972
|
bool ok = true;
|
|
@@ -967,12 +985,14 @@ bool SafeX509SubjectAltNamePrint(const BIOPointer& out, X509_EXTENSION* ext) {
|
|
|
967
985
|
return ok;
|
|
968
986
|
}
|
|
969
987
|
|
|
970
|
-
bool SafeX509InfoAccessPrint(const BIOPointer& out, X509_EXTENSION* ext) {
|
|
971
|
-
|
|
988
|
+
bool SafeX509InfoAccessPrint(const BIOPointer& out, const X509_EXTENSION* ext) {
|
|
989
|
+
// const_cast needed for OpenSSL < 4.0 which lacks const-correctness
|
|
990
|
+
auto* mext = const_cast<X509_EXTENSION*>(ext);
|
|
991
|
+
auto ret = OBJ_obj2nid(X509_EXTENSION_get_object(mext));
|
|
972
992
|
if (ret != NID_info_access) return false;
|
|
973
993
|
|
|
974
994
|
AUTHORITY_INFO_ACCESS* descs =
|
|
975
|
-
static_cast<AUTHORITY_INFO_ACCESS*>(X509V3_EXT_d2i(
|
|
995
|
+
static_cast<AUTHORITY_INFO_ACCESS*>(X509V3_EXT_d2i(mext));
|
|
976
996
|
if (descs == nullptr) return false;
|
|
977
997
|
|
|
978
998
|
bool ok = true;
|
|
@@ -1116,7 +1136,7 @@ BIOPointer X509View::getValidFrom() const {
|
|
|
1116
1136
|
if (cert_ == nullptr) return {};
|
|
1117
1137
|
BIOPointer bio(BIO_new(BIO_s_mem()));
|
|
1118
1138
|
if (!bio) return {};
|
|
1119
|
-
ASN1_TIME_print(bio.get(),
|
|
1139
|
+
ASN1_TIME_print(bio.get(), X509_get0_notBefore(cert_));
|
|
1120
1140
|
return bio;
|
|
1121
1141
|
}
|
|
1122
1142
|
|
|
@@ -1125,7 +1145,7 @@ BIOPointer X509View::getValidTo() const {
|
|
|
1125
1145
|
if (cert_ == nullptr) return {};
|
|
1126
1146
|
BIOPointer bio(BIO_new(BIO_s_mem()));
|
|
1127
1147
|
if (!bio) return {};
|
|
1128
|
-
ASN1_TIME_print(bio.get(),
|
|
1148
|
+
ASN1_TIME_print(bio.get(), X509_get0_notAfter(cert_));
|
|
1129
1149
|
return bio;
|
|
1130
1150
|
}
|
|
1131
1151
|
|
|
@@ -1515,6 +1535,7 @@ BIOPointer BIOPointer::NewSecMem() {
|
|
|
1515
1535
|
}
|
|
1516
1536
|
|
|
1517
1537
|
BIOPointer BIOPointer::New(const BIO_METHOD* method) {
|
|
1538
|
+
if (method == nullptr) return {};
|
|
1518
1539
|
return BIOPointer(BIO_new(method));
|
|
1519
1540
|
}
|
|
1520
1541
|
|
|
@@ -3402,19 +3423,21 @@ bool CipherCtxPointer::setKeyLength(size_t length) {
|
|
|
3402
3423
|
bool CipherCtxPointer::setIvLength(size_t length) {
|
|
3403
3424
|
if (!ctx_) return false;
|
|
3404
3425
|
return EVP_CIPHER_CTX_ctrl(
|
|
3405
|
-
|
|
3426
|
+
ctx_.get(), EVP_CTRL_AEAD_SET_IVLEN, length, nullptr) > 0;
|
|
3406
3427
|
}
|
|
3407
3428
|
|
|
3408
3429
|
bool CipherCtxPointer::setAeadTag(const Buffer<const char>& tag) {
|
|
3409
3430
|
if (!ctx_) return false;
|
|
3410
|
-
return EVP_CIPHER_CTX_ctrl(
|
|
3411
|
-
|
|
3431
|
+
return EVP_CIPHER_CTX_ctrl(ctx_.get(),
|
|
3432
|
+
EVP_CTRL_AEAD_SET_TAG,
|
|
3433
|
+
tag.len,
|
|
3434
|
+
const_cast<char*>(tag.data)) > 0;
|
|
3412
3435
|
}
|
|
3413
3436
|
|
|
3414
3437
|
bool CipherCtxPointer::setAeadTagLength(size_t length) {
|
|
3415
3438
|
if (!ctx_) return false;
|
|
3416
3439
|
return EVP_CIPHER_CTX_ctrl(
|
|
3417
|
-
|
|
3440
|
+
ctx_.get(), EVP_CTRL_AEAD_SET_TAG, length, nullptr) > 0;
|
|
3418
3441
|
}
|
|
3419
3442
|
|
|
3420
3443
|
bool CipherCtxPointer::setPadding(bool padding) {
|
|
@@ -3484,7 +3507,7 @@ bool CipherCtxPointer::update(const Buffer<const unsigned char>& in,
|
|
|
3484
3507
|
|
|
3485
3508
|
bool CipherCtxPointer::getAeadTag(size_t len, unsigned char* out) {
|
|
3486
3509
|
if (!ctx_) return false;
|
|
3487
|
-
return EVP_CIPHER_CTX_ctrl(ctx_.get(), EVP_CTRL_AEAD_GET_TAG, len, out);
|
|
3510
|
+
return EVP_CIPHER_CTX_ctrl(ctx_.get(), EVP_CTRL_AEAD_GET_TAG, len, out) > 0;
|
|
3488
3511
|
}
|
|
3489
3512
|
|
|
3490
3513
|
// ============================================================================
|
|
@@ -3667,8 +3690,38 @@ bool ECKeyPointer::setPublicKey(const ECPointPointer& pub) {
|
|
|
3667
3690
|
bool ECKeyPointer::setPublicKeyRaw(const BignumPointer& x,
|
|
3668
3691
|
const BignumPointer& y) {
|
|
3669
3692
|
if (!key_) return false;
|
|
3670
|
-
|
|
3671
|
-
|
|
3693
|
+
const EC_GROUP* group = EC_KEY_get0_group(key_.get());
|
|
3694
|
+
if (group == nullptr) return false;
|
|
3695
|
+
|
|
3696
|
+
// For curves with cofactor h=1, use EC_POINT_oct2point +
|
|
3697
|
+
// EC_KEY_set_public_key instead of EC_KEY_set_public_key_affine_coordinates.
|
|
3698
|
+
// The latter internally calls EC_KEY_check_key() which performs a scalar
|
|
3699
|
+
// multiplication (n*Q) for order validation — redundant when h=1 since every
|
|
3700
|
+
// on-curve point already has order n. EC_POINT_oct2point validates the point
|
|
3701
|
+
// is on the curve, which is sufficient. For curves with h!=1, fall back to
|
|
3702
|
+
// the full check.
|
|
3703
|
+
auto cofactor = BignumPointer::New();
|
|
3704
|
+
if (!cofactor || !EC_GROUP_get_cofactor(group, cofactor.get(), nullptr) ||
|
|
3705
|
+
!cofactor.isOne()) {
|
|
3706
|
+
return EC_KEY_set_public_key_affine_coordinates(
|
|
3707
|
+
key_.get(), x.get(), y.get()) == 1;
|
|
3708
|
+
}
|
|
3709
|
+
|
|
3710
|
+
// Field element byte length: ceil(degree_bits / 8).
|
|
3711
|
+
size_t field_len = (EC_GROUP_get_degree(group) + 7) / 8;
|
|
3712
|
+
// Build an uncompressed point: 0x04 || x || y, each padded to field_len.
|
|
3713
|
+
size_t uncompressed_len = 1 + 2 * field_len;
|
|
3714
|
+
auto buf = DataPointer::Alloc(uncompressed_len);
|
|
3715
|
+
if (!buf) return false;
|
|
3716
|
+
unsigned char* ptr = static_cast<unsigned char*>(buf.get());
|
|
3717
|
+
ptr[0] = POINT_CONVERSION_UNCOMPRESSED;
|
|
3718
|
+
x.encodePaddedInto(ptr + 1, field_len);
|
|
3719
|
+
y.encodePaddedInto(ptr + 1 + field_len, field_len);
|
|
3720
|
+
|
|
3721
|
+
auto point = ECPointPointer::New(group);
|
|
3722
|
+
if (!point) return false;
|
|
3723
|
+
if (!point.setFromBuffer({ptr, uncompressed_len}, group)) return false;
|
|
3724
|
+
return EC_KEY_set_public_key(key_.get(), point.get()) == 1;
|
|
3672
3725
|
}
|
|
3673
3726
|
|
|
3674
3727
|
bool ECKeyPointer::setPrivateKey(const BignumPointer& priv) {
|
|
@@ -4490,6 +4543,27 @@ std::optional<EVP_PKEY_CTX*> EVPMDCtxPointer::signInitWithContext(
|
|
|
4490
4543
|
#ifdef OSSL_SIGNATURE_PARAM_CONTEXT_STRING
|
|
4491
4544
|
EVP_PKEY_CTX* ctx = nullptr;
|
|
4492
4545
|
|
|
4546
|
+
#ifdef OSSL_SIGNATURE_PARAM_INSTANCE
|
|
4547
|
+
// Ed25519 requires the INSTANCE param to switch into Ed25519ctx mode.
|
|
4548
|
+
// Without it, OpenSSL silently ignores the context string.
|
|
4549
|
+
if (key.id() == EVP_PKEY_ED25519) {
|
|
4550
|
+
const OSSL_PARAM params[] = {
|
|
4551
|
+
OSSL_PARAM_construct_utf8_string(
|
|
4552
|
+
OSSL_SIGNATURE_PARAM_INSTANCE, const_cast<char*>("Ed25519ctx"), 0),
|
|
4553
|
+
OSSL_PARAM_construct_octet_string(
|
|
4554
|
+
OSSL_SIGNATURE_PARAM_CONTEXT_STRING,
|
|
4555
|
+
const_cast<unsigned char*>(context_string.data),
|
|
4556
|
+
context_string.len),
|
|
4557
|
+
OSSL_PARAM_END};
|
|
4558
|
+
|
|
4559
|
+
if (!EVP_DigestSignInit_ex(
|
|
4560
|
+
ctx_.get(), &ctx, nullptr, nullptr, nullptr, key.get(), params)) {
|
|
4561
|
+
return std::nullopt;
|
|
4562
|
+
}
|
|
4563
|
+
return ctx;
|
|
4564
|
+
}
|
|
4565
|
+
#endif // OSSL_SIGNATURE_PARAM_INSTANCE
|
|
4566
|
+
|
|
4493
4567
|
const OSSL_PARAM params[] = {
|
|
4494
4568
|
OSSL_PARAM_construct_octet_string(
|
|
4495
4569
|
OSSL_SIGNATURE_PARAM_CONTEXT_STRING,
|
|
@@ -4514,6 +4588,27 @@ std::optional<EVP_PKEY_CTX*> EVPMDCtxPointer::verifyInitWithContext(
|
|
|
4514
4588
|
#ifdef OSSL_SIGNATURE_PARAM_CONTEXT_STRING
|
|
4515
4589
|
EVP_PKEY_CTX* ctx = nullptr;
|
|
4516
4590
|
|
|
4591
|
+
#ifdef OSSL_SIGNATURE_PARAM_INSTANCE
|
|
4592
|
+
// Ed25519 requires the INSTANCE param to switch into Ed25519ctx mode.
|
|
4593
|
+
// Without it, OpenSSL silently ignores the context string.
|
|
4594
|
+
if (key.id() == EVP_PKEY_ED25519) {
|
|
4595
|
+
const OSSL_PARAM params[] = {
|
|
4596
|
+
OSSL_PARAM_construct_utf8_string(
|
|
4597
|
+
OSSL_SIGNATURE_PARAM_INSTANCE, const_cast<char*>("Ed25519ctx"), 0),
|
|
4598
|
+
OSSL_PARAM_construct_octet_string(
|
|
4599
|
+
OSSL_SIGNATURE_PARAM_CONTEXT_STRING,
|
|
4600
|
+
const_cast<unsigned char*>(context_string.data),
|
|
4601
|
+
context_string.len),
|
|
4602
|
+
OSSL_PARAM_END};
|
|
4603
|
+
|
|
4604
|
+
if (!EVP_DigestVerifyInit_ex(
|
|
4605
|
+
ctx_.get(), &ctx, nullptr, nullptr, nullptr, key.get(), params)) {
|
|
4606
|
+
return std::nullopt;
|
|
4607
|
+
}
|
|
4608
|
+
return ctx;
|
|
4609
|
+
}
|
|
4610
|
+
#endif // OSSL_SIGNATURE_PARAM_INSTANCE
|
|
4611
|
+
|
|
4517
4612
|
const OSSL_PARAM params[] = {
|
|
4518
4613
|
OSSL_PARAM_construct_octet_string(
|
|
4519
4614
|
OSSL_SIGNATURE_PARAM_CONTEXT_STRING,
|
|
@@ -4812,12 +4907,12 @@ bool X509Name::Iterator::operator!=(const Iterator& other) const {
|
|
|
4812
4907
|
std::pair<std::string, std::string> X509Name::Iterator::operator*() const {
|
|
4813
4908
|
if (loc_ == name_.total_) return {{}, {}};
|
|
4814
4909
|
|
|
4815
|
-
X509_NAME_ENTRY* entry = X509_NAME_get_entry(name_, loc_);
|
|
4910
|
+
const X509_NAME_ENTRY* entry = X509_NAME_get_entry(name_, loc_);
|
|
4816
4911
|
if (entry == nullptr) [[unlikely]]
|
|
4817
4912
|
return {{}, {}};
|
|
4818
4913
|
|
|
4819
|
-
ASN1_OBJECT* name = X509_NAME_ENTRY_get_object(entry);
|
|
4820
|
-
ASN1_STRING* value = X509_NAME_ENTRY_get_data(entry);
|
|
4914
|
+
const ASN1_OBJECT* name = X509_NAME_ENTRY_get_object(entry);
|
|
4915
|
+
const ASN1_STRING* value = X509_NAME_ENTRY_get_data(entry);
|
|
4821
4916
|
|
|
4822
4917
|
if (name == nullptr || value == nullptr) [[unlikely]] {
|
|
4823
4918
|
return {{}, {}};
|
|
@@ -69,6 +69,9 @@ function dh_formatKeyPairOutput(dh, encoding) {
|
|
|
69
69
|
const priv = _classes.KeyObject.createKeyObject('private', privateKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
|
|
70
70
|
let publicKey;
|
|
71
71
|
let privateKey;
|
|
72
|
+
if (publicFormat === 'raw-public' || privateFormat === 'raw-private' || privateFormat === 'raw-seed') {
|
|
73
|
+
throw new Error('Raw key formats are not supported for DH keys');
|
|
74
|
+
}
|
|
72
75
|
if (publicFormat === -1) {
|
|
73
76
|
publicKey = pub;
|
|
74
77
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_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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
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_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":[]}
|
package/lib/commonjs/dsa.js
CHANGED
|
@@ -58,6 +58,9 @@ function dsa_formatKeyPairOutput(dsa, encoding) {
|
|
|
58
58
|
const priv = _classes.KeyObject.createKeyObject('private', privateKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
|
|
59
59
|
let publicKey;
|
|
60
60
|
let privateKey;
|
|
61
|
+
if (publicFormat === 'raw-public' || privateFormat === 'raw-private' || privateFormat === 'raw-seed') {
|
|
62
|
+
throw new Error('Raw key formats are not supported for DSA keys');
|
|
63
|
+
}
|
|
61
64
|
if (publicFormat === -1) {
|
|
62
65
|
publicKey = pub;
|
|
63
66
|
} else {
|
package/lib/commonjs/dsa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","Dsa","constructor","modulusLength","divisorLength","native","NitroModules","createHybridObject","setModulusLength","undefined","setDivisorLength","generateKeyPair","generateKeyPairSync","exports","DSA_MIN_MODULUS_LENGTH","dsa_prepareKeyGenParams","options","Error","RangeError","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":";;;;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAH,OAAA;AAEO,MAAMI,GAAG,CAAC;EAGfC,WAAWA,CAACC,aAAqB,EAAEC,aAAsB,EAAE;IACzD,IAAI,CAACC,MAAM,GAAGC,qCAAY,CAACC,kBAAkB,CAAa,YAAY,CAAC;IACvE,IAAI,CAACF,MAAM,CAACG,gBAAgB,CAACL,aAAa,CAAC;IAC3C,IAAIC,aAAa,KAAKK,SAAS,IAAIL,aAAa,IAAI,CAAC,EAAE;MACrD,IAAI,CAACC,MAAM,CAACK,gBAAgB,CAACN,aAAa,CAAC;IAC7C;EACF;EAEA,MAAMO,eAAeA,CAAA,EAAkB;IACrC,MAAM,IAAI,CAACN,MAAM,CAACM,eAAe,CAAC,CAAC;EACrC;EAEAC,mBAAmBA,CAAA,EAAS;IAC1B,IAAI,CAACP,MAAM,CAACO,mBAAmB,CAAC,CAAC;EACnC;AACF;;AAEA;AACA;AACA;AACA;AAAAC,OAAA,CAAAZ,GAAA,GAAAA,GAAA;AACA,MAAMa,sBAAsB,GAAG,IAAI;AAEnC,SAASC,uBAAuBA,CAC9BC,OAA2C,EACtC;EACL,IAAI,CAACA,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC;EAChE;EAEA,MAAM;IAAEd,aAAa;IAAEC;EAAc,CAAC,GAAGY,OAAO;EAEhD,IAAI,CAACb,aAAa,IAAIA,aAAa,GAAGW,sBAAsB,EAAE;IAC5D,MAAM,IAAII,UAAU,CAClB,sCAAsCJ,sBAAsB,QAAQ,GAClE,QAAQX,aAAa,IAAI,CAAC,GAC9B,CAAC;EACH;EAEA,OAAO,IAAIF,GAAG,CAACE,aAAa,EAAEC,aAAa,CAAC;AAC9C;AAEA,SAASe,uBAAuBA,CAC9BC,GAAQ,EACRC,QAA0B,EAI1B;EACA,MAAM;IAAEC,YAAY;IAAEC,aAAa;IAAEC,MAAM;IAAEC;EAAW,CAAC,GAAGJ,QAAQ;EAEpE,MAAMK,aAAa,GAAGN,GAAG,CAACf,MAAM,CAACsB,YAAY,CAAC,CAAC;EAC/C,MAAMC,cAAc,GAAGR,GAAG,CAACf,MAAM,CAACwB,aAAa,CAAC,CAAC;EAEjD,MAAMC,GAAG,GAAGC,kBAAS,CAACC,eAAe,CACnC,QAAQ,EACRN,aAAa,EACbO,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACC,IACd,CAAoB;EAEpB,MAAMC,IAAI,GAAGN,kBAAS,CAACC,eAAe,CACpC,SAAS,EACTJ,cAAc,EACdK,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACG,KACd,CAAqB;EAErB,IAAIC,SAA0D;EAC9D,IAAIC,UAA4D;EAEhE,
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","Dsa","constructor","modulusLength","divisorLength","native","NitroModules","createHybridObject","setModulusLength","undefined","setDivisorLength","generateKeyPair","generateKeyPairSync","exports","DSA_MIN_MODULUS_LENGTH","dsa_prepareKeyGenParams","options","Error","RangeError","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":[]}
|
package/lib/commonjs/ec.js
CHANGED
|
@@ -61,70 +61,62 @@ function ecImportKey(format, keyData, algorithm, extractable, keyUsages) {
|
|
|
61
61
|
if (!namedCurve || !_utils.kNamedCurveAliases[namedCurve]) {
|
|
62
62
|
throw (0, _utils.lazyDOMException)('Unrecognized namedCurve', 'NotSupportedError');
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
// Handle JWK format
|
|
66
64
|
if (format === 'jwk') {
|
|
67
65
|
const jwk = keyData;
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
if (!jwk || typeof jwk !== 'object') {
|
|
67
|
+
throw (0, _utils.lazyDOMException)('Invalid keyData', 'DataError');
|
|
68
|
+
}
|
|
70
69
|
if (jwk.kty !== 'EC') {
|
|
71
70
|
throw (0, _utils.lazyDOMException)('Invalid JWK "kty" Parameter', 'DataError');
|
|
72
71
|
}
|
|
73
72
|
if (jwk.crv !== namedCurve) {
|
|
74
73
|
throw (0, _utils.lazyDOMException)('JWK "crv" does not match the requested algorithm', 'DataError');
|
|
75
74
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (jwk.use !== undefined) {
|
|
79
|
-
const expectedUse = name === 'ECDH' ? 'enc' : 'sig';
|
|
80
|
-
if (jwk.use !== expectedUse) {
|
|
81
|
-
throw (0, _utils.lazyDOMException)('Invalid JWK "use" Parameter', 'DataError');
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Check alg parameter if present
|
|
75
|
+
const expectedUse = name === 'ECDH' ? 'enc' : 'sig';
|
|
76
|
+
(0, _utils.validateJwkStructure)(jwk, extractable, keyUsages, expectedUse);
|
|
86
77
|
if (jwk.alg !== undefined) {
|
|
87
78
|
let expectedAlg;
|
|
88
79
|
if (name === 'ECDSA') {
|
|
89
|
-
// Map namedCurve to expected ECDSA algorithm
|
|
90
80
|
expectedAlg = namedCurve === 'P-256' ? 'ES256' : namedCurve === 'P-384' ? 'ES384' : namedCurve === 'P-521' ? 'ES512' : undefined;
|
|
91
81
|
} else if (name === 'ECDH') {
|
|
92
|
-
// ECDH uses ECDH-ES algorithm
|
|
93
82
|
expectedAlg = 'ECDH-ES';
|
|
94
83
|
}
|
|
95
|
-
if (expectedAlg && jwk.alg !==
|
|
84
|
+
if (expectedAlg && jwk.alg !== expectedAlg) {
|
|
96
85
|
throw (0, _utils.lazyDOMException)('JWK "alg" does not match the requested algorithm', 'DataError');
|
|
97
86
|
}
|
|
98
87
|
}
|
|
99
|
-
|
|
100
|
-
|
|
88
|
+
const isPublicJwk = jwk.d === undefined;
|
|
89
|
+
const validUsagesJwk = name === 'ECDSA' ? isPublicJwk ? ['verify'] : ['sign'] : isPublicJwk ? [] : ['deriveKey', 'deriveBits'];
|
|
90
|
+
if ((0, _utils.hasAnyNotIn)(keyUsages, validUsagesJwk)) {
|
|
91
|
+
throw (0, _utils.lazyDOMException)(`Unsupported key usage for a ${name} key`, 'SyntaxError');
|
|
92
|
+
}
|
|
101
93
|
const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
|
|
102
|
-
|
|
94
|
+
let keyType;
|
|
95
|
+
try {
|
|
96
|
+
keyType = handle.initJwk(jwk, namedCurve);
|
|
97
|
+
} catch (err) {
|
|
98
|
+
throw (0, _utils.lazyDOMException)('Invalid keyData', {
|
|
99
|
+
name: 'DataError',
|
|
100
|
+
cause: err
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
103
|
if (keyType === undefined) {
|
|
104
|
-
throw (0, _utils.lazyDOMException)('Invalid
|
|
104
|
+
throw (0, _utils.lazyDOMException)('Invalid keyData', 'DataError');
|
|
105
105
|
}
|
|
106
|
-
|
|
107
|
-
// Create the appropriate KeyObject based on type
|
|
108
106
|
let keyObject;
|
|
109
107
|
if (keyType === 1) {
|
|
110
108
|
keyObject = new _classes.PublicKeyObject(handle);
|
|
111
109
|
} else if (keyType === 2) {
|
|
112
110
|
keyObject = new _classes.PrivateKeyObject(handle);
|
|
113
111
|
} else {
|
|
114
|
-
throw (0, _utils.lazyDOMException)('
|
|
112
|
+
throw (0, _utils.lazyDOMException)('Invalid keyData', 'DataError');
|
|
115
113
|
}
|
|
116
114
|
return new _classes.CryptoKey(keyObject, algorithm, keyUsages, extractable);
|
|
117
115
|
}
|
|
118
|
-
|
|
119
|
-
// Handle binary formats (spki, pkcs8, raw)
|
|
120
116
|
if (format !== 'spki' && format !== 'pkcs8' && format !== 'raw') {
|
|
121
117
|
throw (0, _utils.lazyDOMException)(`Unsupported format: ${format}`, 'NotSupportedError');
|
|
122
118
|
}
|
|
123
|
-
|
|
124
|
-
// Determine expected key type based on format
|
|
125
119
|
const expectedKeyType = format === 'spki' || format === 'raw' ? 'public' : 'private';
|
|
126
|
-
|
|
127
|
-
// Validate usages for the key type
|
|
128
120
|
const isPublicKey = expectedKeyType === 'public';
|
|
129
121
|
let validUsages;
|
|
130
122
|
if (name === 'ECDSA') {
|
|
@@ -155,6 +147,17 @@ function ecImportKey(format, keyData, algorithm, extractable, keyUsages) {
|
|
|
155
147
|
} else {
|
|
156
148
|
// Use standard DER import for spki/pkcs8
|
|
157
149
|
keyObject = _classes.KeyObject.createKeyObject(expectedKeyType, keyBuffer, _utils.KFormatType.DER, format === 'spki' ? _utils.KeyEncoding.SPKI : _utils.KeyEncoding.PKCS8);
|
|
150
|
+
|
|
151
|
+
// Validate the imported curve matches the requested algorithm.namedCurve.
|
|
152
|
+
const expectedAlias = _utils.kNamedCurveAliases[namedCurve];
|
|
153
|
+
if (keyObject.handle.keyDetail().namedCurve !== expectedAlias) {
|
|
154
|
+
throw (0, _utils.lazyDOMException)('Named curve mismatch', 'DataError');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Verify the public/private point lies on the named curve.
|
|
159
|
+
if (!keyObject.handle.checkEcKeyData()) {
|
|
160
|
+
throw (0, _utils.lazyDOMException)('Invalid keyData', 'DataError');
|
|
158
161
|
}
|
|
159
162
|
return new _classes.CryptoKey(keyObject, algorithm, keyUsages, extractable);
|
|
160
163
|
}
|
|
@@ -282,6 +285,8 @@ function ec_formatKeyPairOutput(ec, encoding) {
|
|
|
282
285
|
let privateKey;
|
|
283
286
|
if (publicFormat === -1) {
|
|
284
287
|
publicKey = pub;
|
|
288
|
+
} else if (publicFormat === 'raw-public') {
|
|
289
|
+
publicKey = _reactNativeBuffer.Buffer.from(pub.handle.exportECPublicRaw(publicType === 'compressed'));
|
|
285
290
|
} else {
|
|
286
291
|
const format = publicFormat === _utils.KFormatType.PEM ? _utils.KFormatType.PEM : _utils.KFormatType.DER;
|
|
287
292
|
const keyEncoding = publicType === _utils.KeyEncoding.SPKI ? _utils.KeyEncoding.SPKI : _utils.KeyEncoding.SPKI;
|
|
@@ -294,6 +299,8 @@ function ec_formatKeyPairOutput(ec, encoding) {
|
|
|
294
299
|
}
|
|
295
300
|
if (privateFormat === -1) {
|
|
296
301
|
privateKey = priv;
|
|
302
|
+
} else if (privateFormat === 'raw-private') {
|
|
303
|
+
privateKey = _reactNativeBuffer.Buffer.from(priv.handle.exportECPrivateRaw());
|
|
297
304
|
} else {
|
|
298
305
|
const format = privateFormat === _utils.KFormatType.PEM ? _utils.KFormatType.PEM : _utils.KFormatType.DER;
|
|
299
306
|
const keyEncoding = privateType === _utils.KeyEncoding.PKCS8 ? _utils.KeyEncoding.PKCS8 : privateType === _utils.KeyEncoding.SEC1 ? _utils.KeyEncoding.SEC1 : _utils.KeyEncoding.PKCS8;
|
package/lib/commonjs/ec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","_classes","_utils","_reactNativeBuffer","_ecdh","EcUtils","native","_native","NitroModules","createHybridObject","getSupportedCurves","getCurves","Ec","constructor","curve","setCurve","generateKeyPair","publicKey","getPublicKey","privateKey","getPrivateKey","generateKeyPairSync","exports","ecImportKey","format","keyData","algorithm","extractable","keyUsages","name","namedCurve","kNamedCurveAliases","lazyDOMException","jwk","kty","crv","use","undefined","expectedUse","alg","expectedAlg","handle","keyType","initJwk","keyObject","PublicKeyObject","PrivateKeyObject","CryptoKey","expectedKeyType","isPublicKey","validUsages","hasAnyNotIn","keyBuffer","bufferLikeToArrayBuffer","curveAlias","initECRaw","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","PKCS8","ecdsaSignVerify","key","data","hash","signature","isSign","type","hashName","normalizedHashName","normalizeHashName","HashContext","WebCrypto","ec","encoding","exportKey","importKey","usages","dataBuffer","sign","signatureBuffer","verify","ec_generateKeyPair","_options","Object","keys","includes","publicUsages","privateUsages","getUsagesUnion","keyAlgorithm","publicKeyData","privateKeyData","pub","priv","ec_prepareKeyGenParams","options","Error","ec_formatKeyPairOutput","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","PEM","keyEncoding","exported","Buffer","from","Uint8Array","toString","SEC1","ec_generateKeyPairNode","ec_generateKeyPairNodeSync","ecDeriveBits","baseKey","length","public","opensslCurve","ecdh","ECDH","jwkPrivate","exportJwk","d","privateBytes","setPrivateKey","jwkPublic","x","y","publicBytes","concat","secret","computeSecret","secretBuf","buffer","byteLength","Math","ceil","slice","byteOffset"],"sourceRoot":"../../src","sources":["ec.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_classes","_utils","_reactNativeBuffer","_ecdh","EcUtils","native","_native","NitroModules","createHybridObject","getSupportedCurves","getCurves","Ec","constructor","curve","setCurve","generateKeyPair","publicKey","getPublicKey","privateKey","getPrivateKey","generateKeyPairSync","exports","ecImportKey","format","keyData","algorithm","extractable","keyUsages","name","namedCurve","kNamedCurveAliases","lazyDOMException","jwk","kty","crv","expectedUse","validateJwkStructure","alg","undefined","expectedAlg","isPublicJwk","d","validUsagesJwk","hasAnyNotIn","handle","keyType","initJwk","err","cause","keyObject","PublicKeyObject","PrivateKeyObject","CryptoKey","expectedKeyType","isPublicKey","validUsages","keyBuffer","bufferLikeToArrayBuffer","curveAlias","initECRaw","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","PKCS8","expectedAlias","keyDetail","checkEcKeyData","ecdsaSignVerify","key","data","hash","signature","isSign","type","hashName","normalizedHashName","normalizeHashName","HashContext","WebCrypto","ec","encoding","exportKey","importKey","usages","dataBuffer","sign","signatureBuffer","verify","ec_generateKeyPair","_options","Object","keys","includes","publicUsages","privateUsages","getUsagesUnion","keyAlgorithm","publicKeyData","privateKeyData","pub","priv","ec_prepareKeyGenParams","options","Error","ec_formatKeyPairOutput","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","Buffer","from","exportECPublicRaw","PEM","keyEncoding","exported","Uint8Array","toString","exportECPrivateRaw","SEC1","ec_generateKeyPairNode","ec_generateKeyPairNodeSync","ecDeriveBits","baseKey","length","public","opensslCurve","ecdh","ECDH","jwkPrivate","exportJwk","privateBytes","setPrivateKey","jwkPublic","x","y","publicBytes","concat","secret","computeSecret","secretBuf","buffer","byteLength","Math","ceil","slice","byteOffset"],"sourceRoot":"../../src","sources":["ec.ts"],"mappings":"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","ignoreList":[]}
|