diff --git a/README.md b/README.md index 223ab2ae3b..ccd8e8111f 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Update your `Cargo.toml` and include `oqs`: ```toml [dependencies] -oqs = "0.9.0" +oqs = "0.10.0" ``` `oqs-sys` can be specified equivalently. @@ -103,12 +103,14 @@ tests. - `kyber` - `ntruprime` - `saber` + - `ml_kem` - `sigs` (default): Compile with all signature schemes enabled - `dilithium` - `falcon` - `picnic` - `rainbow` - `sphincs`: SPHINCS+ + - `ml_dsa` ## Running diff --git a/oqs-sys/Cargo.toml b/oqs-sys/Cargo.toml index 6d24ac0dbf..f407491de6 100644 --- a/oqs-sys/Cargo.toml +++ b/oqs-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oqs-sys" -version = "0.9.1+liboqs-0.9.0" +version = "0.10.0+liboqs-0.10.0" authors = ["Thom Wiggers "] edition = "2021" links = "oqs" @@ -30,18 +30,20 @@ docs = [] non_portable = [] vendored = [] # algorithms: KEMs -kems = ["classic_mceliece", "frodokem", "hqc", "kyber", "ntruprime"] +kems = ["classic_mceliece", "frodokem", "hqc", "kyber", "ntruprime", "ml_kem"] bike = [] # BIKE is enabled by build.rs on non-windows targets classic_mceliece = [] frodokem = [] hqc = [] kyber = [] ntruprime = [] +ml_kem = [] # algorithms: Signature schemes -sigs = ["dilithium", "falcon", "sphincs"] +sigs = ["dilithium", "falcon", "sphincs", "ml_dsa"] dilithium = [] falcon = [] sphincs = [] +ml_dsa = [] [package.metadata.docs.rs] features = ["docs"] diff --git a/oqs-sys/build.rs b/oqs-sys/build.rs index 4e4560c9a9..a11dc4f81b 100644 --- a/oqs-sys/build.rs +++ b/oqs-sys/build.rs @@ -69,11 +69,13 @@ fn build_from_source() -> PathBuf { algorithm_feature!("KEM", "hqc"); algorithm_feature!("KEM", "kyber"); algorithm_feature!("KEM", "ntruprime"); + algorithm_feature!("KEM", "ml_kem"); // signature schemes algorithm_feature!("SIG", "dilithium"); algorithm_feature!("SIG", "falcon"); algorithm_feature!("SIG", "sphincs"); + algorithm_feature!("SIG", "ml_dsa"); if cfg!(windows) { // Select the latest available Windows SDK diff --git a/oqs-sys/liboqs b/oqs-sys/liboqs index 7c3a0e9aa7..36be57445d 160000 --- a/oqs-sys/liboqs +++ b/oqs-sys/liboqs @@ -1 +1 @@ -Subproject commit 7c3a0e9aa7f9568e4dcafaf908ff8aa0008f0b71 +Subproject commit 36be57445d8ca53f7095160fde548efe82ace09d diff --git a/oqs/Cargo.toml b/oqs/Cargo.toml index 770e7b297b..4552053770 100644 --- a/oqs/Cargo.toml +++ b/oqs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oqs" -version = "0.9.0" +version = "0.10.0" authors = ["Thom Wiggers "] edition = "2021" description = "A Rusty interface to Open-Quantum-Safe's liboqs" @@ -16,7 +16,7 @@ serde = { version = "1.0", optional = true, default-features = false, features = [dependencies.oqs-sys] path = "../oqs-sys" -version = "0.9.0" +version = "0.10.0+liboqs-0.10.0" default-features = false [features] @@ -26,15 +26,17 @@ non_portable = ["oqs-sys/non_portable"] vendored = ["oqs-sys/vendored"] # algorithms: KEMs -kems = ["oqs-sys/kems", "classic_mceliece", "frodokem", "hqc", "kyber", "ntruprime"] +kems = ["oqs-sys/kems", "classic_mceliece", "frodokem", "hqc", "kyber", "ntruprime", "ml_kem"] bike = ["oqs-sys/bike"] # not supported on Windows or 32-bit ARM classic_mceliece = ["oqs-sys/classic_mceliece"] frodokem = ["oqs-sys/frodokem"] hqc = ["oqs-sys/hqc"] kyber = ["oqs-sys/kyber"] ntruprime = ["oqs-sys/ntruprime"] +ml_kem = ["oqs-sys/ml_kem"] # algorithms: Signature schemes -sigs = ["oqs-sys/sigs", "dilithium", "falcon", "sphincs"] +sigs = ["oqs-sys/sigs", "dilithium", "falcon", "sphincs", "ml_dsa"] dilithium = ["oqs-sys/dilithium"] falcon = ["oqs-sys/falcon"] sphincs = ["oqs-sys/sphincs"] +ml_dsa = ["oqs-sys/ml_dsa"] \ No newline at end of file diff --git a/oqs/src/kem.rs b/oqs/src/kem.rs index 2f9d6e4efe..b43d3e3c9e 100644 --- a/oqs/src/kem.rs +++ b/oqs/src/kem.rs @@ -140,6 +140,12 @@ implement_kems! { ("frodokem") FrodoKem976Shake: OQS_KEM_alg_frodokem_976_shake, ("frodokem") FrodoKem1344Aes: OQS_KEM_alg_frodokem_1344_aes, ("frodokem") FrodoKem1344Shake: OQS_KEM_alg_frodokem_1344_shake, + ("ml_kem") MlKem512Ipd: OQS_KEM_alg_ml_kem_512_ipd, + ("ml_kem") MlKem768Ipd: OQS_KEM_alg_ml_kem_768_ipd, + ("ml_kem") MlKem1024Ipd: OQS_KEM_alg_ml_kem_1024_ipd, + ("ml_kem") MlKem512: OQS_KEM_alg_ml_kem_512, + ("ml_kem") MlKem768: OQS_KEM_alg_ml_kem_768, + ("ml_kem") MlKem1024: OQS_KEM_alg_ml_kem_1024, } impl Algorithm { diff --git a/oqs/src/sig.rs b/oqs/src/sig.rs index c4a87519be..f496d01f25 100644 --- a/oqs/src/sig.rs +++ b/oqs/src/sig.rs @@ -131,6 +131,12 @@ implement_sigs! { ("sphincs") SphincsShake192sSimple: OQS_SIG_alg_sphincs_shake_192s_simple, ("sphincs") SphincsShake256fSimple: OQS_SIG_alg_sphincs_shake_256f_simple, ("sphincs") SphincsShake256sSimple: OQS_SIG_alg_sphincs_shake_256s_simple, + ("ml_dsa") MlDsa44Ipd: OQS_SIG_alg_ml_dsa_44_ipd, + ("ml_dsa") MlDsa65Ipd: OQS_SIG_alg_ml_dsa_65_ipd, + ("ml_dsa") MlDsa87Ipd: OQS_SIG_alg_ml_dsa_87_ipd, + ("ml_dsa") MlDsa44: OQS_SIG_alg_ml_dsa_44, + ("ml_dsa") MlDsa65: OQS_SIG_alg_ml_dsa_65, + ("ml_dsa") MlDsa87: OQS_SIG_alg_ml_dsa_87, } impl Algorithm {