C library for prototyping and experimenting with quantum-resistant cryptography
C library for prototyping and experimenting with quantum-resistant cryptography
liboqs is an open source C library for quantum-safe cryptographic algorithms.
liboqs provides:
liboqs is part of the Open Quantum Safe (OQS) project, which aims to develop and integrate into applications quantum-safe cryptography to facilitate deployment and testing in real world contexts. In particular, OQS provides prototype integrations of liboqs into protocols like TLS, X.509, and S/MIME, through our OpenSSL 3 Provider and we provide a variety of other post-quantum-enabled demos.
The OQS project is supported by the Post-Quantum Cryptography Alliance as part of the Linux Foundation. More information about the Open Quantum Safe project can be found at openquantumsafe.org.
OQS is running a survey to better understand our community. We would like to hear from organizations and individuals about their interest in and use of the Open Quantum Safe project. Please take a few minutes to fill out the survey: https://linuxfoundation.surveymonkey.com/r/oqssurvey
The table below summarizes every algorithm family currently integrated into liboqs. For per-variant detail (including NIST level, constant-time status, formal verification, and available optimizations), see ALGORITHMS.md; for upstream sources and advisories, see the per-algorithm pages under docs/algorithms.
Names of algorithms standardized by NIST — ML-KEM, ML-DSA, and SLH-DSA — are stable; if NIST changes the implementation details, liboqs will adjust so that users are protected from such changes. All other names are subject to change. Which algorithms are built can be controlled via OQS_ALGS_ENABLED; by default, liboqs is built supporting every algorithm in the table, including experimental ones.
awslabs/bike-kem
TBD
Tier 3 (Community)
Classic McEliece
Under ISO consideration
PQClean/PQClean@1eacfda
No active maintenance
Tier 3 (Community)
FrodoKEM
Under ISO consideration
microsoft/PQCrypto-LWEKE@a2f9dec
Best effort
Tier 2 (Supported)
HQC
Selected by NIST for upcoming standardization
pqc-hqc/hqc@161cd4f
TBD
Tier 2 (Supported)
Kyber
Selected by NIST as basis for ML-KEM (FIPS 203)
pq-crystals/kyber@441c051
Actively maintained
Tier 3 (Community)
ML-KEM
Standardized by NIST
pq-code-package/mlkem-native@d1b2fe7
Actively maintained
Tier 1 (Core)
NTRU
Not selected by NIST, under standardization consideration by NTT
PQClean/PQClean@4c9e5a3
Actively maintained
Tier 3 (Community)
NTRU-Prime
Not selected by NIST
openssh/openssh-portable
Actively maintained
Tier 3 (Community)
CROSS-signature/CROSS-lib-oqs@ce9933c
Actively maintained
Tier 3 (Community)
Falcon
Selected by NIST for upcoming standardization
PQClean/PQClean@1eacfda
TBD
Tier 3 (Community)
MAYO
Under NIST consideration
[PQCMayo/MAYO-C@74de637](https://github.com/PQCMayo/MAYO-C/commit/74de637a7c4a7f9fafa888183bc05f5cf920cd
No open issues yet, or sync has not completed.