PALISADE Lattice Crypto Library  1.11.9
A lattice crypto library for software engineers by software engineers.
binfhecontext-ser.h
1 // @file bindhecontext-ser.h - Header file adding serialization support to
2 // Boolean circuit FHE
3 // @author TPOC: contact@palisade-crypto.org
4 //
5 // @copyright Copyright (c) 2019, Duality Technologies Inc.
6 // All rights reserved.
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions are met:
9 // 1. Redistributions of source code must retain the above copyright notice,
10 // this list of conditions and the following disclaimer.
11 // 2. Redistributions in binary form must reproduce the above copyright notice,
12 // this list of conditions and the following disclaimer in the documentation
13 // and/or other materials provided with the distribution. THIS SOFTWARE IS
14 // PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
15 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
17 // EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
18 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 
25 #ifndef BINFHE_BINFHECONTEXT_SER_H
26 #define BINFHE_BINFHECONTEXT_SER_H
27 
28 #include "binfhecontext.h"
29 #include "utils/serial.h"
30 
31 // Registers types needed for serialization
32 CEREAL_REGISTER_TYPE(lbcrypto::LWECryptoParams);
33 CEREAL_REGISTER_TYPE(lbcrypto::LWECiphertextImpl);
34 CEREAL_REGISTER_TYPE(lbcrypto::LWEPrivateKeyImpl);
35 CEREAL_REGISTER_TYPE(lbcrypto::LWESwitchingKey);
36 CEREAL_REGISTER_TYPE(lbcrypto::RingGSWCryptoParams);
37 CEREAL_REGISTER_TYPE(lbcrypto::RingGSWCiphertext);
38 CEREAL_REGISTER_TYPE(lbcrypto::RingGSWBTKey);
39 CEREAL_REGISTER_TYPE(lbcrypto::BinFHEContext);
40 
41 #endif
Class that stores the refreshing key (used in bootstrapping) A three-dimensional vector of RingGSW ci...
Definition: ringcore.h:361
Class that stores all parameters for the LWE scheme.
Definition: lwecore.h:42
Class that stores a LWE scheme ciphertext; composed of a vector "a" and integer "b".
Definition: lwecore.h:218
Class that stores the LWE scheme switching key.
Definition: lwecore.h:362
Class that stores a RingGSW ciphertext; a two-dimensional vector of ring elements.
Definition: ringcore.h:271
Class that stores the LWE scheme secret key; contains a vector.
Definition: lwecore.h:300
BinFHEContext.
Definition: binfhecontext.h:98
Class that stores all parameters for the RingGSW scheme used in bootstrapping.
Definition: ringcore.h:54