Print out zero length string properly.
[oweals/openssl.git] / crypto / asn1 / t_x509.c
index 7256866edab35eb74aae896f198c319c2a7a5c64..5115b8d0b5aeb3d28cf56ec2c52c3b36295fd2e3 100644 (file)
@@ -111,7 +111,6 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
        ASN1_INTEGER *bs;
        EVP_PKEY *pkey=NULL;
        const char *neg;
-       ASN1_STRING *str=NULL;
 
        if((nmflags & XN_FLAG_SEP_MASK) == XN_FLAG_SEP_MULTILINE) {
                        mlch = '\n';
@@ -215,34 +214,10 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
                        ERR_print_errors(bp);
                        }
                else
-#ifndef OPENSSL_NO_RSA
-               if (pkey->type == EVP_PKEY_RSA)
-                       {
-                       BIO_printf(bp,"%12sRSA Public Key: (%d bit)\n","",
-                       BN_num_bits(pkey->pkey.rsa->n));
-                       RSA_print(bp,pkey->pkey.rsa,16);
-                       }
-               else
-#endif
-#ifndef OPENSSL_NO_DSA
-               if (pkey->type == EVP_PKEY_DSA)
-                       {
-                       BIO_printf(bp,"%12sDSA Public Key:\n","");
-                       DSA_print(bp,pkey->pkey.dsa,16);
-                       }
-               else
-#endif
-#ifndef OPENSSL_NO_EC
-               if (pkey->type == EVP_PKEY_EC)
                        {
-                       BIO_printf(bp, "%12sEC Public Key:\n","");
-                       EC_KEY_print(bp, pkey->pkey.ec, 16);
+                       EVP_PKEY_print_public(bp, pkey, 16, NULL);
+                       EVP_PKEY_free(pkey);
                        }
-               else
-#endif
-                       BIO_printf(bp,"%12sUnknown Public Key:\n","");
-
-               EVP_PKEY_free(pkey);
                }
 
        if (!(cflag & X509_FLAG_NO_EXTENSIONS))
@@ -259,7 +234,6 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
                }
        ret=1;
 err:
-       if (str != NULL) ASN1_STRING_free(str);
        if (m != NULL) OPENSSL_free(m);
        return(ret);
        }