diff --git a/src/etc/inc/certs.inc b/src/etc/inc/certs.inc
index 24446633ae..2f1c842f6a 100644
--- a/src/etc/inc/certs.inc
+++ b/src/etc/inc/certs.inc
@@ -2133,8 +2133,11 @@ function cert_print_infoblock($cert) {
} else {
/* Elliptic curve (EC) key curve name */
$certextinfo .= 'ECDSA
';
- $certextinfo .= '' . gettext("Elliptic curve name: ") . '';
- $certextinfo .= $key_details['ec']['curve_name'] . '
';
+ $curve = cert_get_pkey_curve($cert['prv']);
+ if (!empty($curve)) {
+ $certextinfo .= '' . gettext("Elliptic curve name:") . ' ';
+ $certextinfo .= $curve . '
';
+ }
}
}
@@ -2311,9 +2314,12 @@ function cert_get_pkey_curve($pkey, $decode = true) {
$key_details = openssl_pkey_get_details($res_key);
/* If this is an EC key, and the curve name is not empty, return
* that curve name. */
- if (($key_details['type'] == OPENSSL_KEYTYPE_EC) &&
- (!empty($key_details['ec']['curve_name']))) {
- return $key_details['ec']['curve_name'];
+ if ($key_details['type'] == OPENSSL_KEYTYPE_EC) {
+ if (!empty($key_details['ec']['curve_name'])) {
+ return $key_details['ec']['curve_name'];
+ } else {
+ return $key_details['ec']['curve_oid'];
+ }
}
}