---
name: "libressl-ERR_load_crypto_strings"
section: "3"
platform: "linux"
package: "libressl"
version: "4.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libressl-ERR_load_crypto_strings"
---

# libressl-ERR\_load\_crypto\_strings(3)

load and free OpenSSL error strings

## NAME

**ERR\_load\_crypto\_strings**, **ERR\_free\_strings**, **SSL\_load\_error\_strings** – load and free OpenSSL error strings

## SYNOPSIS

Crypto Library (libcrypto, -lcrypto)

**#include \<openssl/err.h\>**

*void*\

**ERR\_load\_crypto\_strings**(*void*);

*void*\

**ERR\_free\_strings**(*void*);

SSL Library (libssl, -lssl) libcrypto

**#include \<openssl/ssl.h\>**

*void*\

**SSL\_load\_error\_strings**(*void*);

## DESCRIPTION

These functions are deprecated. It is never useful for any application program to call any of them explicitly. The library automatically calls them internally whenever needed.

**ERR\_load\_crypto\_strings**() registers the error strings for all [crypto(3)](/crypto/3.md) functions. **SSL\_load\_error\_strings**() does the same, but also registers the [ssl(3)](/ssl/3.md) error strings.

If the error strings were already loaded before, no action occurs.

**ERR\_free\_strings**() frees all previously loaded error strings.

## SEE ALSO

ERR(3), ERR\_error\_string(3), OPENSSL\_config(3)

## HISTORY

**ERR\_load\_crypto\_strings**() and **SSL\_load\_error\_strings**() first appeared in SSLeay 0.4.4. **ERR\_free\_strings**() first appeared in SSLeay 0.5.1. These functions been available since OpenBSD 2.4.

## BUGS

Even though the error strings are already compiled into the object code of the library as static strings, these functions store them again using dynamically allocated memory on the heap. That may fail if insufficient memory is available, but these functions do not report such errors. Instead, they fail silently, possibly having registered none or only a part of the strings requested.
