/* Copyright (C) 2014 Carlos Aguilar Melchor, Joris Barrier, Marc-Olivier Killijian * This file is part of XPIR. * * XPIR is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * XPIR is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XPIR. If not, see . */ #include "PIRQueryGenerator_internal.hpp" #include "../crypto/NFLLWE.hpp" /** * Class constructor * Params: * - PIRParameters& pirParameters_ : PIRParameters reference shared with PIRClient. * - crypto_ptr cryptoMethod_ : shared_pointer of Homomorphic crypto. **/ PIRQueryGenerator_internal::PIRQueryGenerator_internal(PIRParameters& pirParameters_,HomomorphicCrypto& cryptoMethod_) : pirParams(pirParameters_), cryptoMethod(cryptoMethod_), queryBuffer("query_buffer"), mutex() {} /** * Generates asyncronously queries for each files. * Makes encrypted of 0 or 1. **/ uint64_t simple_power(uint32_t d, uint32_t n){ uint64_t out = n; for(int i=1;i