react-native-quick-crypto 1.1.4 → 1.1.6
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 -1
- package/cpp/hkdf/HybridHkdf.cpp +25 -8
- package/cpp/hkdf/HybridHkdf.hpp +3 -2
- package/cpp/keys/HybridKeyObjectHandle.cpp +2 -1
- package/cpp/keys/KeyObjectData.cpp +47 -17
- package/lib/commonjs/hkdf.js +73 -3
- package/lib/commonjs/hkdf.js.map +1 -1
- package/lib/commonjs/keys/classes.js +2 -8
- package/lib/commonjs/keys/classes.js.map +1 -1
- package/lib/commonjs/keys/index.js +13 -7
- package/lib/commonjs/keys/index.js.map +1 -1
- package/lib/module/hkdf.js +69 -3
- package/lib/module/hkdf.js.map +1 -1
- package/lib/module/keys/classes.js +2 -8
- package/lib/module/keys/classes.js.map +1 -1
- package/lib/module/keys/index.js +13 -7
- package/lib/module/keys/index.js.map +1 -1
- package/lib/typescript/hkdf.d.ts +4 -0
- package/lib/typescript/hkdf.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +4 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/classes.d.ts +1 -1
- package/lib/typescript/keys/classes.d.ts.map +1 -1
- package/lib/typescript/keys/index.d.ts.map +1 -1
- package/lib/typescript/specs/hkdf.nitro.d.ts +3 -2
- package/lib/typescript/specs/hkdf.nitro.d.ts.map +1 -1
- package/nitrogen/generated/shared/c++/HkdfMode.hpp +80 -0
- package/nitrogen/generated/shared/c++/HybridHkdfSpec.hpp +5 -3
- package/package.json +1 -1
- package/src/hkdf.ts +142 -0
- package/src/keys/classes.ts +2 -6
- package/src/keys/index.ts +20 -5
- package/src/specs/hkdf.nitro.ts +6 -0
package/QuickCrypto.podspec
CHANGED
|
@@ -184,7 +184,7 @@ Pod::Spec.new do |s|
|
|
|
184
184
|
load "nitrogen/generated/ios/QuickCrypto+autolinking.rb"
|
|
185
185
|
add_nitrogen_files(s)
|
|
186
186
|
|
|
187
|
-
s.dependency "OpenSSL-Universal", "~> 3.6"
|
|
187
|
+
s.dependency "OpenSSL-Universal", "~> 3.6.2000"
|
|
188
188
|
s.dependency "React-jsi"
|
|
189
189
|
s.dependency "React-callinvoker"
|
|
190
190
|
|
package/cpp/hkdf/HybridHkdf.cpp
CHANGED
|
@@ -12,23 +12,22 @@
|
|
|
12
12
|
|
|
13
13
|
namespace margelo::nitro::crypto {
|
|
14
14
|
|
|
15
|
-
std::shared_ptr<Promise<std::shared_ptr<ArrayBuffer>>>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const std::shared_ptr<ArrayBuffer>& info, double length) {
|
|
15
|
+
std::shared_ptr<Promise<std::shared_ptr<ArrayBuffer>>>
|
|
16
|
+
HybridHkdf::deriveKey(const std::string& algorithm, const std::shared_ptr<ArrayBuffer>& key, const std::shared_ptr<ArrayBuffer>& salt,
|
|
17
|
+
const std::shared_ptr<ArrayBuffer>& info, double length, HkdfMode mode) {
|
|
19
18
|
// get owned NativeArrayBuffers before passing to sync function
|
|
20
19
|
auto nativeKey = ToNativeArrayBuffer(key);
|
|
21
20
|
auto nativeSalt = ToNativeArrayBuffer(salt);
|
|
22
21
|
auto nativeInfo = ToNativeArrayBuffer(info);
|
|
23
22
|
|
|
24
|
-
return Promise<std::shared_ptr<ArrayBuffer>>::async([this, algorithm, nativeKey, nativeSalt, nativeInfo, length]() {
|
|
25
|
-
return this->deriveKeySync(algorithm, nativeKey, nativeSalt, nativeInfo, length);
|
|
23
|
+
return Promise<std::shared_ptr<ArrayBuffer>>::async([this, algorithm, nativeKey, nativeSalt, nativeInfo, length, mode]() {
|
|
24
|
+
return this->deriveKeySync(algorithm, nativeKey, nativeSalt, nativeInfo, length, mode);
|
|
26
25
|
});
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
std::shared_ptr<ArrayBuffer> HybridHkdf::deriveKeySync(const std::string& algorithm, const std::shared_ptr<ArrayBuffer>& baseKey,
|
|
30
29
|
const std::shared_ptr<ArrayBuffer>& salt, const std::shared_ptr<ArrayBuffer>& info,
|
|
31
|
-
double length) {
|
|
30
|
+
double length, HkdfMode mode) {
|
|
32
31
|
EVP_KDF* kdf = EVP_KDF_fetch(nullptr, "HKDF", nullptr);
|
|
33
32
|
if (kdf == nullptr) {
|
|
34
33
|
throw std::runtime_error("Failed to fetch HKDF implementation: " + std::to_string(ERR_get_error()));
|
|
@@ -41,9 +40,27 @@ std::shared_ptr<ArrayBuffer> HybridHkdf::deriveKeySync(const std::string& algori
|
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
// Set up parameters
|
|
44
|
-
OSSL_PARAM params[
|
|
43
|
+
OSSL_PARAM params[6];
|
|
45
44
|
size_t paramIndex = 0;
|
|
46
45
|
|
|
46
|
+
// HKDF mode (RFC 5869): full extract+expand, extract-only (PRK), or expand-only.
|
|
47
|
+
int hkdfMode;
|
|
48
|
+
switch (mode) {
|
|
49
|
+
case HkdfMode::EXTRACT:
|
|
50
|
+
hkdfMode = EVP_KDF_HKDF_MODE_EXTRACT_ONLY;
|
|
51
|
+
break;
|
|
52
|
+
case HkdfMode::EXPAND:
|
|
53
|
+
hkdfMode = EVP_KDF_HKDF_MODE_EXPAND_ONLY;
|
|
54
|
+
break;
|
|
55
|
+
case HkdfMode::FULL:
|
|
56
|
+
hkdfMode = EVP_KDF_HKDF_MODE_EXTRACT_AND_EXPAND;
|
|
57
|
+
break;
|
|
58
|
+
default:
|
|
59
|
+
EVP_KDF_CTX_free(ctx);
|
|
60
|
+
throw std::runtime_error("Unknown HKDF mode");
|
|
61
|
+
}
|
|
62
|
+
params[paramIndex++] = OSSL_PARAM_construct_int(OSSL_KDF_PARAM_MODE, &hkdfMode);
|
|
63
|
+
|
|
47
64
|
params[paramIndex++] = OSSL_PARAM_construct_utf8_string(OSSL_KDF_PARAM_DIGEST, const_cast<char*>(algorithm.c_str()), 0);
|
|
48
65
|
|
|
49
66
|
// Key (Input Keying Material)
|
package/cpp/hkdf/HybridHkdf.hpp
CHANGED
|
@@ -19,10 +19,11 @@ class HybridHkdf : public HybridHkdfSpec {
|
|
|
19
19
|
// Methods
|
|
20
20
|
std::shared_ptr<ArrayBuffer> deriveKeySync(const std::string& algorithm, const std::shared_ptr<ArrayBuffer>& key,
|
|
21
21
|
const std::shared_ptr<ArrayBuffer>& salt, const std::shared_ptr<ArrayBuffer>& info,
|
|
22
|
-
double length) override;
|
|
22
|
+
double length, HkdfMode mode) override;
|
|
23
23
|
std::shared_ptr<Promise<std::shared_ptr<ArrayBuffer>>> deriveKey(const std::string& algorithm, const std::shared_ptr<ArrayBuffer>& key,
|
|
24
24
|
const std::shared_ptr<ArrayBuffer>& salt,
|
|
25
|
-
const std::shared_ptr<ArrayBuffer>& info, double length
|
|
25
|
+
const std::shared_ptr<ArrayBuffer>& info, double length,
|
|
26
|
+
HkdfMode mode) override;
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
} // namespace margelo::nitro::crypto
|
|
@@ -231,7 +231,8 @@ std::shared_ptr<ArrayBuffer> HybridKeyObjectHandle::exportKey(std::optional<KFor
|
|
|
231
231
|
|
|
232
232
|
if (passphrase.has_value()) {
|
|
233
233
|
auto& passphrase_ptr = passphrase.value();
|
|
234
|
-
config.passphrase =
|
|
234
|
+
config.passphrase =
|
|
235
|
+
std::make_optional(ncrypto::DataPointer::Copy(ncrypto::Buffer<const void>{passphrase_ptr->data(), passphrase_ptr->size()}));
|
|
235
236
|
}
|
|
236
237
|
|
|
237
238
|
auto result = pkey.writePrivateKey(config);
|
|
@@ -29,7 +29,8 @@ KeyObjectData TryParsePrivateKey(std::shared_ptr<ArrayBuffer> key, std::optional
|
|
|
29
29
|
|
|
30
30
|
if (passphrase.has_value()) {
|
|
31
31
|
auto& passphrase_ptr = passphrase.value();
|
|
32
|
-
config.passphrase =
|
|
32
|
+
config.passphrase =
|
|
33
|
+
std::make_optional(ncrypto::DataPointer::Copy(ncrypto::Buffer<const void>{passphrase_ptr->data(), passphrase_ptr->size()}));
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
auto buffer = ncrypto::Buffer<const unsigned char>{key->data(), key->size()};
|
|
@@ -44,13 +45,21 @@ KeyObjectData TryParsePrivateKey(std::shared_ptr<ArrayBuffer> key, std::optional
|
|
|
44
45
|
|
|
45
46
|
if (res.error.has_value() && res.error.value() == ncrypto::EVPKeyPointer::PKParseError::NEED_PASSPHRASE) {
|
|
46
47
|
throw std::runtime_error("Passphrase required for encrypted key");
|
|
47
|
-
} else {
|
|
48
|
-
// Get OpenSSL error details
|
|
49
|
-
unsigned long err = ERR_get_error();
|
|
50
|
-
char err_buf[256];
|
|
51
|
-
ERR_error_string_n(err, err_buf, sizeof(err_buf));
|
|
52
|
-
throw std::runtime_error("Failed to read private key: " + std::string(err_buf));
|
|
53
48
|
}
|
|
49
|
+
|
|
50
|
+
// ncrypto only maps ERR_LIB_PEM/PEM_R_BAD_PASSWORD_READ to NEED_PASSPHRASE. On OpenSSL 3.6+
|
|
51
|
+
// PEM_read_bio_PrivateKey surfaces a missing-passphrase callback as
|
|
52
|
+
// ERR_R_INTERRUPTED_OR_CANCELLED on ERR_LIB_CRYPTO instead.
|
|
53
|
+
if (!passphrase.has_value() && res.openssl_error.has_value() &&
|
|
54
|
+
ERR_GET_REASON(res.openssl_error.value()) == ERR_R_INTERRUPTED_OR_CANCELLED) {
|
|
55
|
+
throw std::runtime_error("Passphrase required for encrypted key");
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Get OpenSSL error details
|
|
59
|
+
unsigned long err = ERR_get_error();
|
|
60
|
+
char err_buf[256];
|
|
61
|
+
ERR_error_string_n(err, err_buf, sizeof(err_buf));
|
|
62
|
+
throw std::runtime_error("Failed to read private key: " + std::string(err_buf));
|
|
54
63
|
}
|
|
55
64
|
|
|
56
65
|
KeyObjectData::KeyObjectData(std::nullptr_t) : key_type_(KeyType::SECRET) {}
|
|
@@ -133,7 +142,8 @@ KeyObjectData KeyObjectData::GetPublicOrPrivateKey(std::shared_ptr<ArrayBuffer>
|
|
|
133
142
|
auto config = GetPrivateKeyEncodingConfig(actualFormat, type.value());
|
|
134
143
|
if (passphrase.has_value()) {
|
|
135
144
|
auto& passphrase_ptr = passphrase.value();
|
|
136
|
-
config.passphrase =
|
|
145
|
+
config.passphrase =
|
|
146
|
+
std::make_optional(ncrypto::DataPointer::Copy(ncrypto::Buffer<const void>{passphrase_ptr->data(), passphrase_ptr->size()}));
|
|
137
147
|
}
|
|
138
148
|
ERR_clear_error();
|
|
139
149
|
auto private_res = ncrypto::EVPKeyPointer::TryParsePrivateKey(config, buffer);
|
|
@@ -155,7 +165,8 @@ KeyObjectData KeyObjectData::GetPublicOrPrivateKey(std::shared_ptr<ArrayBuffer>
|
|
|
155
165
|
auto config = GetPrivateKeyEncodingConfig(actualFormat, actualType);
|
|
156
166
|
if (passphrase.has_value()) {
|
|
157
167
|
auto& passphrase_ptr = passphrase.value();
|
|
158
|
-
config.passphrase =
|
|
168
|
+
config.passphrase =
|
|
169
|
+
std::make_optional(ncrypto::DataPointer::Copy(ncrypto::Buffer<const void>{passphrase_ptr->data(), passphrase_ptr->size()}));
|
|
159
170
|
}
|
|
160
171
|
|
|
161
172
|
ERR_clear_error();
|
|
@@ -181,25 +192,42 @@ KeyObjectData KeyObjectData::GetPublicOrPrivateKey(std::shared_ptr<ArrayBuffer>
|
|
|
181
192
|
auto private_config = GetPrivateKeyEncodingConfig(actualFormat, type.value());
|
|
182
193
|
if (passphrase.has_value()) {
|
|
183
194
|
auto& passphrase_ptr = passphrase.value();
|
|
184
|
-
private_config.passphrase =
|
|
195
|
+
private_config.passphrase =
|
|
196
|
+
std::make_optional(ncrypto::DataPointer::Copy(ncrypto::Buffer<const void>{passphrase_ptr->data(), passphrase_ptr->size()}));
|
|
185
197
|
}
|
|
186
198
|
auto res = ncrypto::EVPKeyPointer::TryParsePrivateKey(private_config, buffer);
|
|
187
199
|
if (res) {
|
|
188
200
|
return CreateAsymmetric(KeyType::PRIVATE, std::move(res.value));
|
|
189
201
|
}
|
|
190
202
|
} else {
|
|
191
|
-
// If no encoding type specified, try both SPKI and PKCS8
|
|
203
|
+
// If no encoding type specified, try both SPKI and PKCS8. Clear the OpenSSL error
|
|
204
|
+
// queue between attempts so a failed first parse doesn't taint ncrypto's
|
|
205
|
+
// post-parse ERR_peek_error() check on the second.
|
|
206
|
+
ERR_clear_error();
|
|
192
207
|
auto public_config = GetPublicKeyEncodingConfig(actualFormat, KeyEncoding::SPKI);
|
|
193
208
|
auto public_res = ncrypto::EVPKeyPointer::TryParsePublicKey(public_config, buffer);
|
|
194
209
|
if (public_res) {
|
|
195
210
|
return CreateAsymmetric(KeyType::PUBLIC, std::move(public_res.value));
|
|
196
211
|
}
|
|
197
212
|
|
|
213
|
+
ERR_clear_error();
|
|
198
214
|
auto private_config = GetPrivateKeyEncodingConfig(actualFormat, KeyEncoding::PKCS8);
|
|
215
|
+
if (passphrase.has_value()) {
|
|
216
|
+
auto& passphrase_ptr = passphrase.value();
|
|
217
|
+
private_config.passphrase =
|
|
218
|
+
std::make_optional(ncrypto::DataPointer::Copy(ncrypto::Buffer<const void>{passphrase_ptr->data(), passphrase_ptr->size()}));
|
|
219
|
+
}
|
|
199
220
|
auto private_res = ncrypto::EVPKeyPointer::TryParsePrivateKey(private_config, buffer);
|
|
200
221
|
if (private_res) {
|
|
201
222
|
return CreateAsymmetric(KeyType::PRIVATE, std::move(private_res.value));
|
|
202
223
|
}
|
|
224
|
+
if (private_res.error.has_value() && private_res.error.value() == ncrypto::EVPKeyPointer::PKParseError::NEED_PASSPHRASE) {
|
|
225
|
+
throw std::runtime_error("Passphrase required for encrypted key");
|
|
226
|
+
}
|
|
227
|
+
if (!passphrase.has_value() && private_res.openssl_error.has_value() &&
|
|
228
|
+
ERR_GET_REASON(private_res.openssl_error.value()) == ERR_R_INTERRUPTED_OR_CANCELLED) {
|
|
229
|
+
throw std::runtime_error("Passphrase required for encrypted key");
|
|
230
|
+
}
|
|
203
231
|
}
|
|
204
232
|
throw std::runtime_error("Failed to read DER asymmetric key");
|
|
205
233
|
}
|
|
@@ -232,7 +260,8 @@ KeyObjectData KeyObjectData::GetPrivateKey(std::shared_ptr<ArrayBuffer> key, std
|
|
|
232
260
|
auto private_config = GetPrivateKeyEncodingConfig(actualFormat, primaryEncoding);
|
|
233
261
|
if (passphrase.has_value()) {
|
|
234
262
|
auto& passphrase_ptr = passphrase.value();
|
|
235
|
-
private_config.passphrase =
|
|
263
|
+
private_config.passphrase =
|
|
264
|
+
std::make_optional(ncrypto::DataPointer::Copy(ncrypto::Buffer<const void>{passphrase_ptr->data(), passphrase_ptr->size()}));
|
|
236
265
|
}
|
|
237
266
|
|
|
238
267
|
// Clear any existing OpenSSL errors before parsing
|
|
@@ -242,22 +271,23 @@ KeyObjectData KeyObjectData::GetPrivateKey(std::shared_ptr<ArrayBuffer> key, std
|
|
|
242
271
|
if (res) {
|
|
243
272
|
return CreateAsymmetric(KeyType::PRIVATE, std::move(res.value));
|
|
244
273
|
}
|
|
274
|
+
if (res.error.has_value() && res.error.value() == ncrypto::EVPKeyPointer::PKParseError::NEED_PASSPHRASE) {
|
|
275
|
+
throw std::runtime_error("Passphrase required for encrypted key");
|
|
276
|
+
}
|
|
245
277
|
|
|
246
|
-
// If no specific encoding was provided, try other encodings as fallback
|
|
278
|
+
// If no specific encoding was provided, try other encodings as fallback.
|
|
279
|
+
// SEC1/PKCS1 DER are never encrypted, so passphrase is irrelevant here.
|
|
247
280
|
if (!type.has_value()) {
|
|
248
281
|
std::vector<KeyEncoding> fallbackEncodings = {KeyEncoding::SEC1, KeyEncoding::PKCS1};
|
|
249
282
|
for (auto encoding : fallbackEncodings) {
|
|
250
283
|
auto config = GetPrivateKeyEncodingConfig(actualFormat, encoding);
|
|
251
|
-
if (passphrase.has_value()) {
|
|
252
|
-
auto& passphrase_ptr = passphrase.value();
|
|
253
|
-
config.passphrase = std::make_optional(ncrypto::DataPointer(passphrase_ptr->data(), passphrase_ptr->size()));
|
|
254
|
-
}
|
|
255
284
|
auto fallback_res = ncrypto::EVPKeyPointer::TryParsePrivateKey(config, buffer);
|
|
256
285
|
if (fallback_res) {
|
|
257
286
|
return CreateAsymmetric(KeyType::PRIVATE, std::move(fallback_res.value));
|
|
258
287
|
}
|
|
259
288
|
}
|
|
260
289
|
}
|
|
290
|
+
|
|
261
291
|
throw std::runtime_error("Failed to read DER private key");
|
|
262
292
|
}
|
|
263
293
|
}
|
package/lib/commonjs/hkdf.js
CHANGED
|
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.hkdf = hkdf;
|
|
7
7
|
exports.hkdfDeriveBits = hkdfDeriveBits;
|
|
8
|
+
exports.hkdfExpand = hkdfExpand;
|
|
9
|
+
exports.hkdfExpandSync = hkdfExpandSync;
|
|
10
|
+
exports.hkdfExtract = hkdfExtract;
|
|
11
|
+
exports.hkdfExtractSync = hkdfExtractSync;
|
|
8
12
|
exports.hkdfSync = hkdfSync;
|
|
9
13
|
var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
|
|
10
14
|
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
@@ -46,6 +50,13 @@ const HKDF_HASH_BYTES = {
|
|
|
46
50
|
'sha3-512': 64,
|
|
47
51
|
ripemd160: 20
|
|
48
52
|
};
|
|
53
|
+
function hkdfHashLen(digest) {
|
|
54
|
+
const hashLen = HKDF_HASH_BYTES[digest.toLowerCase()];
|
|
55
|
+
if (hashLen === undefined) {
|
|
56
|
+
throw new TypeError(`Unsupported HKDF digest: ${digest}`);
|
|
57
|
+
}
|
|
58
|
+
return hashLen;
|
|
59
|
+
}
|
|
49
60
|
function validateHkdfKeylen(digest, keylen) {
|
|
50
61
|
if (typeof keylen !== 'number' || !Number.isFinite(keylen) || !Number.isInteger(keylen) || keylen < 0 || keylen > 0x7fff_ffff) {
|
|
51
62
|
throw new TypeError('Bad key length');
|
|
@@ -68,7 +79,7 @@ function hkdf(digest, key, salt, info, keylen, callback) {
|
|
|
68
79
|
const sanitizedInfo = sanitizeInput(info, 'Info');
|
|
69
80
|
validateHkdfKeylen(normalizedDigest, keylen);
|
|
70
81
|
const nativeMod = getNative();
|
|
71
|
-
nativeMod.deriveKey(normalizedDigest, sanitizedKey, sanitizedSalt, sanitizedInfo, keylen).then(res => {
|
|
82
|
+
nativeMod.deriveKey(normalizedDigest, sanitizedKey, sanitizedSalt, sanitizedInfo, keylen, 'full').then(res => {
|
|
72
83
|
callback(null, _reactNativeBuffer.Buffer.from(res));
|
|
73
84
|
}, err => {
|
|
74
85
|
callback(err);
|
|
@@ -84,9 +95,68 @@ function hkdfSync(digest, key, salt, info, keylen) {
|
|
|
84
95
|
const sanitizedInfo = sanitizeInput(info, 'Info');
|
|
85
96
|
validateHkdfKeylen(normalizedDigest, keylen);
|
|
86
97
|
const nativeMod = getNative();
|
|
87
|
-
const result = nativeMod.deriveKeySync(normalizedDigest, sanitizedKey, sanitizedSalt, sanitizedInfo, keylen);
|
|
98
|
+
const result = nativeMod.deriveKeySync(normalizedDigest, sanitizedKey, sanitizedSalt, sanitizedInfo, keylen, 'full');
|
|
99
|
+
return _reactNativeBuffer.Buffer.from(result);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// RFC 5869 §2.2 HKDF-Extract (sync): PRK = HMAC(salt, IKM). Salt defaults to
|
|
103
|
+
// a string of HashLen zeros when omitted. Returns a PRK of HashLen bytes.
|
|
104
|
+
function hkdfExtractSync(digest, ikm, salt = new Uint8Array(0)) {
|
|
105
|
+
const normalizedDigest = (0, _utils.normalizeHashName)(digest);
|
|
106
|
+
const hashLen = hkdfHashLen(normalizedDigest);
|
|
107
|
+
const sanitizedIkm = sanitizeInput(ikm, 'IKM');
|
|
108
|
+
const sanitizedSalt = sanitizeInput(salt, 'Salt');
|
|
109
|
+
const result = getNative().deriveKeySync(normalizedDigest, sanitizedIkm, sanitizedSalt, new ArrayBuffer(0), hashLen, 'extract');
|
|
110
|
+
return _reactNativeBuffer.Buffer.from(result);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Async HKDF-Extract, mirroring `hkdf`. Unlike the sync form, `salt` is
|
|
114
|
+
// required here because the callback occupies the trailing argument.
|
|
115
|
+
function hkdfExtract(digest, ikm, salt, callback) {
|
|
116
|
+
validateCallback(callback);
|
|
117
|
+
try {
|
|
118
|
+
const normalizedDigest = (0, _utils.normalizeHashName)(digest);
|
|
119
|
+
const hashLen = hkdfHashLen(normalizedDigest);
|
|
120
|
+
const sanitizedIkm = sanitizeInput(ikm, 'IKM');
|
|
121
|
+
const sanitizedSalt = sanitizeInput(salt, 'Salt');
|
|
122
|
+
getNative().deriveKey(normalizedDigest, sanitizedIkm, sanitizedSalt, new ArrayBuffer(0), hashLen, 'extract').then(res => callback(null, _reactNativeBuffer.Buffer.from(res)), err => callback(err));
|
|
123
|
+
} catch (err) {
|
|
124
|
+
callback(err);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// RFC 5869 §2.3 HKDF-Expand (sync): OKM = expand(PRK, info, L). `prk` must be
|
|
129
|
+
// at least HashLen bytes (a pseudorandom key, e.g. from hkdfExtract).
|
|
130
|
+
function hkdfExpandSync(digest, prk, info, keylen) {
|
|
131
|
+
const normalizedDigest = (0, _utils.normalizeHashName)(digest);
|
|
132
|
+
const hashLen = hkdfHashLen(normalizedDigest);
|
|
133
|
+
const sanitizedPrk = sanitizeInput(prk, 'PRK');
|
|
134
|
+
if (sanitizedPrk.byteLength < hashLen) {
|
|
135
|
+
throw new RangeError(`HKDF-Expand PRK must be at least HashLen (${hashLen}) bytes for ${digest}`);
|
|
136
|
+
}
|
|
137
|
+
const sanitizedInfo = sanitizeInput(info, 'Info');
|
|
138
|
+
validateHkdfKeylen(normalizedDigest, keylen);
|
|
139
|
+
const result = getNative().deriveKeySync(normalizedDigest, sanitizedPrk, new ArrayBuffer(0), sanitizedInfo, keylen, 'expand');
|
|
88
140
|
return _reactNativeBuffer.Buffer.from(result);
|
|
89
141
|
}
|
|
142
|
+
|
|
143
|
+
// Async HKDF-Expand, mirroring `hkdf`.
|
|
144
|
+
function hkdfExpand(digest, prk, info, keylen, callback) {
|
|
145
|
+
validateCallback(callback);
|
|
146
|
+
try {
|
|
147
|
+
const normalizedDigest = (0, _utils.normalizeHashName)(digest);
|
|
148
|
+
const hashLen = hkdfHashLen(normalizedDigest);
|
|
149
|
+
const sanitizedPrk = sanitizeInput(prk, 'PRK');
|
|
150
|
+
if (sanitizedPrk.byteLength < hashLen) {
|
|
151
|
+
throw new RangeError(`HKDF-Expand PRK must be at least HashLen (${hashLen}) bytes for ${digest}`);
|
|
152
|
+
}
|
|
153
|
+
const sanitizedInfo = sanitizeInput(info, 'Info');
|
|
154
|
+
validateHkdfKeylen(normalizedDigest, keylen);
|
|
155
|
+
getNative().deriveKey(normalizedDigest, sanitizedPrk, new ArrayBuffer(0), sanitizedInfo, keylen, 'expand').then(res => callback(null, _reactNativeBuffer.Buffer.from(res)), err => callback(err));
|
|
156
|
+
} catch (err) {
|
|
157
|
+
callback(err);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
90
160
|
function hkdfDeriveBits(algorithm, baseKey, length) {
|
|
91
161
|
const hash = algorithm.hash;
|
|
92
162
|
const salt = algorithm.salt;
|
|
@@ -102,7 +172,7 @@ function hkdfDeriveBits(algorithm, baseKey, length) {
|
|
|
102
172
|
const normalizedDigest = (0, _utils.normalizeHashName)(hashName);
|
|
103
173
|
validateHkdfKeylen(normalizedDigest, keylen);
|
|
104
174
|
const nativeMod = getNative();
|
|
105
|
-
const result = nativeMod.deriveKeySync(normalizedDigest, (0, _utils.binaryLikeToArrayBuffer)(keyBuffer), (0, _utils.binaryLikeToArrayBuffer)(salt), (0, _utils.binaryLikeToArrayBuffer)(info), keylen);
|
|
175
|
+
const result = nativeMod.deriveKeySync(normalizedDigest, (0, _utils.binaryLikeToArrayBuffer)(keyBuffer), (0, _utils.binaryLikeToArrayBuffer)(salt), (0, _utils.binaryLikeToArrayBuffer)(info), keylen, 'full');
|
|
106
176
|
return result;
|
|
107
177
|
}
|
|
108
178
|
//# sourceMappingURL=hkdf.js.map
|
package/lib/commonjs/hkdf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeBuffer","require","_reactNativeNitroModules","_utils","native","getNative","NitroModules","createHybridObject","validateCallback","callback","undefined","Error","sanitizeInput","input","name","binaryLikeToArrayBuffer","HKDF_HASH_BYTES","sha1","sha224","sha256","sha384","sha512","ripemd160","
|
|
1
|
+
{"version":3,"names":["_reactNativeBuffer","require","_reactNativeNitroModules","_utils","native","getNative","NitroModules","createHybridObject","validateCallback","callback","undefined","Error","sanitizeInput","input","name","binaryLikeToArrayBuffer","HKDF_HASH_BYTES","sha1","sha224","sha256","sha384","sha512","ripemd160","hkdfHashLen","digest","hashLen","toLowerCase","TypeError","validateHkdfKeylen","keylen","Number","isFinite","isInteger","RangeError","hkdf","key","salt","info","normalizedDigest","normalizeHashName","sanitizedKey","sanitizedSalt","sanitizedInfo","nativeMod","deriveKey","then","res","Buffer","from","err","hkdfSync","result","deriveKeySync","hkdfExtractSync","ikm","Uint8Array","sanitizedIkm","ArrayBuffer","hkdfExtract","hkdfExpandSync","prk","sanitizedPrk","byteLength","hkdfExpand","hkdfDeriveBits","algorithm","baseKey","length","hash","keyBuffer","keyObject","export","Math","ceil","hashName"],"sourceRoot":"../../src","sources":["hkdf.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -103,7 +103,7 @@ class KeyObject {
|
|
|
103
103
|
toCryptoKey(algorithm, extractable, keyUsages) {
|
|
104
104
|
return new CryptoKey(this, algorithm, keyUsages, extractable);
|
|
105
105
|
}
|
|
106
|
-
static createKeyObject(type, key, format, encoding) {
|
|
106
|
+
static createKeyObject(type, key, format, encoding, passphrase) {
|
|
107
107
|
if (type !== 'secret' && type !== 'public' && type !== 'private') throw new Error(`invalid KeyObject type: ${type}`);
|
|
108
108
|
const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
|
|
109
109
|
let keyType;
|
|
@@ -120,13 +120,7 @@ class KeyObject {
|
|
|
120
120
|
default:
|
|
121
121
|
throw new Error('invalid key type');
|
|
122
122
|
}
|
|
123
|
-
|
|
124
|
-
// If format is provided, use it (encoding is optional)
|
|
125
|
-
if (format !== undefined) {
|
|
126
|
-
handle.init(keyType, key, format, encoding);
|
|
127
|
-
} else {
|
|
128
|
-
handle.init(keyType, key);
|
|
129
|
-
}
|
|
123
|
+
handle.init(keyType, key, format, encoding, passphrase);
|
|
130
124
|
|
|
131
125
|
// For asymmetric keys, return the appropriate subclass
|
|
132
126
|
if (type === 'public' || type === 'private') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeBuffer","require","_reactNativeNitroModules","_utils","_utils2","CryptoKey","Symbol","toStringTag","constructor","keyObject","keyAlgorithm","keyUsages","keyExtractable","Object","freeze","getSortedUsages","inspect","_depth","_options","Error","type","extractable","algorithm","usages","exports","KeyObject","export","equals","otherKeyObject","TypeError","handle","keyEquals","handleOrKey","ArrayBuffer","NitroModules","createHybridObject","keyType","KeyType","PUBLIC","PRIVATE","SECRET","init","from","key","toCryptoKey","createKeyObject","format","encoding","
|
|
1
|
+
{"version":3,"names":["_reactNativeBuffer","require","_reactNativeNitroModules","_utils","_utils2","CryptoKey","Symbol","toStringTag","constructor","keyObject","keyAlgorithm","keyUsages","keyExtractable","Object","freeze","getSortedUsages","inspect","_depth","_options","Error","type","extractable","algorithm","usages","exports","KeyObject","export","equals","otherKeyObject","TypeError","handle","keyEquals","handleOrKey","ArrayBuffer","NitroModules","createHybridObject","keyType","KeyType","PUBLIC","PRIVATE","SECRET","init","from","key","toCryptoKey","createKeyObject","format","encoding","passphrase","getAsymmetricKeyType","PublicKeyObject","PrivateKeyObject","SecretKeyObject","undefined","getAsymmetricKeyDetails","symmetricKeySize","getSymmetricKeySize","options","exportKey","Buffer","AsymmetricKeyObject","asymmetricKeyType","_asymmetricKeyType","asymmetricKeyDetails","_asymmetricKeyDetails","keyDetail","namedCurve","exportJwk","pointType","exportECPublicRaw","exportRawPublic","parsePublicKeyEncoding","buffer","toString","exportECPrivateRaw","exportRawPrivate","exportRawSeed","cipher","parsePrivateKeyEncoding"],"sourceRoot":"../../../src","sources":["keys/classes.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -231,8 +231,10 @@ function prepareAsymmetricKey(key, isPublic) {
|
|
|
231
231
|
const {
|
|
232
232
|
key: data,
|
|
233
233
|
format,
|
|
234
|
-
type
|
|
234
|
+
type,
|
|
235
|
+
passphrase
|
|
235
236
|
} = keyObj;
|
|
237
|
+
const passphraseAB = passphrase !== undefined ? (0, _utils2.binaryLikeToArrayBuffer)(passphrase) : undefined;
|
|
236
238
|
if (data instanceof _classes.KeyObject) {
|
|
237
239
|
return prepareAsymmetricKey(data, isPublic);
|
|
238
240
|
}
|
|
@@ -248,7 +250,8 @@ function prepareAsymmetricKey(key, isPublic) {
|
|
|
248
250
|
return {
|
|
249
251
|
data: (0, _utils2.binaryLikeToArrayBuffer)(data),
|
|
250
252
|
format: 'pem',
|
|
251
|
-
type
|
|
253
|
+
type,
|
|
254
|
+
passphrase: passphraseAB
|
|
252
255
|
};
|
|
253
256
|
}
|
|
254
257
|
|
|
@@ -258,7 +261,8 @@ function prepareAsymmetricKey(key, isPublic) {
|
|
|
258
261
|
return {
|
|
259
262
|
data: (0, _utils2.binaryLikeToArrayBuffer)(data),
|
|
260
263
|
format: filteredFormat,
|
|
261
|
-
type
|
|
264
|
+
type,
|
|
265
|
+
passphrase: passphraseAB
|
|
262
266
|
};
|
|
263
267
|
}
|
|
264
268
|
throw new Error('Invalid key input');
|
|
@@ -288,7 +292,8 @@ function createPublicKey(key) {
|
|
|
288
292
|
const {
|
|
289
293
|
data,
|
|
290
294
|
format,
|
|
291
|
-
type
|
|
295
|
+
type,
|
|
296
|
+
passphrase
|
|
292
297
|
} = prepareAsymmetricKey(key, true);
|
|
293
298
|
|
|
294
299
|
// Map format string to KFormatType enum
|
|
@@ -298,7 +303,7 @@ function createPublicKey(key) {
|
|
|
298
303
|
// Map type string to KeyEncoding enum
|
|
299
304
|
let kType;
|
|
300
305
|
if (type === 'spki') kType = _utils2.KeyEncoding.SPKI;else if (type === 'pkcs1') kType = _utils2.KeyEncoding.PKCS1;
|
|
301
|
-
return _classes.KeyObject.createKeyObject('public', data, kFormat, kType);
|
|
306
|
+
return _classes.KeyObject.createKeyObject('public', data, kFormat, kType, passphrase);
|
|
302
307
|
}
|
|
303
308
|
function createPrivateKey(key) {
|
|
304
309
|
if (typeof key === 'object' && 'key' in key && isRawFormat(key.format)) {
|
|
@@ -318,7 +323,8 @@ function createPrivateKey(key) {
|
|
|
318
323
|
const {
|
|
319
324
|
data,
|
|
320
325
|
format,
|
|
321
|
-
type
|
|
326
|
+
type,
|
|
327
|
+
passphrase
|
|
322
328
|
} = prepareAsymmetricKey(key, false);
|
|
323
329
|
|
|
324
330
|
// Map format string to KFormatType enum
|
|
@@ -328,7 +334,7 @@ function createPrivateKey(key) {
|
|
|
328
334
|
// Map type string to KeyEncoding enum
|
|
329
335
|
let kType;
|
|
330
336
|
if (type === 'pkcs8') kType = _utils2.KeyEncoding.PKCS8;else if (type === 'pkcs1') kType = _utils2.KeyEncoding.PKCS1;else if (type === 'sec1') kType = _utils2.KeyEncoding.SEC1;
|
|
331
|
-
return _classes.KeyObject.createKeyObject('private', data, kFormat, kType);
|
|
337
|
+
return _classes.KeyObject.createKeyObject('private', data, kFormat, kType, passphrase);
|
|
332
338
|
}
|
|
333
339
|
function generateKeySync(type, options) {
|
|
334
340
|
if (typeof type !== 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classes","require","_generateKeyPair","_signVerify","_publicCipher","_utils","_reactNativeNitroModules","_utils2","_random","isRawFormat","format","createPublicKeyFromRaw","input","Error","asymmetricKeyType","namedCurve","handle","NitroModules","createHybridObject","initRawPublic","toAB","key","PublicKeyObject","createPrivateKeyFromRaw","initRawSeed","initRawPrivate","PrivateKeyObject","createSecretKey","keyBuffer","KeyObject","createKeyObject","prepareAsymmetricKey","isPublic","type","exported","exportKey","KFormatType","DER","KeyEncoding","SPKI","data","PKCS8","isCryptoKey","cryptoKey","keyObject","isStringOrBuffer","isPem","includes","undefined","keyObj","filteredFormat","createPublicKey","keyType","initJwk","KeyType","PRIVATE","pubHandle","init","PUBLIC","kFormat","PEM","kType","PKCS1","createPrivateKey","SEC1","generateKeySync","options","TypeError","length","Number","isInteger","RangeError","keyBytes","keyMaterial","randomBytes","generateKey","callback","process","nextTick","err"],"sourceRoot":"../../../src","sources":["keys/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAQA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAQA,IAAAG,aAAA,GAAAH,OAAA;AAMA,IAAAI,MAAA,GAAAJ,OAAA;AAMA,IAAAK,wBAAA,GAAAL,OAAA;AAEA,IAAAM,OAAA,GAAAN,OAAA;AAOA,IAAAO,OAAA,GAAAP,OAAA;AAcA,SAASQ,WAAWA,CAClBC,MAA0B,EAC2B;EACrD,OACEA,MAAM,KAAK,YAAY,IAAIA,MAAM,KAAK,aAAa,IAAIA,MAAM,KAAK,UAAU;AAEhF;AAEA,SAASC,sBAAsBA,CAACC,KAAqB,EAAmB;EACtE,IAAIA,KAAK,CAACF,MAAM,KAAK,YAAY,EAAE;IACjC,MAAM,IAAIG,KAAK,CAAC,+CAA+C,CAAC;EAClE;EACA,IAAI,OAAOD,KAAK,CAACE,iBAAiB,KAAK,QAAQ,EAAE;IAC/C,MAAM,IAAID,KAAK,CAAC,0DAA0D,CAAC;EAC7E;EACA,IAAID,KAAK,CAACE,iBAAiB,KAAK,IAAI,IAAI,CAACF,KAAK,CAACG,UAAU,EAAE;IACzD,MAAM,IAAIF,KAAK,CAAC,sDAAsD,CAAC;EACzE;EACA,MAAMG,MAAM,GACVC,qCAAY,CAACC,kBAAkB,CAAkB,iBAAiB,CAAC;EACrEF,MAAM,CAACG,aAAa,CAClBP,KAAK,CAACE,iBAAiB,EACvB,IAAAM,+BAAI,EAACR,KAAK,CAACS,GAAiB,CAAC,EAC7BT,KAAK,CAACG,UACR,CAAC;EACD,OAAO,IAAIO,wBAAe,CAACN,MAAM,CAAC;AACpC;AAEA,SAASO,uBAAuBA,CAACX,KAAqB,EAAoB;EACxE,IAAIA,KAAK,CAACF,MAAM,KAAK,aAAa,IAAIE,KAAK,CAACF,MAAM,KAAK,UAAU,EAAE;IACjE,MAAM,IAAIG,KAAK,CAAC,gDAAgD,CAAC;EACnE;EACA,IAAI,OAAOD,KAAK,CAACE,iBAAiB,KAAK,QAAQ,EAAE;IAC/C,MAAM,IAAID,KAAK,CAAC,0DAA0D,CAAC;EAC7E;EACA,IAAID,KAAK,CAACE,iBAAiB,KAAK,IAAI,IAAI,CAACF,KAAK,CAACG,UAAU,EAAE;IACzD,MAAM,IAAIF,KAAK,CAAC,sDAAsD,CAAC;EACzE;EACA,MAAMG,MAAM,GACVC,qCAAY,CAACC,kBAAkB,CAAkB,iBAAiB,CAAC;EACrE,IAAIN,KAAK,CAACF,MAAM,KAAK,UAAU,EAAE;IAC/BM,MAAM,CAACQ,WAAW,CAACZ,KAAK,CAACE,iBAAiB,EAAE,IAAAM,+BAAI,EAACR,KAAK,CAACS,GAAiB,CAAC,CAAC;EAC5E,CAAC,MAAM;IACLL,MAAM,CAACS,cAAc,CACnBb,KAAK,CAACE,iBAAiB,EACvB,IAAAM,+BAAI,EAACR,KAAK,CAACS,GAAiB,CAAC,EAC7BT,KAAK,CAACG,UACR,CAAC;EACH;EACA,OAAO,IAAIW,yBAAgB,CAACV,MAAM,CAAC;AACrC;AAEA,SAASW,eAAeA,CAACN,GAAe,EAAmB;EACzD,MAAMO,SAAS,GAAG,IAAAR,+BAAI,EAACC,GAAG,CAAC;EAC3B,OAAOQ,kBAAS,CAACC,eAAe,CAAC,QAAQ,EAAEF,SAAS,CAAC;AACvD;AAEA,SAASG,oBAAoBA,CAC3BV,GAAa,EACbW,QAAiB,
|
|
1
|
+
{"version":3,"names":["_classes","require","_generateKeyPair","_signVerify","_publicCipher","_utils","_reactNativeNitroModules","_utils2","_random","isRawFormat","format","createPublicKeyFromRaw","input","Error","asymmetricKeyType","namedCurve","handle","NitroModules","createHybridObject","initRawPublic","toAB","key","PublicKeyObject","createPrivateKeyFromRaw","initRawSeed","initRawPrivate","PrivateKeyObject","createSecretKey","keyBuffer","KeyObject","createKeyObject","prepareAsymmetricKey","isPublic","type","exported","exportKey","KFormatType","DER","KeyEncoding","SPKI","data","PKCS8","isCryptoKey","cryptoKey","keyObject","isStringOrBuffer","isPem","includes","undefined","keyObj","passphrase","passphraseAB","filteredFormat","createPublicKey","keyType","initJwk","KeyType","PRIVATE","pubHandle","init","PUBLIC","kFormat","PEM","kType","PKCS1","createPrivateKey","SEC1","generateKeySync","options","TypeError","length","Number","isInteger","RangeError","keyBytes","keyMaterial","randomBytes","generateKey","callback","process","nextTick","err"],"sourceRoot":"../../../src","sources":["keys/index.ts"],"mappings":"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","ignoreList":[]}
|