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

# zmq\_curve\_keypair(3)

generate a new CURVE keypair

## NAME

zmq\_curve\_keypair - generate a new CURVE keypair

## SYNOPSIS

**int zmq\_curve\_keypair (char \*z85\_public\_key, char \*z85\_secret\_key);**

## DESCRIPTION

The *zmq\_curve\_keypair()* function shall return a newly generated random keypair consisting of a public key and a secret key. The caller provides two buffers, each at least 41 octets large, in which this method will store the keys. The keys are encoded using [**zmq\_z85\_encode**(3)](/zmq_z85_encode/3.md).

## RETURN VALUE

The *zmq\_curve\_keypair()* function shall return 0 if successful, else it shall return -1 and set *errno* to one of the values defined below.

## ERRORS

**ENOTSUP**

The libzmq library was not built with cryptographic support (libsodium).

## EXAMPLE

**Generating a new CURVE keypair**.

```
char public_key [41];
char secret_key [41];
int rc = zmq_curve_keypair (public_key, secret_key);
assert (rc == 0);
```

## SEE ALSO

[**zmq\_z85\_decode**(3)](/zmq_z85_decode/3.md) [**zmq\_z85\_encode**(3)](/zmq_z85_encode/3.md) [**zmq\_curve**(7)](/zmq_curve/7.md)

## AUTHORS

This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at **http://www.zeromq.org/docs:contributing**.
