Percy++
A C++ implementation of Private Information Retrieval (PIR) protocols
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | List of all members
PercyServer_GF2E< GF2E_Element > Class Template Reference

A PIR server for the IT-PIR protocol by Goldberg (2007) over GF(2^E). More...

#include <itserver.h>

Inheritance diagram for PercyServer_GF2E< GF2E_Element >:
PercyServer

Public Member Functions

 PercyServer_GF2E (DataStore *datastore, const PercyServerParams *params, PercyStats *stats=NULL)
 Constructor. More...
 
virtual ~PercyServer_GF2E ()
 Destructor. More...
 
- Public Member Functions inherited from PercyServer
virtual ~PercyServer ()
 Destructor. More...
 
void be_byzantine ()
 Tell the server to be Byzantine. More...
 
void set_strassen_max_depth (nqueries_t depth)
 Set the strassen max level. More...
 
nqueries_t get_strassen_max_depth ()
 Get the strassen max level. More...
 
virtual bool handle_request (std::istream &is, std::ostream &os, const std::vector< std::iostream * > &workers=std::vector< std::iostream * >())
 Handle a request from a single client. More...
 
virtual bool handle_request (const std::vector< std::istream * > &isv, const std::vector< std::ostream * > &osv, const std::vector< std::iostream * > &workers=std::vector< std::iostream * >())
 Handle a request from a number of clients simultaneously. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from PercyServer
static PercyServermake_server (DataStore *datastore, const PercyServerParams *params, PercyStats *stats=NULL)
 Factory method called to get a server object for the given parameters. More...
 
- Static Public Attributes inherited from PercyServer
static const nqueries_t STRASSEN_OPTIMAL = -1
 Special strassen max level, when set to this value, the optimal strategy is used. More...
 
- Protected Member Functions inherited from PercyServer
virtual bool handle_request_distributed (const std::vector< unsigned char * > &requests, const std::vector< unsigned char * > &responses, const std::vector< std::iostream * > &workers)
 Implementation of handle_request() used for master servers. More...
 
virtual bool handle_request_threaded (const std::vector< unsigned char * > &requests, const std::vector< unsigned char * > &responses)
 Implementation of handle_request() to be used when using multithreading. More...
 
 PercyServer (DataStore *datastore, const PercyServerParams *serverparams, PercyStats *stats=NULL)
 Constructor. More...
 
- Protected Attributes inherited from PercyServer
bool byzantine
 Whether or not the server is Byzantine. More...
 
DataStoredatastore
 The database used by the server. More...
 
const PercyServerParamsserverparams
 The parameters for the server. More...
 
PercyStatsstats
 Statistics collection object. More...
 
nqueries_t strassen_max_depth
 Maximum depth allowed when using Strassen's matrix multiplication. More...
 
nqueries_t strassen_level_reached
 The strassen level reached in computation. More...
 
std::vector< PercyServer * > subservers
 When using multithreading, the server objects for the threads. More...
 

Detailed Description

template<typename GF2E_Element>
class PercyServer_GF2E< GF2E_Element >

A PIR server 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

Constructor & Destructor Documentation

PercyServer_GF2E ( DataStore datastore,
const PercyServerParams params,
PercyStats stats = NULL 
)

Constructor.

Parameters
datastoreDatabase the server will use.
paramsParameters for the server.
statsStatistics collection object. No statistics will be collected if NULL.
~PercyServer_GF2E ( )
virtual

Destructor.


The documentation for this class was generated from the following files: