PALISADE Lattice Crypto Library  1.11.9
A lattice crypto library for software engineers by software engineers.
pubkeylp-ser.h
1 // @file pubkeylp-ser.h - serialize keys; include this in any app that needs to
2 // serialize these objects
3 // @author TPOC: contact@palisade-crypto.org
4 //
5 // @copyright Copyright (c) 2019, New Jersey Institute of Technology (NJIT)
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 LBCRYPTO_CRYPTO_PUBKEYLPSER_H
26 #define LBCRYPTO_CRYPTO_PUBKEYLPSER_H
27 
28 #include "palisade.h"
29 #include "utils/serial.h"
30 
33 
36 
38 extern template class lbcrypto::LPPublicKeyEncryptionScheme<
40 
41 extern template class lbcrypto::LPEvalKeyImpl<lbcrypto::Poly>;
43 
46 
52 
55 
58 
60 CEREAL_REGISTER_TYPE(
62 
63 CEREAL_REGISTER_TYPE(lbcrypto::LPEvalKeyImpl<lbcrypto::Poly>);
65 
68 
69 CEREAL_REGISTER_POLYMORPHIC_RELATION(
72 CEREAL_REGISTER_POLYMORPHIC_RELATION(
75 
81 CEREAL_REGISTER_POLYMORPHIC_RELATION(
84 
85 #endif
Template for crypto parameters.
Definition: rlwe.h:47
Abstract interface for LP evaluation/proxy keys.
Definition: pubkeylp.h:304
main implementation class to capture essential cryptoparameters of any LBC system ...
Definition: pubkeylp.h:73
Abstract interface for public key encryption schemes.
Definition: pubkeylp.h:3181
Concrete class for Relinearization keys of RLWE scheme.
Definition: pubkeylp.h:524