- if ((priv_key != NULL) && !ASN1_bn_print(bp, "priv:", priv_key,
- buffer, off))
- goto err;
- if ((pub_key != NULL) && !ASN1_bn_print(bp, "pub: ", pub_key,
- buffer, off))
- goto err;
+ if (priv_len != 0) {
+ if (BIO_printf(bp, "%*spriv:\n", off, "") <= 0)
+ goto err;
+ if (EC_KEY_priv2oct(x, buffer, priv_len) == 0)
+ goto err;
+ if (ASN1_buf_print(bp, buffer, priv_len, off + 4) == 0)
+ goto err;
+ }
+
+ if (pub_len != 0) {
+ if (BIO_printf(bp, "%*spub:\n", off, "") <= 0)
+ goto err;
+ if (EC_POINT_point2oct(group, public_key,
+ EC_KEY_get_conv_form(x),
+ buffer, pub_len, NULL) == 0)
+ goto err;
+ if (ASN1_buf_print(bp, buffer, pub_len, off + 4) == 0)
+ goto err;
+ }
+