Mixes for Privacy and Anonymity in the Internet
Classes | Macros | Typedefs | Enumerations | Functions | Variables
typedefs.hpp File Reference

Classes

struct  t_MixPacketPayload
 
struct  t_MixPacket
 
struct  t_queue_entry
 
struct  t_replay_timestamp
 the Replaytimestamp type More...
 
struct  t_mix_parameters
 
struct  t_accountinginfo
 Structure that holds all per-user payment information Included in CAFirstMixChannelList (struct fmHashTableEntry) More...
 

Macros

#define MIX_PAYLOAD_HTTP   0
 
#define MIX_PAYLOAD_SOCKS   1
 
#define MIX_PAYLOAD_VPN   2
 
#define MIXPACKET_SIZE   998
 
#define CHANNEL_DATA   0x00
 
#define CHANNEL_OPEN   0x08
 
#define CHANNEL_TIMESTAMPS_UP   0x60
 
#define CHANNEL_TIMESTAMPS_DOWN   0x90
 
#define CHANNEL_CLOSE   0x01
 
#define CHANNEL_DUMMY   0x10
 
#define CHANNEL_DEBUG   0x20
 
#define CHANNEL_SIG_CRIME   0x0
 
#define CHANNEL_SIG_CRIME_ID_MASK   0x0
 
#define CHANNEL_ALLOWED_FLAGS   (CHANNEL_OPEN|CHANNEL_CLOSE|CHANNEL_TIMESTAMPS_UP|CHANNEL_TIMESTAMPS_DOWN)
 
#define NEW_FLOW_CONTROL_FLAG   0x8000
 
#define INTEGRITY_ERROR_FLAG   0x4000
 
#define CONNECTION_ERROR_FLAG   0x01
 
#define DATA_SIZE   992
 
#define PAYLOAD_SIZE   989
 
#define PAYLOAD_HEADER_SIZE   3
 
#define GCM_MAC_SIZE   16
 
#define PAYLOAD_LEN_MASK   0x03FF;
 
#define DO_PACKED   __attribute__ ((__packed__))
 
#define AUTH_NEW   0x0
 These flags are used to represent the state of the payment. More...
 
#define AUTH_GOT_ACCOUNTCERT   0x1
 user has sent an account certificate More...
 
#define AUTH_ACCOUNT_OK   0x2
 format and signature of all received certificates was OK More...
 
#define AUTH_WAITING_FOR_FIRST_SETTLED_CC   0x4
 First CC from client has not been settled yet. More...
 
#define AUTH_SENT_CC_REQUEST   0x20
 we have sent one or two CC requests More...
 
#define AUTH_DATABASE   0x40
 A database error occured (internal or in the BI) More...
 
#define AUTH_BLOCKED   0x80
 Account has been blocked temporarly. More...
 
#define AUTH_SENT_ACCOUNT_REQUEST   0x100
 we have sent one request for an accountcertificate More...
 
#define AUTH_HARD_LIMIT_REACHED   0x200
 
#define AUTH_FAKE   0x400
 the user tried to fake something More...
 
#define AUTH_CHALLENGE_SENT   0x800
 we have sent a challenge and not yet received the response More...
 
#define AUTH_ACCOUNT_EMPTY   0x1000
 the account is empty More...
 
#define AUTH_FATAL_ERROR   0x2000
 a fatal error occured earlier More...
 
#define AUTH_OUTDATED_CC   0x4000
 
#define AUTH_INVALID_ACCOUNT   0x8000
 Account does not exist. More...
 
#define AUTH_TIMEOUT_STARTED   0x10000
 
#define AUTH_MULTIPLE_LOGIN   0x20000
 
#define AUTH_UNKNOWN   0x40000
 
#define AUTH_SETTLED_ONCE   0x80000
 
#define AUTH_DELETE_ENTRY   0x80000
 
#define AUTH_LOGIN_NOT_FINISHED   0x100000
 
#define AUTH_LOGIN_FAILED   0x200000
 
