Print the curve name, not bit length in EVP_PKEY_print_* This is a departure from OpenSSL's output (which seems to just append even more information afterwards), but is a better way to identify the algorithm. Change-Id: Iccffdf9297bde5362d902d4de1d99de7b673bed2 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/54952 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/crypto/evp/evp_extra_test.cc b/crypto/evp/evp_extra_test.cc index 1b504aa..e192406 100644 --- a/crypto/evp/evp_extra_test.cc +++ b/crypto/evp/evp_extra_test.cc
@@ -762,14 +762,13 @@ 61 )"); - // TODO(davidben): This output should include the curve name. bssl::UniquePtr<EVP_PKEY> ec = ParsePrivateKey(EVP_PKEY_EC, kExampleECKeyDER, sizeof(kExampleECKeyDER)); ASSERT_TRUE(ec); EXPECT_EQ(PrintToString(ec.get(), /*indent=*/2, &EVP_PKEY_print_params), - " ECDSA-Parameters: (256 bit)\n"); + " ECDSA-Parameters: (P-256)\n"); EXPECT_EQ(PrintToString(ec.get(), /*indent=*/2, &EVP_PKEY_print_public), - R"( Public-Key: (256 bit) + R"( Public-Key: (P-256) pub: 04:e6:2b:69:e2:bf:65:9f:97:be:2f:1e:0d:94:8a: 4c:d5:97:6b:b7:a9:1e:0d:46:fb:dd:a9:a9:1e:9d: @@ -778,7 +777,7 @@ 4b:cf:72:22:c1 )"); EXPECT_EQ(PrintToString(ec.get(), /*indent=*/2, &EVP_PKEY_print_private), - R"( Private-Key: (256 bit) + R"( Private-Key: (P-256) priv: 07:0f:08:72:7a:d4:a0:4a:9c:dd:59:c9:4d:89:68: 77:08:b5:6f:c9:5d:30:77:0e:e8:d1:c9:ce:0a:8b:
diff --git a/crypto/evp/print.c b/crypto/evp/print.c index aad1e6d..11fad3c 100644 --- a/crypto/evp/print.c +++ b/crypto/evp/print.c
@@ -259,8 +259,11 @@ if (!BIO_indent(bp, off, 128)) { return 0; } - if (BIO_printf(bp, "%s: (%u bit)\n", ecstr, - BN_num_bits(EC_GROUP_get0_order(group))) <= 0) { + int curve_name = EC_GROUP_get_curve_name(group); + if (BIO_printf(bp, "%s: (%s)\n", ecstr, + curve_name == NID_undef + ? "unknown curve" + : EC_curve_nid2nist(curve_name)) <= 0) { return 0; }