Skip to content

Commit

Permalink
src,crypto: remove uses of AllocatedBuffer from crypto_rsa.cc
Browse files Browse the repository at this point in the history
Refs: #39941
Signed-off-by: Darshan Sen <raisinten@gmail.com>

PR-URL: #42852
Reviewed-By: Anna Henningsen <anna@addaleax.net>
  • Loading branch information
RaisinTen authored and juanarbol committed May 31, 2022
1 parent 6a479d8 commit 70c4f39
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions src/crypto/crypto_rsa.cc
Expand Up @@ -15,6 +15,8 @@

namespace node {

using v8::ArrayBuffer;
using v8::BackingStore;
using v8::FunctionCallbackInfo;
using v8::Int32;
using v8::Just;
Expand Down Expand Up @@ -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>();
}
Expand Down

0 comments on commit 70c4f39

Please sign in to comment.