#define AUTH_LOGIN_SKIP_SETTLEMENT   0x400000
 

Typedefs

typedef UINT32 HCHANNEL
 
typedef t_MixPacket MIXPACKET
 
typedef struct t_queue_entry tQueueEntry
 
typedef tQueueEntry tPoolEntry
 
typedef struct t_replay_timestamp tReplayTimestamp
 
typedef struct t_mix_parameters tMixParameters
 
typedef struct t_accountinginfo tAiAccountingInfo
 

Enumerations

enum  NetworkType {
  UNKNOWN_NETWORKTYPE , RAW_TCP , RAW_UNIX , RAW_UDP ,
  SSL_TCP , SSL_UNIX , HTTP_TCP
}
 
enum  TargetType {
  TARGET_UNKNOWN , TARGET_MIX , TARGET_HTTP_PROXY , TARGET_SOCKS_PROXY ,
  TARGET_VPN_PROXY
}
 

Functions

struct t_MixPacketPayload __attribute__ ((__packed__))
 

Variables

UINT16 len
 
UINT8 type
 
UINT8 data [PAYLOAD_SIZE]
 
HCHANNEL channel
 
UINT16 flags
 
union {
   UINT8   data [DATA_SIZE]
 
   struct t_MixPacketPayload   payload
 
}; 
 
struct t_queue_entry __attribute__
 

Macro Definition Documentation

◆ AUTH_ACCOUNT_EMPTY

#define AUTH_ACCOUNT_EMPTY   0x1000

the account is empty

◆ AUTH_ACCOUNT_OK

#define AUTH_ACCOUNT_OK   0x2

format and signature of all received certificates was OK

◆ AUTH_BLOCKED

#define AUTH_BLOCKED   0x80

Account has been blocked temporarly.

◆ AUTH_CHALLENGE_SENT

#define AUTH_CHALLENGE_SENT   0x800

we have sent a challenge and not yet received the response

◆ AUTH_DATABASE

#define AUTH_DATABASE   0x40

A database error occured (internal or in the BI)

◆ AUTH_DELETE_ENTRY

#define AUTH_DELETE_ENTRY   0x80000

◆ AUTH_FAKE

#define AUTH_FAKE   0x400

the user tried to fake something

◆ AUTH_FATAL_ERROR

#define AUTH_FATAL_ERROR   0x2000

a fatal error occured earlier

◆ AUTH_GOT_ACCOUNTCERT

#define AUTH_GOT_ACCOUNTCERT   0x1

user has sent an account certificate

◆ AUTH_HARD_LIMIT_REACHED

#define AUTH_HARD_LIMIT_REACHED   0x200

◆ AUTH_INVALID_ACCOUNT

#define AUTH_INVALID_ACCOUNT   0x8000

Account does not exist.

◆ AUTH_LOGIN_FAILED

#define AUTH_LOGIN_FAILED   0x200000

◆ AUTH_LOGIN_NOT_FINISHED

#define AUTH_LOGIN_NOT_FINISHED   0x100000

◆ AUTH_LOGIN_SKIP_SETTLEMENT

#define AUTH_LOGIN_SKIP_SETTLEMENT   0x400000

◆ AUTH_MULTIPLE_LOGIN

#define AUTH_MULTIPLE_LOGIN   0x20000

◆ AUTH_NEW

#define AUTH_NEW   0x0

These flags are used to represent the state of the payment.

new user, not yet authenticated

◆ AUTH_OUTDATED_CC

#define AUTH_OUTDATED_CC   0x4000

◆ AUTH_SENT_ACCOUNT_REQUEST

#define AUTH_SENT_ACCOUNT_REQUEST   0x100

we have sent one request for an accountcertificate

◆ AUTH_SENT_CC_REQUEST

#define AUTH_SENT_CC_REQUEST   0x20

we have sent one or two CC requests

◆ AUTH_SETTLED_ONCE

#define AUTH_SETTLED_ONCE   0x80000

◆ AUTH_TIMEOUT_STARTED

