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

# PKCS12\_init(3ssl)

Create a new empty PKCS#12 structure

## NAME

PKCS12\_init, PKCS12\_init\_ex - Create a new empty PKCS#12 structure

## SYNOPSIS

```
 #include <openssl/pkcs12.h>
 PKCS12 *PKCS12_init(int mode);
 PKCS12 *PKCS12_init_ex(int mode, OSSL_LIB_CTX *ctx, const char *propq);
```

## DESCRIPTION

**PKCS12\_init()** creates an empty PKCS#12 structure. Any PKCS#7 authSafes added to this structure are enclosed first within a single PKCS#7 contentInfo of type *mode*. Currently the only supported type is **NID\_pkcs7\_data**.

**PKCS12\_init\_ex()** creates an empty PKCS#12 structure and assigns the supplied *ctx* and *propq* to be used to select algorithm implementations for operations performed on the **PKCS12** object.

## RETURN VALUES

**PKCS12\_init()** and **PKCS12\_init\_ex()** return a valid **PKCS12** structure or NULL if an error occurred.

## SEE ALSO

**d2i\_PKCS12**(3), **PKCS12\_create**(3), **passphrase-encoding**(7)

## HISTORY

**PKCS12\_init\_ex()** was added in OpenSSL 3.0.

## COPYRIGHT

Copyright 2021 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\>.
