Percy++
A C++ implementation of Private Information Retrieval (PIR) protocols
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
Classes | Typedefs | Enumerations | Functions | Variables
percyparams.h File Reference

Defines the basic structure of protocol parameters (PercyParams), client parameters (PercyClientParams), and server parameters (PercyServerParams). More...

#include <iostream>
#include <vector>
#include <utility>
#include "version.h"
#include "percytypes.h"

Go to the source code of this file.

Classes

class  PercyParams
 An abstract base class for a protocol's parameters. More...
 
class  PercyClientParams
 Client parameters. More...
 
struct  serverinfo
 Information needed to connect to a server. More...
 
class  PercyServerParams
 Server parameters. More...
 

Typedefs

typedef std::pair< dbsize_t,
dbsize_t > 
Dimension
 A 2-dimensional coordinate. More...
 

Enumerations

enum  PercyMode {
  MODE_NONE = 0, MODE_ZZ_P, MODE_GF28, MODE_GF216,
  MODE_CHOR, MODE_AG, MODE_RECURSIVE_AG, MODE_HYBRID
}
 A PIR protocol. More...
 
enum  DistSplit { DIST_SPLIT_QUERIES, DIST_SPLIT_RECORDS, DIST_SPLIT_RECORD_BYTES }
 The method used to partition work between threads/workers. More...
 

Functions

std::ostream & operator<< (std::ostream &os, PercyMode mode)
 Prints a PercyMode string to a stream. More...
 
std::ostream & operator<< (std::ostream &os, DistSplit mode)
 Prints a DistSplit string to a stream. More...
 

Variables

const char * PercyModeStrings []
 Strings associated with PercyMode values. More...
 
const char * DistSplitStrings []
 Strings associated with DistSplit values. More...
 

Detailed Description

Defines the basic structure of protocol parameters (PercyParams), client parameters (PercyClientParams), and server parameters (PercyServerParams).

Typedef Documentation

typedef std::pair<dbsize_t, dbsize_t> Dimension

A 2-dimensional coordinate.

Enumeration Type Documentation

enum DistSplit

The method used to partition work between threads/workers.

Enumerator
DIST_SPLIT_QUERIES 

Partition the queries.

DIST_SPLIT_RECORDS 

Partition the database records.

DIST_SPLIT_RECORD_BYTES 

Partition the bytes of the records.

enum PercyMode

A PIR protocol.

Enumerator
MODE_ZZ_P 

Goldberg (2007) IT-PIR over the integers modulo p.

MODE_GF28 

Goldberg (2007) IT-PIR over GF(2^8).

MODE_GF216 

Goldberg (2007) IT-PIR over GF(2^16).

MODE_CHOR 

Chor et al. (1995) IT-PIR.

MODE_AG 

Aguilar Melchor and Gaborit (2007) CPIR.

MODE_RECURSIVE_AG 

Aguilar Melchor and Gaborit (2007) CPIR with recursion.

MODE_HYBRID 

Devet and Goldberg (2014) Hybrid PIR.

Function Documentation

std::ostream& operator<< ( std::ostream &  os,
PercyMode  mode 
)

Prints a PercyMode string to a stream.

std::ostream& operator<< ( std::ostream &  os,
DistSplit  mode 
)

Prints a DistSplit string to a stream.

Variable Documentation

const char* DistSplitStrings[]

Strings associated with DistSplit values.

const char* PercyModeStrings[]

Strings associated with PercyMode values.