mirror of
https://github.com/open-quantum-safe/liboqs.git
synced 2025-10-03 00:02:36 -04:00
* patch ICICLE ML-KEM to include enc_derand, but they are not tested Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca> * copy_from_upstream.py added deterministic encapsulation info to NTRU docs Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca> --------- Signed-off-by: Ganyu (Bruce) Xu <g66xu@uwaterloo.ca>
103 lines
5.4 KiB
Diff
103 lines
5.4 KiB
Diff
diff --git a/ML-KEM-1024_META.yml b/ML-KEM-1024_META.yml
|
|
index 5ad054f..49aa71a 100644
|
|
--- a/ML-KEM-1024_META.yml
|
|
+++ b/ML-KEM-1024_META.yml
|
|
@@ -25,10 +25,11 @@ implementations:
|
|
version: FIPS203
|
|
signature_keypair: icicle_ml_kem_1024_keypair
|
|
signature_enc: icicle_ml_kem_1024_enc
|
|
+ signature_enc_derand: icicle_ml_kem_1024_enc_derand
|
|
signature_dec: icicle_ml_kem_1024_dec
|
|
sources: ./ml-kem-1024/icicle_ml-kem.cpp
|
|
supported_platforms:
|
|
- architecture: CUDA
|
|
operating_systems:
|
|
- Linux
|
|
- - Darwin
|
|
\ No newline at end of file
|
|
+ - Darwin
|
|
diff --git a/ML-KEM-512_META.yml b/ML-KEM-512_META.yml
|
|
index c14cf33..c93caa1 100644
|
|
--- a/ML-KEM-512_META.yml
|
|
+++ b/ML-KEM-512_META.yml
|
|
@@ -25,10 +25,11 @@ implementations:
|
|
version: FIPS203
|
|
signature_keypair: icicle_ml_kem_512_keypair
|
|
signature_enc: icicle_ml_kem_512_enc
|
|
+ signature_enc_derand: icicle_ml_kem_512_enc_derand
|
|
signature_dec: icicle_ml_kem_512_dec
|
|
sources: ./ml-kem-512/icicle_ml-kem.cpp
|
|
supported_platforms:
|
|
- architecture: CUDA
|
|
operating_systems:
|
|
- Linux
|
|
- - Darwin
|
|
\ No newline at end of file
|
|
+ - Darwin
|
|
diff --git a/ML-KEM-768_META.yml b/ML-KEM-768_META.yml
|
|
index a1b88a8..1d580a8 100644
|
|
--- a/ML-KEM-768_META.yml
|
|
+++ b/ML-KEM-768_META.yml
|
|
@@ -25,10 +25,11 @@ implementations:
|
|
version: FIPS203
|
|
signature_keypair: icicle_ml_kem_768_keypair
|
|
signature_enc: icicle_ml_kem_768_enc
|
|
+ signature_enc_derand: icicle_ml_kem_768_enc_derand
|
|
signature_dec: icicle_ml_kem_768_dec
|
|
sources: ./ml-kem-768/icicle_ml-kem.cpp
|
|
supported_platforms:
|
|
- architecture: CUDA
|
|
operating_systems:
|
|
- Linux
|
|
- - Darwin
|
|
\ No newline at end of file
|
|
+ - Darwin
|
|
diff --git a/icicle_cuda/ml-kem-1024/icicle_ml-kem.cpp b/icicle_cuda/ml-kem-1024/icicle_ml-kem.cpp
|
|
index 33b38cb..793afb6 100644
|
|
--- a/icicle_cuda/ml-kem-1024/icicle_ml-kem.cpp
|
|
+++ b/icicle_cuda/ml-kem-1024/icicle_ml-kem.cpp
|
|
@@ -25,6 +25,11 @@ OQS_STATUS icicle_ml_kem_1024_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk) {
|
|
return icicle::pqc::ml_kem::encapsulate<icicle::pqc::ml_kem::Kyber1024Params>((std::byte*)coins, (std::byte*)pk, config, (std::byte*)ct, (std::byte*)ss) == icicle::eIcicleError::SUCCESS ? OQS_SUCCESS : OQS_ERROR;
|
|
}
|
|
|
|
+OQS_STATUS icicle_ml_kem_1024_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t *coins) {
|
|
+ icicle::pqc::ml_kem::MlKemConfig config;
|
|
+ return icicle::pqc::ml_kem::encapsulate<icicle::pqc::ml_kem::Kyber1024Params>((std::byte*)coins, (std::byte*)pk, config, (std::byte*)ct, (std::byte*)ss) == icicle::eIcicleError::SUCCESS ? OQS_SUCCESS : OQS_ERROR;
|
|
+}
|
|
+
|
|
OQS_STATUS icicle_ml_kem_1024_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk) {
|
|
icicle::pqc::ml_kem::MlKemConfig config;
|
|
return icicle::pqc::ml_kem::decapsulate<icicle::pqc::ml_kem::Kyber1024Params>((std::byte*)sk, (std::byte*)ct, config, (std::byte*)ss) == icicle::eIcicleError::SUCCESS ? OQS_SUCCESS : OQS_ERROR;
|
|
diff --git a/icicle_cuda/ml-kem-512/icicle_ml-kem.cpp b/icicle_cuda/ml-kem-512/icicle_ml-kem.cpp
|
|
index 89c4211..f73c539 100644
|
|
--- a/icicle_cuda/ml-kem-512/icicle_ml-kem.cpp
|
|
+++ b/icicle_cuda/ml-kem-512/icicle_ml-kem.cpp
|
|
@@ -25,6 +25,11 @@ OQS_STATUS icicle_ml_kem_512_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk) {
|
|
return icicle::pqc::ml_kem::encapsulate<icicle::pqc::ml_kem::Kyber512Params>((std::byte*)coins, (std::byte*)pk, config, (std::byte*)ct, (std::byte*)ss) == icicle::eIcicleError::SUCCESS ? OQS_SUCCESS : OQS_ERROR;
|
|
}
|
|
|
|
+OQS_STATUS icicle_ml_kem_512_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t *coins) {
|
|
+ icicle::pqc::ml_kem::MlKemConfig config;
|
|
+ return icicle::pqc::ml_kem::encapsulate<icicle::pqc::ml_kem::Kyber512Params>((std::byte*)coins, (std::byte*)pk, config, (std::byte*)ct, (std::byte*)ss) == icicle::eIcicleError::SUCCESS ? OQS_SUCCESS : OQS_ERROR;
|
|
+}
|
|
+
|
|
OQS_STATUS icicle_ml_kem_512_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk) {
|
|
icicle::pqc::ml_kem::MlKemConfig config;
|
|
return icicle::pqc::ml_kem::decapsulate<icicle::pqc::ml_kem::Kyber512Params>((std::byte*)sk, (std::byte*)ct, config, (std::byte*)ss) == icicle::eIcicleError::SUCCESS ? OQS_SUCCESS : OQS_ERROR;
|
|
diff --git a/icicle_cuda/ml-kem-768/icicle_ml-kem.cpp b/icicle_cuda/ml-kem-768/icicle_ml-kem.cpp
|
|
index 33b38cb..793afb6 100644
|
|
--- a/icicle_cuda/ml-kem-768/icicle_ml-kem.cpp
|
|
+++ b/icicle_cuda/ml-kem-768/icicle_ml-kem.cpp
|
|
@@ -25,6 +25,11 @@ OQS_STATUS icicle_ml_kem_1024_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk) {
|
|
return icicle::pqc::ml_kem::encapsulate<icicle::pqc::ml_kem::Kyber1024Params>((std::byte*)coins, (std::byte*)pk, config, (std::byte*)ct, (std::byte*)ss) == icicle::eIcicleError::SUCCESS ? OQS_SUCCESS : OQS_ERROR;
|
|
}
|
|
|
|
+OQS_STATUS icicle_ml_kem_1024_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t *coins) {
|
|
+ icicle::pqc::ml_kem::MlKemConfig config;
|
|
+ return icicle::pqc::ml_kem::encapsulate<icicle::pqc::ml_kem::Kyber1024Params>((std::byte*)coins, (std::byte*)pk, config, (std::byte*)ct, (std::byte*)ss) == icicle::eIcicleError::SUCCESS ? OQS_SUCCESS : OQS_ERROR;
|
|
+}
|
|
+
|
|
OQS_STATUS icicle_ml_kem_1024_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk) {
|
|
icicle::pqc::ml_kem::MlKemConfig config;
|
|
return icicle::pqc::ml_kem::decapsulate<icicle::pqc::ml_kem::Kyber1024Params>((std::byte*)sk, (std::byte*)ct, config, (std::byte*)ss) == icicle::eIcicleError::SUCCESS ? OQS_SUCCESS : OQS_ERROR;
|