Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
src: add encoding_type variable in WritePrivateKey
This commit adds a local variable named encoding_type which is set to
the value of the Maybe using ToChecked().

The motivation for this is the code for ToChecked() could be executed
multiple times depending on path taken at runtime. I also think this
improves readability, or at least it is as readable as before this
change.

PR-URL: #34181
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: David Carlier <devnexen@gmail.com>
  • Loading branch information
danbev authored and MylesBorins committed Jul 16, 2020
1 parent daf2abf commit 3e3d908
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/node_crypto.cc
Expand Up @@ -3151,7 +3151,8 @@ static MaybeLocal<Value> WritePrivateKey(

bool err;

if (config.type_.ToChecked() == kKeyEncodingPKCS1) {
PKEncodingType encoding_type = config.type_.ToChecked();
if (encoding_type == kKeyEncodingPKCS1) {
// PKCS#1 is only permitted for RSA keys.
CHECK_EQ(EVP_PKEY_id(pkey), EVP_PKEY_RSA);

Expand All @@ -3171,7 +3172,7 @@ static MaybeLocal<Value> WritePrivateKey(
CHECK_NULL(config.cipher_);
err = i2d_RSAPrivateKey_bio(bio.get(), rsa.get()) != 1;
}
} else if (config.type_.ToChecked() == kKeyEncodingPKCS8) {
} else if (encoding_type == kKeyEncodingPKCS8) {
if (config.format_ == kKeyFormatPEM) {
// Encode PKCS#8 as PEM.
err = PEM_write_bio_PKCS8PrivateKey(
Expand All @@ -3191,7 +3192,7 @@ static MaybeLocal<Value> WritePrivateKey(
nullptr, nullptr) != 1;
}
} else {
CHECK_EQ(config.type_.ToChecked(), kKeyEncodingSEC1);
CHECK_EQ(encoding_type, kKeyEncodingSEC1);

// SEC1 is only permitted for EC keys.
CHECK_EQ(EVP_PKEY_id(pkey), EVP_PKEY_EC);
Expand Down

0 comments on commit 3e3d908

Please sign in to comment.