## NAME

zmq_curve_public - derive the public key from a private key

## SYNOPSIS

**int zmq_curve_public (char *z85_public_key, char *z85_secret_key);**

## DESCRIPTION

The *zmq_curve_public()* function shall derive the public key from a
private key. The caller provides two buffers, each at least 41 octets
large. In z85_secret_key the caller shall provide the private key, and
the function will store the public key in z85_public_key. The keys are
encoded using zmq_z85_encode.

## RETURN VALUE

The *zmq_curve_public()* 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

char public_key [41]; char secret_key [41]; int rc = zmq_curve_keypair (public_key, secret_key); assert (rc == 0); char derived_public[41]; rc = zmq_curve_public (derived_public, secret_key); assert (rc == 0); assert (!strcmp (derived_public, public_key));

## AUTHORS

This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at https://zeromq.org/how-to-contribute/.