QED has many internal types.

We have a QED context data type that holds the algorithm that is used. (This library
implements the "TYPE1" algorithm, and will
soon also implement "TYPE2".):

QED_CTX c; QED_TYPE TYPE1;

Data types for private and public keys:

QEDPrivateKey_t PrivKey; QEDPublicKey_t PubKey;

Abstraction of the HVE bit vector resulting from the raw data. An HVE_t maps data into vector of sectors that can be used to run conjunctive queries. It can be thought of as an array of sectors, each sector specifying one of the conjunctive queries:

HVE_t HVE;

Format for an HVE bit vector entry, specifying the type of query (comparison/subset/equality), the security level, and the set size:

HVE_FORMAT_t format;

Holds data for a single comparison/equality/subset query.

HVE_COMPARISON_t comp; HVE_EQUALITY_T equal; HVE_SUBSET_t sub;

Holds data for single element in a subset for a subset query.

HVE_SUBSET_DATA_t data;

Data type for Token:

QEDToken_t Token;

Data type for CipherText:

QEDEncryption_t CipherText;

Data type for MessageKey:

QEDMessageKey_t M;

GMP and PBC types may be used as well.