29 #ifndef DATA_PACKER_HEADER_GUARD
30 #define DATA_PACKER_HEADER_GUARD
45 template <
typename T_CryptoProv
ider>
65 typedef std::deque<typename DataPacker<T_CryptoProvider>::DataBucket>
UnpackedData;
68 typedef std::deque<typename T_CryptoProvider::Ciphertext>
PackedData;
131 #endif//DATA_PACKER_HEADER_GUARD
BigInteger backPadding
The back padding ( )
Container for data buckets.
PackedData Pack(const UnpackedData &input) const
Pack data.
const T_CryptoProvider & cryptoProvider
Reference to the Crypto Provider.
BigInteger data
The data ( )
size_t bucketSize
The size (in bits) of each bucket (computed in the constructor)
Definition of class Config.
BigInteger backPaddingMessageSpace
The maximum value that can be stored in DataBucket.backPadding.
UnpackedData Unpack(const PackedData &input, const size_t totalBucketCount) const
Unpack data.
size_t bucketsPerEncryption
The maximum number of buckets that can pe packet in a single encryption.
std::deque< typename DataPacker< T_CryptoProvider >::DataBucket > UnpackedData
Define a vector template specialization for vectors of unpacked data.
void initialize()
Initialize class members.
BigInteger frontPaddingMessageSpace
The maximum value that can be stored in DataBucket.frontPadding.
Template class which implements the data packing functionality.
BigInteger dataMessageSpace
The maximum value that can be stored in DataBucket.data.
BigInteger frontPadding
The front padding ( )
DataPacker(const T_CryptoProvider &cryptoProvider, const size_t dataSize, const size_t frontPaddingSize=0, const size_t backPaddingSize=0)
Constructor with custom data sizes.
size_t backPaddingSize
The size (in bits) of the back padding (defaults to 0)
size_t dataSize
The size (in bits) of the data.
Implementation of template class DataPacker. To be included in data_packer.h.
DataPacker operator=(DataPacker const &)
Copy assignment operator - not implemented.
PackedData HomomorphicAdd(const PackedData &lhs, const PackedData &rhs)
Add two vectors of packed data.
std::deque< typename T_CryptoProvider::Ciphertext > PackedData
Define a vector template specialization for vectors of packed data.
size_t frontPaddingSize
The size (in bits) of the front padding (defaults to 0)
PackedData HomomorphicMultiply(const PackedData &lhs, const BigInteger &rhs)
Multiply a vector of packed data with a constant plaintext term.