#pragma once #include "openfhe/core/lattice/hal/lat-backend.h" #include "openfhe/pke/key/evalkey-fwd.h" #include "EvalKey.h" #include #include #include // cxx currently does not support std::unordered_map and std::map namespace openfhe { using DCRTPoly = lbcrypto::DCRTPoly; class UnorderedMapFromIndexToDCRTPoly final { std::unordered_map m_indexToDCRTPolyUnorderedMap; public: explicit UnorderedMapFromIndexToDCRTPoly( std::unordered_map indexToDCRTPolyUnorderedMap); [[nodiscard]] std::unordered_map& GetInternal(); }; using EvalKeyImpl = lbcrypto::EvalKeyImpl; class MapFromIndexToEvalKey final { std::shared_ptr>> m_sharedPtrToindexToEvalKeyDCRTPolyMap; public: explicit MapFromIndexToEvalKey( const std::shared_ptr>> indexToEvalKeyDCRTPolyMap); [[nodiscard]] const std::map>& GetInternalMap() const; [[nodiscard]] std::shared_ptr>> GetInternal() const; }; } // openfhe