.\" $OpenBSD: X509V3_extensions_print.3,v 1.2 2021/11/26 13:48:21 jsg Exp $ .\" .\" Copyright (c) 2021 Ingo Schwarze .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .Dd $Mdocdate: November 26 2021 $ .Dt X509V3_EXTENSIONS_PRINT 3 .Os .Sh NAME .Nm X509V3_extensions_print .Nd pretty-print an array of X.509 extensions .Sh SYNOPSIS .In openssl/x509v3.h .Ft int .Fo X509V3_extensions_print .Fa "BIO *bio" .Fa "char *title" .Fa "const STACK_OF(X509_EXTENSION) *sk" .Fa "unsigned long flags" .Fa "int indent" .Fc .Sh DESCRIPTION For each member of the variable sized array .Fa sk , .Fn X509V3_extensions_print prints the following information to .Fa bio in the following order: .Bl -bullet .It The extension type as printed by .Xr i2a_ASN1_OBJECT 3 . .It If the extension is critical, the fixed string .Qq "critical" . .It A human-readable representation of the data contained in the extension as printed by .Xr X509V3_EXT_print 3 , passing through the .Fa flags . If that function indicates failure, the BER-encoded data of the extension is dumped with .Xr ASN1_STRING_print 3 without decoding it first. In both cases, an .Fa indent incremented by 4 space characters is used. .El .Pp If .Fa sk is a .Dv NULL pointer or empty, .Fn X509V3_extensions_print prints nothing and indicates success. .Pp Unless .Fa title is .Dv NULL , it is printed on its own output line before the rest of the output, and .Fa indent is increased by 4 space characters. This additional global indentation is cumulative to the one applied to individual extensions mentioned above. .Sh RETURN VALUES .Fn X509V3_extensions_print is intended to return 1 on success or 0 if an error occurs. .Sh SEE ALSO .Xr BIO_new 3 , .Xr STACK_OF 3 , .Xr X509_EXTENSION_get_critical 3 , .Xr X509_get0_extensions 3 , .Xr X509_get_ext 3 , .Xr X509V3_EXT_print 3 .Sh HISTORY .Fn X509V3_extensions_print first appeared in OpenSSL 0.9.7 and has been available since .Ox 3.2 . .Sh BUGS Many parsing and printing errors are silently ignored, and the function may return indicating success even though .Fa sk contains invalid data. Even if all the data is valid, success may be indicated even when the information printed is incomplete for various reasons, for example due to memory allocation failures or I/O errors.