diff options
author | Hannes Magnusson <hannes.magnusson@creditkarma.com> | 2018-02-06 21:34:08 -0800 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2018-02-22 11:22:03 +0100 |
commit | 5a6beb774128a890830d3dc7b742929dc539418e (patch) | |
tree | 00dfa069cb9f4f2b326a1ce8c402d478d9acdd83 /src | |
parent | 7876aeb0fe01acf007401cfedf12709f834c927b (diff) | |
download | android-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.h | 1 | ||||
-rw-r--r-- | src/node_crypto.cc | 8 |
2 files changed, 9 insertions, 0 deletions
@@ -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) { |