---
name: "gnutls_x509_privkey_import_pkcs8"
section: "3"
platform: "linux"
package: "gnutls"
version: "3.8.13-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/gnutls_x509_privkey_import_pkcs8"
---

# gnutls\_x509\_privkey\_import\_pkcs8(3)

API function

## NAME

gnutls\_x509\_privkey\_import\_pkcs8 - API function

## SYNOPSIS

**#include \<gnutls/x509.h\>**

**int gnutls\_x509\_privkey\_import\_pkcs8(gnutls\_x509\_privkey\_t** *key***, const gnutls\_datum\_t \*** *data***, gnutls\_x509\_crt\_fmt\_t** *format***, const char \*** *password***, unsigned int** *flags***);**

## ARGUMENTS

- gnutls\_x509\_privkey\_t key

  The data to store the parsed key

- const gnutls\_datum\_t \* data

  The DER or PEM encoded key.

- gnutls\_x509\_crt\_fmt\_t format

  One of DER or PEM

- const char \* password

  the password to decrypt the key (if it is encrypted).

- unsigned int flags

  0 if encrypted or GNUTLS\_PKCS\_PLAIN if not encrypted.

## DESCRIPTION

This function will convert the given DER or PEM encoded PKCS8 2.0 encrypted key to the native gnutls\_x509\_privkey\_t format. The output will be stored in  *key* .  Both RSA and DSA keys can be imported, and flags can only be used to indicate an unencrypted key.

The  *password* can be either ASCII or UTF-8 in the default PBES2 encryption schemas, or ASCII for the PKCS12 schemas.

If the Certificate is PEM encoded it should have a header of "ENCRYPTED PRIVATE KEY", or "PRIVATE KEY". You only need to specify the flags if the key is DER encoded, since in that case the encryption status cannot be auto-detected.

If the **GNUTLS\_PKCS\_PLAIN** flag is specified and the supplied data are encrypted then **GNUTLS\_E\_DECRYPTION\_FAILED** is returned.

## RETURNS

On success, **GNUTLS\_E\_SUCCESS** (0) is returned, otherwise a negative error value.

## REPORTING BUGS

Report bugs to \<bugs@gnutls.org\>.\
 Home page: https://www.gnutls.org

## COPYRIGHT

Copyright © 2001-2023 Free Software Foundation, Inc., and others.\
 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.

## SEE ALSO

The full documentation for **gnutls** is maintained as a Texinfo manual. If the /usr/share/doc/gnutls/ directory does not contain the HTML form visit

- https://www.gnutls.org/manual/
