From 46c3cf9fd684f1cb9fff9b481d61da21466e302d Mon Sep 17 00:00:00 2001 From: Dmitriy Suponitskiy Date: Tue, 9 Jun 2026 12:54:15 -0400 Subject: [PATCH 1/2] Corrected exception handling for COMPOSITESCALING* --- .../lib/scheme/ckksrns/ckksrns-parametergeneration.cpp | 4 ++-- src/pke/unittest/UnitTestMultiparty.cpp | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/pke/lib/scheme/ckksrns/ckksrns-parametergeneration.cpp b/src/pke/lib/scheme/ckksrns/ckksrns-parametergeneration.cpp index f61803fa7..c426b0bef 100644 --- a/src/pke/lib/scheme/ckksrns/ckksrns-parametergeneration.cpp +++ b/src/pke/lib/scheme/ckksrns/ckksrns-parametergeneration.cpp @@ -88,9 +88,9 @@ bool ParameterGenerationCKKSRNS::ParamsGenCKKSRNSInternal(std::shared_ptr testCases = { { CKKSRNS_TEST, "75", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, DFLT, HEStd_NotSet, BV, FLEXIBLEAUTOEXT, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, { CKKSRNS_TEST, "76", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, DFLT, HEStd_NotSet, HYBRID, FLEXIBLEAUTOEXT, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, // TestType, Descr, Scheme, RDim, MultDepth, SModSize, DSize,BatchSz, SecKeyDist, MaxRelinSkDeg, FModSize, SecLvl, KSTech, ScalTech, LDigits, PtMod, StdDev, EvalAddCt, KSCt, MultTech, EncTech, PREMode, Star, Slots, sharingScheme - { CKKSRNS_TEST, "77", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, 60, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, false, 1024, "NA"}, - { CKKSRNS_TEST, "78", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, 60, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, - { CKKSRNS_TEST, "79", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, 60, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, false, 1024, "NA"}, - { CKKSRNS_TEST, "80", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, 60, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, - { CKKSRNS_TEST, "81", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, false, 1024, "NA"}, - { CKKSRNS_TEST, "82", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, + { CKKSRNS_TEST, "77", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, false, 1024, "NA"}, + { CKKSRNS_TEST, "78", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, + { CKKSRNS_TEST, "79", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, false, 1024, "NA"}, + { CKKSRNS_TEST, "80", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, true, 1024, "NA"}, { CKKSRNS_TEST, "83", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, false, 512, "NA"}, { CKKSRNS_TEST, "84", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, true, 512, "NA"}, { CKKSRNS_TEST, "85", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 32, 4}, false, 512, "NA"}, From f04113793416273b6a66e072c379c98a320ddf44 Mon Sep 17 00:00:00 2001 From: Dmitriy Suponitskiy Date: Wed, 10 Jun 2026 17:02:57 -0400 Subject: [PATCH 2/2] Corrected unittests --- src/pke/unittest/UnitTestMultiparty.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/pke/unittest/UnitTestMultiparty.cpp b/src/pke/unittest/UnitTestMultiparty.cpp index ac3e43c87..fe6085e67 100644 --- a/src/pke/unittest/UnitTestMultiparty.cpp +++ b/src/pke/unittest/UnitTestMultiparty.cpp @@ -190,14 +190,16 @@ static std::vector testCases = { { CKKSRNS_TEST, "75", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, DFLT, HEStd_NotSet, BV, FLEXIBLEAUTOEXT, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, { CKKSRNS_TEST, "76", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, DFLT, HEStd_NotSet, HYBRID, FLEXIBLEAUTOEXT, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, // TestType, Descr, Scheme, RDim, MultDepth, SModSize, DSize,BatchSz, SecKeyDist, MaxRelinSkDeg, FModSize, SecLvl, KSTech, ScalTech, LDigits, PtMod, StdDev, EvalAddCt, KSCt, MultTech, EncTech, PREMode, Star, Slots, sharingScheme - { CKKSRNS_TEST, "77", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, false, 1024, "NA"}, - { CKKSRNS_TEST, "78", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, - { CKKSRNS_TEST, "79", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, false, 1024, "NA"}, - { CKKSRNS_TEST, "80", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, true, 1024, "NA"}, - { CKKSRNS_TEST, "83", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, false, 512, "NA"}, - { CKKSRNS_TEST, "84", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, true, 512, "NA"}, - { CKKSRNS_TEST, "85", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 32, 4}, false, 512, "NA"}, - { CKKSRNS_TEST, "86", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 32, 4}, true, 512, "NA"}, + { CKKSRNS_TEST, "77", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, false, 1024, "NA"}, + { CKKSRNS_TEST, "78", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT}, true, 1024, "NA"}, + { CKKSRNS_TEST, "79", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, false, 1024, "NA"}, + { CKKSRNS_TEST, "80", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, true, 1024, "NA"}, + { CKKSRNS_TEST, "81", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, 60, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 32}, false, 1024, "NA"}, + { CKKSRNS_TEST, "82", {CKKSRNS_SCHEME, 2048, 2, 50, 3, BATCH, DFLT, DFLT, 60, HEStd_NotSet, HYBRID, COMPOSITESCALINGAUTO, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 32}, true, 1024, "NA"}, + { CKKSRNS_TEST, "83", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, false, 512, "NA"}, + { CKKSRNS_TEST, "84", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 64, 2}, true, 512, "NA"}, + { CKKSRNS_TEST, "85", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 32, 4}, false, 512, "NA"}, + { CKKSRNS_TEST, "86", {CKKSRNS_SCHEME, 2048, 2, 118, 3, BATCH, DFLT, DFLT, 120, HEStd_NotSet, HYBRID, COMPOSITESCALINGMANUAL, DFLT, DFLT, DFLT, 0, 0, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, DFLT, 32, 4}, true, 512, "NA"}, #endif // ========================================== // TestType, Descr, Scheme, RDim, MultDepth, SModSize, DSize, BatchSz, SecKeyDist, MaxRelinSkDeg, FModSize, SecLvl, KSTech, ScalTech, LDigits, PtMod, StdDev, EvalAddCt, KSCt, MultTech, EncTech, PREMode, MultipartyMode, Star, Slots, sharingScheme