Percy++
A C++ implementation of Private Information Retrieval (PIR) protocols
|
A PIR client for the IT-PIR protocol by Goldberg (2007) over GF(2^E). More...
#include <itclient.h>
Public Member Functions | |
PercyClient_GF2E (const PercyClientParams *params, nservers_t num_servers, nservers_t t, sid_t *sids, PercyStats *stats=NULL) | |
Constructor. More... | |
virtual | ~PercyClient_GF2E () |
Destructor. More... | |
Public Member Functions inherited from PercyClient | |
virtual | ~PercyClient () |
Destructor. More... | |
nqueries_t | encode_request (vector< dbsize_t > block_numbers, nqueries_t querybsize=1) |
Encode a request for the given block numbers. More... | |
dbsize_t | send_request (nqueries_t request_identifier, std::vector< ostream * > &osvec, bool send_num_queries=true) |
Send the request for the given request ID. More... | |
dbsize_t | receive_replies (nqueries_t request_identifier, std::vector< istream * > &isvec) |
Receive the servers' replies for a given request ID. More... | |
nqueries_t | process_replies (nservers_t h) |
Process the servers' replies for all undecoded replies. More... | |
bool | get_result (nqueries_t request_identifier, vector< PercyBlockResults > &results) |
Get the result for a given request ID. More... | |
bool | fetch_blocks (nqueries_t &request_identifier, vector< dbsize_t > block_numbers, vector< ostream * > &osvec, vector< istream * > &isvec, vector< PercyBlockResults > &results, nqueries_t querybsize=1) |
Do encode_request(), send_request(), receive_replies(), process_replies(), and get_result() all in one shot. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from PercyClient | |
static PercyClient * | make_client (const PercyClientParams *clientparams, nservers_t num_servers, nservers_t t, sid_t *sids=NULL, PercyStats *stats=NULL) |
Factory method called to get a client object for the given parameters. More... | |
Protected Member Functions inherited from PercyClient | |
const vector< dbsize_t > & | get_block_numbers (nqueries_t request_identifier) |
Get the block numbers for a given request ID. More... | |
nqueries_t | get_qbs (nqueries_t request_identifier) |
Get the number of blocks to request in a single query for a given request ID. More... | |
PercyClient (const PercyClientParams *clientparams, nservers_t num_servers, nservers_t t, PercyStats *stats=NULL) | |
Constructor. More... | |
Protected Attributes inherited from PercyClient | |
const PercyClientParams * | clientparams |
Parameters for the client. More... | |
nservers_t | num_servers |
The number of servers. More... | |
nservers_t | t |
The privacy level. More... | |
vector< nservers_t > | goodservers |
The server indices of servers that have not acted up. More... | |
Static Protected Attributes inherited from PercyClient | |
static const bool | randomize = true |
Randomize the requests for IT-PIR clients. More... | |
A PIR client for the IT-PIR protocol by Goldberg (2007) over GF(2^E).
Supported fields are GF(2^8) and GF(2^16). This protocol was introduced in Improving the Robustness of Private Information Retrieval and revisited in
PercyClient_GF2E | ( | const PercyClientParams * | params, |
nservers_t | num_servers, | ||
nservers_t | t, | ||
sid_t * | sids, | ||
PercyStats * | stats = NULL |
||
) |
Constructor.
params | Parameters for the client. |
num_servers | The number of servers used |
t | The privacy level. I.e. the maximum number of servers that can collude and the queries will remain private. |
sids | An array of IDs for the servers that will be used. |
stats | Statistics collection object. No statistics will be collected if NULL. |
|
virtual |
Destructor.