HEaaN
Crypto Lab's great homomorphic encryption library
EnDecoder.hpp
Go to the documentation of this file.
1 // //
3 // Copyright (C) 2021-2023 Crypto Lab Inc. //
4 // //
5 // - This file is part of HEaaN homomorphic encryption library. //
6 // - HEaaN cannot be copied and/or distributed without the express permission //
7 // of Crypto Lab Inc. //
8 // //
10 
11 #pragma once
12 
13 #include "HEaaN/Context.hpp"
14 #include "HEaaN/HEaaNExport.hpp"
15 
16 namespace HEaaN {
17 
18 class Message;
19 class Plaintext;
20 
26 public:
27  explicit EnDecoder(const Context &context);
28 
48  Plaintext encode(const Message &msg, u64 level, int r_counter = 0) const;
49 
58  Plaintext encode(const Message &msg) const;
59 
74  Plaintext encodeWithoutNTT(const Message &msg, u64 level,
75  int r_counter = 0) const;
76 
84  Plaintext encodeWithoutNTT(const Message &msg) const;
85 
89  Message decode(const Plaintext &ptxt) const;
90 
91 private:
94 };
95 } // namespace HEaaN
HEaaN::EnDecoder
Class containing functions dealing with message/plaintext encoding and decoding.
Definition: EnDecoder.hpp:25
HEaaN::EnDecoder::context_
const Context context_
A context with which the scheme is associated.
Definition: EnDecoder.hpp:93
HEaaN::Message
Definition: Message.hpp:30
HEaaN::u64
std::uint64_t u64
Definition: Integers.hpp:17
HEaaN::Plaintext
A class of plaintexts each of which is simply a polynomial.
Definition: Plaintext.hpp:26
HEaaN::Context
std::shared_ptr< ContextContent > Context
Definition: Context.hpp:27
Context.hpp
HEaaNExport.hpp
HEAAN_API
#define HEAAN_API
Definition: HEaaNExport.hpp:26
HEaaN
Definition: Bootstrapper.hpp:16