浏览代码

Redeclaration of enums from constants.h removed. The original enums were moved constants-fwd.h and now are being used.

nkaskov 1 年之前
父节点
当前提交
b26f0a61f6
共有 3 个文件被更改,包括 63 次插入134 次删除
  1. 21 92
      cpp/include/bindings.hpp
  2. 39 39
      cpp/src/bindings.cpp
  3. 3 3
      src/lib.rs

+ 21 - 92
cpp/include/bindings.hpp

@@ -29,6 +29,7 @@
 #define OPENFHE_BINDINGS_H
 
 #include <cstdint>
+#include "constants-fwd.h"
 
 // forward declarations
 class FFIPublicKeyImpl;
@@ -40,78 +41,6 @@ class FFICryptoContextImpl;
 typedef std::uint32_t usint;
 typedef std::uint64_t FFIPlaintextModulus;
 
-// enums from constants.h
-
-enum FFIMultipartyMode {
-    INVALID_MULTIPARTY_MODE = 0,
-    FIXED_NOISE_MULTIPARTY,
-    NOISE_FLOODING_MULTIPARTY,
-};
-
-enum FFIProxyReEncryptionMode {
-    NOT_SET = 0,
-    INDCPA,
-    FIXED_NOISE_HRA,
-    NOISE_FLOODING_HRA,
-    DIVIDE_AND_ROUND_HRA,
-};
-
-enum FFIExecutionMode {
-    EXEC_EVALUATION = 0,
-    EXEC_NOISE_ESTIMATION,
-};
-
-enum FFIDecryptionNoiseMode {
-    FIXED_NOISE_DECRYPT = 0,
-    NOISE_FLOODING_DECRYPT,
-};
-
-enum FFIKeySwitchTechnique {
-    INVALID_KS_TECH = 0,
-    BV,
-    HYBRID,
-};
-
-enum FFIScalingTechnique {
-    FIXEDMANUAL = 0,
-    FIXEDAUTO,
-    FLEXIBLEAUTO,
-    FLEXIBLEAUTOEXT,
-    NORESCALE,
-    INVALID_RS_TECHNIQUE,  // TODO (dsuponit): make this the first value
-};
-
-enum FFIEncryptionTechnique {
-    STANDARD = 0,
-    EXTENDED,
-};
-
-enum FFIMultiplicationTechnique {
-    BEHZ = 0,
-    HPS,
-    HPSPOVERQ,
-    HPSPOVERQLEVELED,
-};
-
-enum FFICOMPRESSION_LEVEL {
-    // we don't support 0 or 1 compression levels
-    // do not change values here
-
-    COMPACT = 2,  // more efficient with stronger security assumption
-    SLACK   = 3   // less efficient with weaker security assumption
-};
-
-enum FFIPKESchemeFeature {
-    PKE          = 0x01,
-    KEYSWITCH    = 0x02,
-    PRE          = 0x04,
-    LEVELEDSHE   = 0x08,
-    ADVANCEDSHE  = 0x10,
-    MULTIPARTY   = 0x20,
-    FHE          = 0x40,
-    SCHEMESWITCH = 0x80,
-};
-
 // enums from stdlatticeparms.h
 
 enum FFISecurityLevel {
@@ -290,13 +219,13 @@ public:
 
     usint GetMaxRelinSkDeg() const;
 
-    FFIProxyReEncryptionMode GetPREMode() const;
+    lbcrypto::ProxyReEncryptionMode GetPREMode() const;
 
-    FFIMultipartyMode GetMultipartyMode() const;
+    lbcrypto::MultipartyMode GetMultipartyMode() const;
 
-    FFIExecutionMode GetExecutionMode() const;
+    lbcrypto::ExecutionMode GetExecutionMode() const;
 
-    FFIDecryptionNoiseMode GetDecryptionNoiseMode() const;
+    lbcrypto::DecryptionNoiseMode GetDecryptionNoiseMode() const;
 
     double GetNoiseEstimate() const;
 
@@ -308,9 +237,9 @@ public:
 
     usint GetThresholdNumOfParties() const;
 
-    FFIKeySwitchTechnique GetKeySwitchTechnique() const;
+    lbcrypto::KeySwitchTechnique GetKeySwitchTechnique() const;
 
-    FFIScalingTechnique GetScalingTechnique() const;
+    lbcrypto::ScalingTechnique GetScalingTechnique() const;
 
     usint GetBatchSize() const;
 
@@ -330,13 +259,13 @@ public:
 
     usint GetKeySwitchCount() const;
 
-    FFIEncryptionTechnique GetEncryptionTechnique() const;
+    lbcrypto::EncryptionTechnique GetEncryptionTechnique() const;
 
-    FFIMultiplicationTechnique GetMultiplicationTechnique() const;
+    lbcrypto::MultiplicationTechnique GetMultiplicationTechnique() const;
 
     usint GetMultiHopModSize() const;
 
-    FFICOMPRESSION_LEVEL GetInteractiveBootCompressionLevel() const;
+    lbcrypto::COMPRESSION_LEVEL GetInteractiveBootCompressionLevel() const;
 
     void SetPlaintextModulus(FFIPlaintextModulus ptModulus);
 
@@ -348,13 +277,13 @@ public:
 
     void SetMaxRelinSkDeg(usint maxRelinSkDeg);
 
-    void SetPREMode(FFIProxyReEncryptionMode preMode);
+    void SetPREMode(lbcrypto::ProxyReEncryptionMode preMode);
 
-    void SetMultipartyMode(FFIMultipartyMode multipartyMode);
+    void SetMultipartyMode(lbcrypto::MultipartyMode multipartyMode);
 
-    void SetExecutionMode(FFIExecutionMode executionMode);
+    void SetExecutionMode(lbcrypto::ExecutionMode executionMode);
 
-    void SetDecryptionNoiseMode(FFIDecryptionNoiseMode decryptionNoiseMode);
+    void SetDecryptionNoiseMode(lbcrypto::DecryptionNoiseMode decryptionNoiseMode);
 
     void SetNoiseEstimate(double noiseEstimate);
 
@@ -366,9 +295,9 @@ public:
 
     void SetThresholdNumOfParties(uint32_t thresholdNumOfParties);
 
-    void SetKeySwitchTechnique(FFIKeySwitchTechnique keySwitchTechnique);
+    void SetKeySwitchTechnique(lbcrypto::KeySwitchTechnique keySwitchTechnique);
 
-    void SetScalingTechnique(FFIScalingTechnique scalingTechnique);
+    void SetScalingTechnique(lbcrypto::ScalingTechnique scalingTechnique);
 
     void SetBatchSize(usint batchSize);
 
@@ -388,13 +317,13 @@ public:
 
     void SetKeySwitchCount(usint keySwitchCount);
 
-    void SetEncryptionTechnique(FFIEncryptionTechnique encryptionTechnique);
+    void SetEncryptionTechnique(lbcrypto::EncryptionTechnique encryptionTechnique);
 
-    void SetMultiplicationTechnique(FFIMultiplicationTechnique multiplicationTechnique);
+    void SetMultiplicationTechnique(lbcrypto::MultiplicationTechnique multiplicationTechnique);
 
     void SetMultiHopModSize(usint multiHopModSize);
 
-    void SetInteractiveBootCompressionLevel(FFICOMPRESSION_LEVEL interactiveBootCompressionLevel);
+    void SetInteractiveBootCompressionLevel(lbcrypto::COMPRESSION_LEVEL interactiveBootCompressionLevel);
 
 //     std::stream str();  
 
@@ -435,13 +364,13 @@ public:
 
     double GetScalingFactorReal(uint32_t level) const;
 
-    FFIScalingTechnique GetScalingTechnique() const;
+    lbcrypto::ScalingTechnique GetScalingTechnique() const;
 
     usint GetDigitSize() const;
 
     usint GetCyclotomicOrder() const;
 
-    void Enable(FFIPKESchemeFeature feature);
+    void Enable(lbcrypto::PKESchemeFeature feature);
 
     FFIKeyPair KeyGen() const;
 

+ 39 - 39
cpp/src/bindings.cpp

@@ -97,28 +97,28 @@ usint FFIParams::GetMaxRelinSkDeg() const{
     return cc_params->GetMaxRelinSkDeg();
 }
 
-FFIProxyReEncryptionMode FFIParams::GetPREMode() const{
+lbcrypto::ProxyReEncryptionMode FFIParams::GetPREMode() const{
     std::shared_ptr<const Params> cc_params =
         reinterpret_cast<const ParamsHolder*>(params_ptr)->ptr;
-    return FFIProxyReEncryptionMode(cc_params->GetPREMode());
+    return cc_params->GetPREMode();
 }
 
-FFIMultipartyMode FFIParams::GetMultipartyMode() const{
+lbcrypto::MultipartyMode FFIParams::GetMultipartyMode() const{
     std::shared_ptr<const Params> cc_params =
         reinterpret_cast<const ParamsHolder*>(params_ptr)->ptr;
-    return FFIMultipartyMode(cc_params->GetMultipartyMode());
+    return cc_params->GetMultipartyMode();
 }
 
-FFIExecutionMode FFIParams::GetExecutionMode() const{
+lbcrypto::ExecutionMode FFIParams::GetExecutionMode() const{
     std::shared_ptr<const Params> cc_params =
         reinterpret_cast<const ParamsHolder*>(params_ptr)->ptr;
-    return FFIExecutionMode(cc_params->GetExecutionMode());
+    return cc_params->GetExecutionMode();
 }
 
-FFIDecryptionNoiseMode FFIParams::GetDecryptionNoiseMode() const{
+lbcrypto::DecryptionNoiseMode FFIParams::GetDecryptionNoiseMode() const{
     std::shared_ptr<const Params> cc_params =
         reinterpret_cast<const ParamsHolder*>(params_ptr)->ptr;
-    return FFIDecryptionNoiseMode(cc_params->GetDecryptionNoiseMode());
+    return cc_params->GetDecryptionNoiseMode();
 }
 
 double FFIParams::GetNoiseEstimate() const{
@@ -151,16 +151,16 @@ usint FFIParams::GetThresholdNumOfParties() const{
     return cc_params->GetThresholdNumOfParties();
 }
 
-FFIKeySwitchTechnique FFIParams::GetKeySwitchTechnique() const{
+lbcrypto::KeySwitchTechnique FFIParams::GetKeySwitchTechnique() const{
     std::shared_ptr<const Params> cc_params =
         reinterpret_cast<const ParamsHolder*>(params_ptr)->ptr;
-    return FFIKeySwitchTechnique(cc_params->GetKeySwitchTechnique());
+    return cc_params->GetKeySwitchTechnique();
 }
 
-FFIScalingTechnique FFIParams::GetScalingTechnique() const{
+lbcrypto::ScalingTechnique FFIParams::GetScalingTechnique() const{
     std::shared_ptr<const Params> cc_params =
         reinterpret_cast<const ParamsHolder*>(params_ptr)->ptr;
-    return FFIScalingTechnique(cc_params->GetScalingTechnique());
+    return cc_params->GetScalingTechnique();
 }
 
 usint FFIParams::GetBatchSize() const{
@@ -217,16 +217,16 @@ usint FFIParams::GetKeySwitchCount() const{
     return cc_params->GetKeySwitchCount();
 }
 
-FFIEncryptionTechnique FFIParams::GetEncryptionTechnique() const{
+lbcrypto::EncryptionTechnique FFIParams::GetEncryptionTechnique() const{
     std::shared_ptr<const Params> cc_params =
         reinterpret_cast<const ParamsHolder*>(params_ptr)->ptr;
-    return FFIEncryptionTechnique(cc_params->GetEncryptionTechnique());
+    return cc_params->GetEncryptionTechnique();
 }
 
-FFIMultiplicationTechnique FFIParams::GetMultiplicationTechnique() const{
+lbcrypto::MultiplicationTechnique FFIParams::GetMultiplicationTechnique() const{
     std::shared_ptr<const Params> cc_params =
         reinterpret_cast<const ParamsHolder*>(params_ptr)->ptr;
-    return FFIMultiplicationTechnique(cc_params->GetMultiplicationTechnique());
+    return cc_params->GetMultiplicationTechnique();
 }
 
 usint FFIParams::GetMultiHopModSize() const{
@@ -235,10 +235,10 @@ usint FFIParams::GetMultiHopModSize() const{
     return cc_params->GetMultiHopModSize();
 }
 
-FFICOMPRESSION_LEVEL FFIParams::GetInteractiveBootCompressionLevel() const{
+lbcrypto::COMPRESSION_LEVEL FFIParams::GetInteractiveBootCompressionLevel() const{
     std::shared_ptr<const Params> cc_params =
         reinterpret_cast<const ParamsHolder*>(params_ptr)->ptr;
-    return FFICOMPRESSION_LEVEL(cc_params->GetInteractiveBootCompressionLevel());
+    return cc_params->GetInteractiveBootCompressionLevel();
 }
 
 // setters
@@ -273,28 +273,28 @@ void FFIParams::SetMaxRelinSkDeg(usint maxRelinSkDeg){
     cc_params->SetMaxRelinSkDeg(maxRelinSkDeg);
 }
 
-void FFIParams::SetPREMode(FFIProxyReEncryptionMode preMode){
+void FFIParams::SetPREMode(lbcrypto::ProxyReEncryptionMode preMode){
     std::shared_ptr<Params> cc_params =
         reinterpret_cast<ParamsHolder*>(params_ptr)->ptr;
-    cc_params->SetPREMode(lbcrypto::ProxyReEncryptionMode(preMode));
+    cc_params->SetPREMode(preMode);
 }
 
-void FFIParams::SetMultipartyMode(FFIMultipartyMode multipartyMode){
+void FFIParams::SetMultipartyMode(lbcrypto::MultipartyMode multipartyMode){
     std::shared_ptr<Params> cc_params =
         reinterpret_cast<ParamsHolder*>(params_ptr)->ptr;
-    cc_params->SetMultipartyMode(lbcrypto::MultipartyMode(multipartyMode));
+    cc_params->SetMultipartyMode(multipartyMode);
 }
 
-void FFIParams::SetExecutionMode(FFIExecutionMode executionMode){
+void FFIParams::SetExecutionMode(lbcrypto::ExecutionMode executionMode){
     std::shared_ptr<Params> cc_params =
         reinterpret_cast<ParamsHolder*>(params_ptr)->ptr;
-    cc_params->SetExecutionMode(lbcrypto::ExecutionMode(executionMode));
+    cc_params->SetExecutionMode(executionMode);
 }
 
-void FFIParams::SetDecryptionNoiseMode(FFIDecryptionNoiseMode decryptionNoiseMode){
+void FFIParams::SetDecryptionNoiseMode(lbcrypto::DecryptionNoiseMode decryptionNoiseMode){
     std::shared_ptr<Params> cc_params =
         reinterpret_cast<ParamsHolder*>(params_ptr)->ptr;
-    cc_params->SetDecryptionNoiseMode(lbcrypto::DecryptionNoiseMode(decryptionNoiseMode));
+    cc_params->SetDecryptionNoiseMode(decryptionNoiseMode);
 }
 
 void FFIParams::SetNoiseEstimate(double noiseEstimate){
@@ -327,16 +327,16 @@ void FFIParams::SetThresholdNumOfParties(uint32_t thresholdNumOfParties){
     cc_params->SetThresholdNumOfParties(thresholdNumOfParties);
 }
 
-void FFIParams::SetKeySwitchTechnique(FFIKeySwitchTechnique keySwitchTechnique){
+void FFIParams::SetKeySwitchTechnique(lbcrypto::KeySwitchTechnique keySwitchTechnique){
     std::shared_ptr<Params> cc_params =
         reinterpret_cast<ParamsHolder*>(params_ptr)->ptr;
-    cc_params->SetKeySwitchTechnique(lbcrypto::KeySwitchTechnique(keySwitchTechnique));
+    cc_params->SetKeySwitchTechnique(keySwitchTechnique);
 }
 
-void FFIParams::SetScalingTechnique(FFIScalingTechnique scalingTechnique){
+void FFIParams::SetScalingTechnique(lbcrypto::ScalingTechnique scalingTechnique){
     std::shared_ptr<Params> cc_params =
         reinterpret_cast<ParamsHolder*>(params_ptr)->ptr;
-    cc_params->SetScalingTechnique(lbcrypto::ScalingTechnique(scalingTechnique));
+    cc_params->SetScalingTechnique(scalingTechnique);
 }
 
 void FFIParams::SetBatchSize(usint batchSize){
@@ -393,16 +393,16 @@ void FFIParams::SetKeySwitchCount(usint keySwitchCount){
     cc_params->SetKeySwitchCount(keySwitchCount);
 }
 
-void FFIParams::SetEncryptionTechnique(FFIEncryptionTechnique encryptionTechnique){
+void FFIParams::SetEncryptionTechnique(lbcrypto::EncryptionTechnique encryptionTechnique){
     std::shared_ptr<Params> cc_params =
         reinterpret_cast<ParamsHolder*>(params_ptr)->ptr;
-    cc_params->SetEncryptionTechnique(lbcrypto::EncryptionTechnique(encryptionTechnique));
+    cc_params->SetEncryptionTechnique(encryptionTechnique);
 }
 
-void FFIParams::SetMultiplicationTechnique(FFIMultiplicationTechnique multiplicationTechnique){
+void FFIParams::SetMultiplicationTechnique(lbcrypto::MultiplicationTechnique multiplicationTechnique){
     std::shared_ptr<Params> cc_params =
         reinterpret_cast<ParamsHolder*>(params_ptr)->ptr;
-    cc_params->SetMultiplicationTechnique(lbcrypto::MultiplicationTechnique(multiplicationTechnique));
+    cc_params->SetMultiplicationTechnique(multiplicationTechnique);
 }
 
 void FFIParams::SetMultiHopModSize(usint multiHopModSize){
@@ -411,10 +411,10 @@ void FFIParams::SetMultiHopModSize(usint multiHopModSize){
     cc_params->SetMultiHopModSize(multiHopModSize);
 }
 
-void FFIParams::SetInteractiveBootCompressionLevel(FFICOMPRESSION_LEVEL interactiveBootCompressionLevel){
+void FFIParams::SetInteractiveBootCompressionLevel(lbcrypto::COMPRESSION_LEVEL interactiveBootCompressionLevel){
     std::shared_ptr<Params> cc_params =
         reinterpret_cast<ParamsHolder*>(params_ptr)->ptr;
-    cc_params->SetInteractiveBootCompressionLevel(lbcrypto::COMPRESSION_LEVEL(interactiveBootCompressionLevel));
+    cc_params->SetInteractiveBootCompressionLevel(interactiveBootCompressionLevel);
 }
 
 FFICryptoContextImpl::FFICryptoContextImpl(){
@@ -464,10 +464,10 @@ double FFICryptoContextImpl::GetScalingFactorReal(uint32_t level) const{
     return GetScalingFactorRealWrapper(cc, level);
 }
 
-FFIScalingTechnique FFICryptoContextImpl::GetScalingTechnique() const{
+lbcrypto::ScalingTechnique FFICryptoContextImpl::GetScalingTechnique() const{
     std::shared_ptr<CryptoContextImpl<DCRTPoly>> cc =
         reinterpret_cast<const CryptoContextImplHolder*>(cc_ptr)->ptr;
-    return FFIScalingTechnique(GetScalingTechniqueWrapper(cc));
+    return GetScalingTechniqueWrapper(cc);
 }
 
 usint FFICryptoContextImpl::GetDigitSize() const{
@@ -482,7 +482,7 @@ usint FFICryptoContextImpl::GetCyclotomicOrder() const{
     return cc->GetCyclotomicOrder();
 }
 
-void FFICryptoContextImpl::Enable(FFIPKESchemeFeature feature) {
+void FFICryptoContextImpl::Enable(lbcrypto::PKESchemeFeature feature) {
     std::shared_ptr<CryptoContextImpl<DCRTPoly>> cc =
         reinterpret_cast<CryptoContextImplHolder*>(cc_ptr)->ptr;
     cc->Enable(PKESchemeFeature(feature));

+ 3 - 3
src/lib.rs

@@ -15,9 +15,9 @@ mod tests {
 
             let mut ccontext = GenCryptoContext(ccparams);
 
-            ccontext.Enable(FFIPKESchemeFeature_PKE);
-            ccontext.Enable(FFIPKESchemeFeature_KEYSWITCH);
-            ccontext.Enable(FFIPKESchemeFeature_LEVELEDSHE);
+            ccontext.Enable(lbcrypto_PKESchemeFeature_PKE);
+            ccontext.Enable(lbcrypto_PKESchemeFeature_KEYSWITCH);
+            ccontext.Enable(lbcrypto_PKESchemeFeature_LEVELEDSHE);
 
             let key_pair = ccontext.KeyGen();