1.\" $OpenBSD: X509V3_extensions_print.3,v 1.2 2021/11/26 13:48:21 jsg Exp $ 2.\" 3.\" Copyright (c) 2021 Ingo Schwarze <schwarze@openbsd.org> 4.\" 5.\" Permission to use, copy, modify, and distribute this software for any 6.\" purpose with or without fee is hereby granted, provided that the above 7.\" copyright notice and this permission notice appear in all copies. 8.\" 9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16.\" 17.Dd $Mdocdate: November 26 2021 $ 18.Dt X509V3_EXTENSIONS_PRINT 3 19.Os 20.Sh NAME 21.Nm X509V3_extensions_print 22.Nd pretty-print an array of X.509 extensions 23.Sh SYNOPSIS 24.In openssl/x509v3.h 25.Ft int 26.Fo X509V3_extensions_print 27.Fa "BIO *bio" 28.Fa "char *title" 29.Fa "const STACK_OF(X509_EXTENSION) *sk" 30.Fa "unsigned long flags" 31.Fa "int indent" 32.Fc 33.Sh DESCRIPTION 34For each member of the variable sized array 35.Fa sk , 36.Fn X509V3_extensions_print 37prints the following information to 38.Fa bio 39in the following order: 40.Bl -bullet 41.It 42The extension type as printed by 43.Xr i2a_ASN1_OBJECT 3 . 44.It 45If the extension is critical, the fixed string 46.Qq "critical" . 47.It 48A human-readable representation of the data contained in the extension 49as printed by 50.Xr X509V3_EXT_print 3 , 51passing through the 52.Fa flags . 53If that function indicates failure, 54the BER-encoded data of the extension is dumped with 55.Xr ASN1_STRING_print 3 56without decoding it first. 57In both cases, an 58.Fa indent 59incremented by 4 space characters is used. 60.El 61.Pp 62If 63.Fa sk 64is a 65.Dv NULL 66pointer or empty, 67.Fn X509V3_extensions_print 68prints nothing and indicates success. 69.Pp 70Unless 71.Fa title 72is 73.Dv NULL , 74it is printed on its own output line before the rest of the output, and 75.Fa indent 76is increased by 4 space characters. 77This additional global indentation is cumulative 78to the one applied to individual extensions mentioned above. 79.Sh RETURN VALUES 80.Fn X509V3_extensions_print 81is intended to return 1 on success or 0 if an error occurs. 82.Sh SEE ALSO 83.Xr BIO_new 3 , 84.Xr STACK_OF 3 , 85.Xr X509_EXTENSION_get_critical 3 , 86.Xr X509_get0_extensions 3 , 87.Xr X509_get_ext 3 , 88.Xr X509V3_EXT_print 3 89.Sh HISTORY 90.Fn X509V3_extensions_print 91first appeared in OpenSSL 0.9.7 and has been available since 92.Ox 3.2 . 93.Sh BUGS 94Many parsing and printing errors are silently ignored, 95and the function may return indicating success even though 96.Fa sk 97contains invalid data. 98Even if all the data is valid, success may be indicated even when the 99information printed is incomplete for various reasons, for example 100due to memory allocation failures or I/O errors. 101