#define AUTH_TIMEOUT_STARTED   0x10000

◆ AUTH_UNKNOWN

#define AUTH_UNKNOWN   0x40000

◆ AUTH_WAITING_FOR_FIRST_SETTLED_CC

#define AUTH_WAITING_FOR_FIRST_SETTLED_CC   0x4

First CC from client has not been settled yet.

◆ CHANNEL_ALLOWED_FLAGS

◆ CHANNEL_CLOSE

#define CHANNEL_CLOSE   0x01

◆ CHANNEL_DATA

#define CHANNEL_DATA   0x00

◆ CHANNEL_DEBUG

#define CHANNEL_DEBUG   0x20

◆ CHANNEL_DUMMY

#define CHANNEL_DUMMY   0x10

◆ CHANNEL_OPEN

#define CHANNEL_OPEN   0x08

◆ CHANNEL_SIG_CRIME

#define CHANNEL_SIG_CRIME   0x0

◆ CHANNEL_SIG_CRIME_ID_MASK

#define CHANNEL_SIG_CRIME_ID_MASK   0x0

◆ CHANNEL_TIMESTAMPS_DOWN

#define CHANNEL_TIMESTAMPS_DOWN   0x90

◆ CHANNEL_TIMESTAMPS_UP

#define CHANNEL_TIMESTAMPS_UP   0x60

◆ CONNECTION_ERROR_FLAG

#define CONNECTION_ERROR_FLAG   0x01

◆ DATA_SIZE

#define DATA_SIZE   992

◆ DO_PACKED

#define DO_PACKED   __attribute__ ((__packed__))

◆ GCM_MAC_SIZE

#define GCM_MAC_SIZE   16

◆ INTEGRITY_ERROR_FLAG

#define INTEGRITY_ERROR_FLAG   0x4000

◆ MIX_PAYLOAD_HTTP

#define MIX_PAYLOAD_HTTP   0

◆ MIX_PAYLOAD_SOCKS

#define MIX_PAYLOAD_SOCKS   1

◆ MIX_PAYLOAD_VPN

#define MIX_PAYLOAD_VPN   2

◆ MIXPACKET_SIZE

#define MIXPACKET_SIZE   998

◆ NEW_FLOW_CONTROL_FLAG

#define NEW_FLOW_CONTROL_FLAG   0x8000

◆ PAYLOAD_HEADER_SIZE

#define PAYLOAD_HEADER_SIZE   3

◆ PAYLOAD_LEN_MASK

#define PAYLOAD_LEN_MASK   0x03FF;

◆ PAYLOAD_SIZE

#define PAYLOAD_SIZE   989

Typedef Documentation

◆ HCHANNEL

typedef UINT32 HCHANNEL

◆ MIXPACKET

◆ tAiAccountingInfo

◆ tMixParameters

◆ tPoolEntry

◆ tQueueEntry

typedef struct t_queue_entry tQueueEntry

◆ tReplayTimestamp

Enumeration Type Documentation

◆ NetworkType

Enumerator
UNKNOWN_NETWORKTYPE 
RAW_TCP 
RAW_UNIX 
RAW_UDP 
SSL_TCP 
SSL_UNIX 
HTTP_TCP 

◆ TargetType

enum TargetType
Enumerator
TARGET_UNKNOWN 
TARGET_MIX 
TARGET_HTTP_PROXY 
TARGET_SOCKS_PROXY 
TARGET_VPN_PROXY 

Function Documentation

◆ __attribute__()

struct t_MixPacketPayload __attribute__ ( (__packed__)  )

Variable Documentation

◆ 

union { ... }

◆ __attribute__

struct t_downstream_chain_cell __attribute__

◆ channel

HCHANNEL channel

◆ data

UINT8 data

◆ flags

UINT16 flags

◆ len

UINT16 len

