src,crypto: remove uses of AllocatedBuffer from crypto_rsa.cc

Refs: https://github.com/nodejs/node/pull/39941
Signed-off-by: Darshan Sen <raisinten@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/42852
Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
Darshan Sen
2022-05-05 02:03:09 +05:30
committed by GitHub
parent a5b8730525
commit 7ff2170f36

View File

@@ -15,6 +15,8 @@
namespace node {
using v8::ArrayBuffer;
using v8::BackingStore;
using v8::FunctionCallbackInfo;
using v8::Int32;
using v8::Just;
@@ -555,17 +557,21 @@ Maybe<bool> GetRsaKeyDetail(
return Nothing<bool>();
}
int len = BN_num_bytes(e);
AllocatedBuffer public_exponent = AllocatedBuffer::AllocateManaged(env, len);
unsigned char* data =
reinterpret_cast<unsigned char*>(public_exponent.data());
CHECK_EQ(BN_bn2binpad(e, data, len), len);
std::unique_ptr<BackingStore> public_exponent;
{
NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data());
public_exponent =
ArrayBuffer::NewBackingStore(env->isolate(), BN_num_bytes(e));
}
CHECK_EQ(BN_bn2binpad(e,
static_cast<unsigned char*>(public_exponent->Data()),
public_exponent->ByteLength()),
static_cast<int>(public_exponent->ByteLength()));
if (target
->Set(
env->context(),
env->public_exponent_string(),
public_exponent.ToArrayBuffer())
->Set(env->context(),
env->public_exponent_string(),
ArrayBuffer::New(env->isolate(), std::move(public_exponent)))
.IsNothing()) {
return Nothing<bool>();
}