---
name: "public_key"
section: "6"
platform: "linux"
package: "erlang-core"
version: "29.1.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/public_key"
---

# public\_key(6)

## NAME

Public\_Key Application

## DESCRIPTION

The Public Key application deals with public-key related file formats, digital signatures, and X-509 certificates.  It handles validation of certificate paths and certificate revocation lists (CRLs) and other functions for handling of certificates, keys and CRLs. It is a library application that does not read or write files, it expects or returns file contents or partial file contents as binaries. Except for the functions *public-key:cacerts\_load/0*, *public-key:cacerts\_load/1*, and *public-key:cacerts\_get/0* that reads files.

### Supported PKIX functionality

• Supports RFC 5280 - Internet X.509 Public-Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. Certificate policies supported since OTP-26.2

• Supports PKCS-1 - RSA Cryptography Standard

• Supports DSS - Digital Signature Standard (DSA - Digital Signature Algorithm)

• Supports PKCS-3 - Diffie-Hellman Key Agreement Standard

• Supports Cryptographic Message Syntax (CMS) (http://www.ietf.org/rfc/rfc5652.txt) including Password-Based Encryption with original PKCS-5 support, but currently excluding offical support for most of section 10-12 (if proven useful, especially Attribute Certificates v2, it might be added later).

• Supports PKCS-8 - Private-Key Information Syntax Standard

• Supports PKCS-10 - Certification Request Syntax Standard

• Supports PKIXCMP - Certificate Management Protocol

• Supports PKIXCRMF - Certificate Request Message Format

### Dependencies

The *public\_key* application uses the Crypto application to perform cryptographic operations and the ASN-1 application to handle PKIX-ASN-1 specifications, hence these applications must be loaded for the *public\_key* application to work. In an embedded environment this means they must be started with *application:start/\[1,2\]* before the *public\_key* application is started.

### Error Logger and Event Handlers

The *public\_key* application is a library application and does not use the error logger. The functions will either succeed or fail with a runtime error.

### See Also

*application*
