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
PercyAGServer Class Reference

A PIR server for the CPIR protocol by Aguilar Melchor and Gaborit (2007). More...

#include <agserver.h>

Inheritance diagram for PercyAGServer:
PercyServer

Public Member Functions

 PercyAGServer (DataStore *datastore, const PercyServerParams *params, PercyStats *stats=NULL)
 Constructor. More...
 
virtual ~PercyAGServer ()
 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

A PIR server for the CPIR protocol by Aguilar Melchor and Gaborit (2007).

This protocol was introduced in A Lattice-Based Computationally-Efficient Private Information Retrieval Protocol and revisited in HighSpeed Private Information Retrieval Computation on GPU.

Constructor & Destructor Documentation

PercyAGServer ( 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.
virtual ~PercyAGServer ( )
virtual

Destructor.


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