Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

libpqc - the post-quantum cryptography library

pqc is a C++ library that can be used to secure socket-like connections with cryptographic mechanisms able to resist attacks by adversaries in possession of a large quantum computer.


A C++14 capable compiler is required to compile the library. The library has been successfuly compiled with GCC version 5.4 and Clang version 3.8.

This software is dependent on the GNU Nettle library.

GNU Make is also required for compilation.


This command sequence compiles the library and installs it into /usr/local

$ ./    # only required when installing from git
$ ./configure
$ make
$ make install-strip

Alternate compilers, compiler flags, prefixes, destination directories and/or cross-compilation options can be specified -- see the output of ./configure --help for details.

Example Programs

The library comes with several example programs.


The pqc-kegyen utility is a utility that can be used to generate authentication keys for the other two programs. To create a keypair and store the public part into the file and the private part into the file server.priv, run:

$ pqc-keygen SIDHex-sha512 server.priv


The pqc-telnetd is a server that can expose the shell of the machine it is running on to remote users who connect with the pqc-telnet program. To start the server on TCP port 8822 with the private key from the server.priv file, run the following command:

$ pqc-telnetd server.priv 8822


The pqc-telnet is the corresponding client program for pqc-telnetd. To connect to a machine running the pqc-telnetd on IP address and TCP port 8822, and verify the server with the public key stored in the file, run:

$ pqc-telnet 8822

If the connection is successful, a command prompt should be shown.


This software is experimental. Furthermore, there is a known attack on one of the cryptographic schemes and the countermeasure to secure it is not yet implemented.

You can’t perform that action at this time.