Referenced by CAAccountingDBInterface::__storeAccountStatus(), CAAccountingDBInterface::__storeCostConfirmation(), CAAccountingDBInterface::__storePrepaidAmount(), CACmdLnOptions::addVisibleAddresses(), CACmdLnOptions::buildDefaultConfig(), bytes2hex(), CAThread::CAThread(), CAMix::checkCompatibility(), CASocket::connect(), CASymCipherCTR::crypt1(), CASymCipherNull::crypt1(), CASymCipherOFB::crypt1(), CASymCipherCTR::crypt2(), CASymCipherNull::crypt2(), CASymCipherOFB::crypt2(), CABase64::decode(), CASymCipher::decryptCBCwithPKCS7(), CAASymCipher::decryptOAEP(), decryptXMLElement(), CABase64::encode(), CACertStore::encode(), encodeXMLEncryptedKey(), CASymCipher::encryptCBCwithPKCS7(), CAASymCipher::encryptOAEP(), CAASymCipher::encryptPKCS1(), CACmdLnOptions::getAiID(), CACmdLnOptions::getCascadeName(), CAHttpClient::getContent(), CACmdLnOptions::getCredential(), CACmdLnOptions::getDatabaseHost(), CACmdLnOptions::getDatabaseName(), CACmdLnOptions::getDatabasePassword(), CACmdLnOptions::getDatabaseUsername(), getDOMElementAttribute(), CACmdLnOptions::getEncryptedLogDir(), CASocketAddrINet::getHostName(), CASocketAddrINet::getIPAsStr(), CASocketAddrINet::getLocalHostName(), CACmdLnOptions::getLogDir(), CACmdLnOptions::getMixHost(), CACmdLnOptions::getMixId(), CASocketAddrUnix::getPath(), CACmdLnOptions::getPidFile(), CAASymCipher::getPublicKeyAsXML(), getRandom(), CASignature::getSignKey(), CAMultiSignature::getSKI(), CACmdLnOptions::getSOCKSHost(), CAInfoService::getStatusXMLAsString(), CACmdLnOptions::getUser(), CASignature::getVerifyKeyHash(), CACmdLnOptions::getVisibleAddress(), CAAccountingInstance::handleAccountCertificate_internal(), CAFirstMix::initMixParameters(), CALocalProxy::loop(), CALastMixA::loop(), CAFirstMixB::loop(), main(), parseDOMDocument(), parseS64(), CASignature::parseSignKeyXML(), parseU64(), CASocket::peek(), CAAccountingInstance::prepareCCRequest(), CAReplayCtrlChannelMsgProc::proccessGotTimestamp(), CALastMix::processKeyExchange(), CAMiddleMix::processKeyExchange(), CALocalProxy::processKeyExchange(), CACmdLnOptions::processXmlConfiguration(), readPasswd(), CACmdLnOptions::readXmlConfiguration(), CAMuxSocket::receive(), CASocket::receive(), CATLSClientSocket::receive(), CADatagramSocket::receive(), CAClientSocket::receiveFully(), CAMuxSocket::receiveFully(), CASocket::receiveFullyT(), CACmdLnOptions::saveToFile(), CASocket::send(), CATLSClientSocket::send(), CADatagramSocket::send(), CAInfoService::sendCascadeHelo(), CASocket::sendFully(), CATLSClientSocket::sendFully(), CASocket::sendFullyTimeOut(), CAHttpClient::sendGetRequest(), CAInfoService::sendMixHelo(), CAHttpClient::sendPostRequest(), CAInfoService::sendStatus(), CASocket::sendTimeOut(), CAFirstMixA::sendToUsers(), CACmdLnOptions::setAccountingDatabase(), CACmdLnOptions::setLogDir(), CACmdLnOptions::setPrevMix(), CAASymCipher::setPublicKeyAsXML(), CASignature::setSignKey(), CACertificate::setSubjectKeyIdentifier(), CACmdLnOptions::setTermsAndConditionsTemplates(), CAXMLErrorMessage::setValues(), CASignature::setVerifyKey(), showHelpIntro(), CAMultiSignature::signXML(), and singleOptionUsage().

◆ payload

struct t_MixPacketPayload payload

◆ type

UINT8 type