summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHannes Magnusson <hannes.magnusson@creditkarma.com>2018-02-06 21:34:08 -0800
committerRuben Bridgewater <ruben@bridgewater.de>2018-02-22 11:22:03 +0100
commit5a6beb774128a890830d3dc7b742929dc539418e (patch)
tree00dfa069cb9f4f2b326a1ce8c402d478d9acdd83 /src
parent7876aeb0fe01acf007401cfedf12709f834c927b (diff)
downloadandroid-node-v8-5a6beb774128a890830d3dc7b742929dc539418e.tar.gz
android-node-v8-5a6beb774128a890830d3dc7b742929dc539418e.tar.bz2
android-node-v8-5a6beb774128a890830d3dc7b742929dc539418e.zip
crypto: add cert.pubkey containing the raw pubkey of certificate
PR-URL: https://github.com/nodejs/node/pull/17690 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'src')
-rw-r--r--src/env.h1
-rw-r--r--src/node_crypto.cc8
2 files changed, 9 insertions, 0 deletions
diff --git a/src/env.h b/src/env.h
index a4454d55c1..4df4cb13b8 100644
--- a/src/env.h
+++ b/src/env.h
@@ -242,6 +242,7 @@ struct PackageConfig {
V(priority_string, "priority") \
V(produce_cached_data_string, "produceCachedData") \
V(promise_string, "promise") \
+ V(pubkey_string, "pubkey") \
V(raw_string, "raw") \
V(read_host_object_string, "_readHostObject") \
V(readable_string, "readable") \
diff --git a/src/node_crypto.cc b/src/node_crypto.cc
index 202de9cf67..a21e37408d 100644
--- a/src/node_crypto.cc
+++ b/src/node_crypto.cc
@@ -1898,6 +1898,14 @@ static Local<Object> X509ToObject(Environment* env, X509* cert) {
String::kNormalString,
mem->length)).FromJust();
USE(BIO_reset(bio));
+
+ int size = i2d_RSA_PUBKEY(rsa, nullptr);
+ CHECK_GE(size, 0);
+ Local<Object> pubbuff = Buffer::New(env, size).ToLocalChecked();
+ unsigned char* pubserialized =
+ reinterpret_cast<unsigned char*>(Buffer::Data(pubbuff));
+ i2d_RSA_PUBKEY(rsa, &pubserialized);
+ info->Set(env->pubkey_string(), pubbuff);
}
if (pkey != nullptr) {