---
name: "X509_ACERT_print_ex"
section: "3ssl"
platform: "linux"
package: "openssl"
version: "3.6.5-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/X509_ACERT_print_ex"
---

# X509\_ACERT\_print\_ex(3ssl)

X509\_ACERT printing routines

## NAME

X509\_ACERT\_print\_ex, X509\_ACERT\_print - X509\_ACERT printing routines

## SYNOPSIS

```
 #include <openssl/x509_acert.h>
 int X509_ACERT_print(BIO *bp, X509_ACERT *acert);
 int X509_ACERT_print_ex(BIO *bp, X509_ACERT *acert, unsigned long nmflags,
                         unsigned long cflag);
```

## DESCRIPTION

**X509\_ACERT\_print\_ex()** prints a human readable version of the attribute certificate *acert* to BIO *bp*.

The following data contained in the attribute certificate is printed in order:

- •

  The header text "Attribute certificate:" and "Data:" (X509\_FLAG\_NO\_HEADER)

  \= item \*

  The attribute certificate version number as defined by the standard, followed in parentheses by the value contained in the version field in hexadecimal notation.  If the version number is not a valid value according to the specification, only the raw value is printed. See **X509\_ACERT\_get\_version**(3) for details. (X509\_FLAG\_NO\_VERSION)

  \= item \*

  The serial number of the attribute certificate (X509\_FLAG\_NO\_SERIAL)

  \= item \*

  The identity of the holder of the attribute certificate. If the holder issuer name is present, the first GENERAL\_NAME returned by **X509\_ACERT\_get0\_holder\_entityName()** is printed. If the holder baseCertificateId is present, the issuer name (printed with X509\_NAME\_print\_ex) and serial number of the holder's certificate are displayed. (X509\_FLAG\_NO\_SUBJECT)

  \= item \*

  The name of the attribute certificate issuer as returned from **X509\_ACERT\_get0\_issuerName()** and printed using **X509\_NAME\_print\_ex()**. (X509\_FLAG\_NO\_ISSUER)

  \= item \*

  The period of validity between the times returned from **X509\_ACERT\_get0\_notBefore()** and  **X509\_ACERT\_get0\_notAfter()**.  The values are printed as a generalized times using **ASN1\_GENERALIZEDTIME\_print()**. (X509\_FLAG\_NO\_VALIDITY)

  \= item \*

  The list of attributes contained in the attribute certificate. The attribute type is printed with **i2a\_ASN1\_OBJECT()**.  String valued attributes are printed as raw string data. ASN1 encoded values are printed with **ASN1\_parse\_dump()**.  (X509\_FLAG\_NO\_ATTRIBUTES)

  \= item \*

  All X.509 extensions contained in the attribute certificate. (X509\_FLAG\_NO\_EXTENSIONS)

  \= item \*

  The signature is printed with **X509\_signature\_print()**. (X509\_FLAG\_NO\_SIGDUMP)

  If *cflag* is specifies as X509\_FLAG\_COMPAT, all of the above data in the attribute certificate will be printed.

  The *nmflags* flag determines the format used to output all fields printed using **X509\_NAME\_print\_ex()**. See **X509\_NAME\_print\_ex**(3) for details.

  **X509\_ACERT\_print()** is equivalent to calling **X509\_ACERT\_print\_ex()** with the *nmflags* and *cflags* set to XN\_FLAG\_COMPAT and X509\_FLAG\_COMPAT respectively.

## RETURN VALUES

**X509\_ACERT\_print\_ex()** **X509\_ACERT\_print()** return 1 for success and 0 for failure.

## SEE ALSO

**X509\_NAME\_print\_ex**(3)

## HISTORY

**X509\_ACERT\_print()** and **X509\_ACERT\_print\_ex()** were added in OpenSSL 3.4.

## COPYRIGHT

Copyright 2023-2024 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License").  You may not use this file except in compliance with the License.  You can obtain a copy in the file LICENSE in the source distribution or at \<https://www.openssl.org/source/license.html\>.
