+ /*
+ * Conversion tests.
+ */
+ /* Convert cert to DER and back. */
+ BIO *bp;
+ T(bp = BIO_new(BIO_s_mem()));
+ T(i2d_X509_bio(bp, x));
+ X509 *y = NULL;
+ T(d2i_X509_bio(bp, &y));
+ err = X509_cmp(x, y);
+ printf(" d2i_X509_bio\t\t\t");
+ print_test_result(!err);
+ ret |= err;
+ X509_free(y);
+
+ /* Convert cert to PEM and back. */
+ y = NULL;
+ T(PEM_write_bio_X509(bp, x));
+ T(PEM_read_bio_X509(bp, &y, 0, NULL));
+ err = X509_cmp(x, y);
+ printf(" PEM_read_bio_X509\t\t");
+ print_test_result(!err);
+ ret |= err;
+ X509_free(y);
+
+#if OPENSSL_VERSION_MAJOR >= 3
+ /* Convert public key to PEM and back. */
+ T(BIO_reset(bp));
+ T(PEM_write_bio_X509_PUBKEY(bp, xk));
+ X509_PUBKEY *tk = NULL;
+ T(PEM_read_bio_X509_PUBKEY(bp, &tk, NULL, NULL));
+ err = X509_PUBKEY_cmp(xk, tk);
+ X509_PUBKEY_free(tk);
+ printf(" PEM_read_bio_X509_PUBKEY\t");
+ print_test_result(!err);
+ ret |= err;
+
+ /* Convert public key to DER and back. */
+ T(BIO_reset(bp));
+ T(i2d_X509_PUBKEY_bio(bp, xk));
+ tk = NULL;
+ T(d2i_X509_PUBKEY_bio(bp, &tk));
+ err = X509_PUBKEY_cmp(xk, tk);
+ X509_PUBKEY_free(tk);
+ printf(" d2i_X509_PUBKEY_bio\t\t");
+ print_test_result(!err);
+ ret |= err;
+ BIO_free(bp);
+#else
+ T(BIO_reset(bp));
+ BIO_free(bp);
+#endif
+