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, 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

◆ AUTH_ACCOUNT_OK

#define AUTH_ACCOUNT_OK   0x2

◆ AUTH_BLOCKED

#define AUTH_BLOCKED   0x80

◆ AUTH_CHALLENGE_SENT

#define AUTH_CHALLENGE_SENT   0x800

we have sent a challenge and not yet received the response

Referenced by CAAccountingInstance::handleAccountCertificate_internal(), and CAAccountingInstance::handleChallengeResponse_internal().

◆ AUTH_DATABASE

#define AUTH_DATABASE   0x40

A database error occured (internal or in the BI)

Referenced by CAAccountingInstance::handleCostConfirmation_internal(), and CAAccountingInstance::handleJapPacket_internal().

◆ AUTH_DELETE_ENTRY

#define AUTH_DELETE_ENTRY   0x80000

◆ AUTH_FAKE

#define AUTH_FAKE   0x400

◆ AUTH_FATAL_ERROR

#define AUTH_FATAL_ERROR   0x2000

◆ AUTH_GOT_ACCOUNTCERT

#define AUTH_GOT_ACCOUNTCERT   0x1

◆ AUTH_HARD_LIMIT_REACHED

#define AUTH_HARD_LIMIT_REACHED   0x200

◆ AUTH_INVALID_ACCOUNT

#define AUTH_INVALID_ACCOUNT   0x8000

◆ 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

Referenced by CAAccountingInstance::initTableEntry().

◆ AUTH_SENT_CC_REQUEST

#define AUTH_SENT_CC_REQUEST   0x20

◆ 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

◆ 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

Referenced by CAMuxSocket::receive().

◆ CHANNEL_TIMESTAMPS_DOWN

#define CHANNEL_TIMESTAMPS_DOWN   0x90

◆ CHANNEL_TIMESTAMPS_UP

#define CHANNEL_TIMESTAMPS_UP   0x60

◆ CONNECTION_ERROR_FLAG

#define CONNECTION_ERROR_FLAG   0x01

Referenced by CALastMixA::loop().

◆ DATA_SIZE

#define DATA_SIZE   992

◆ DO_PACKED

#define DO_PACKED   __attribute__ ((__packed__))

◆ GCM_MAC_SIZE

#define GCM_MAC_SIZE   16

Referenced by CALastMixA::loop().

◆ INTEGRITY_ERROR_FLAG

#define INTEGRITY_ERROR_FLAG   0x4000

Referenced by CALastMixA::loop().

◆ MIX_PAYLOAD_HTTP

#define MIX_PAYLOAD_HTTP   0

Referenced by CALocalProxy::loop().

◆ MIX_PAYLOAD_SOCKS

#define MIX_PAYLOAD_SOCKS   1

◆ MIX_PAYLOAD_VPN

#define MIX_PAYLOAD_VPN   2

Referenced by CALastMixA::loop().

◆ MIXPACKET_SIZE

#define MIXPACKET_SIZE   998

◆ NEW_FLOW_CONTROL_FLAG

#define NEW_FLOW_CONTROL_FLAG   0x8000

◆ PAYLOAD_HEADER_SIZE

#define PAYLOAD_HEADER_SIZE   3

Referenced by CALastMixA::loop().

◆ 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 
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

◆ @9

union { ... }

◆ __attribute__

struct t_downstream_chain_cell __attribute__

◆ channel

HCHANNEL channel

◆ data

UINT8 data

Referenced by CAHttpClient::setSocket().

◆ 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(), CASymCipher::crypt1(), CASymCipher::crypt2(), CABase64::decode(), decryptXMLElement(), CABase64::encode(), CACertStore::encode(), encodeXMLEncryptedKey(), filesize32(), fm_loopSendToMix(), CAHttpClient::getContent(), CACmdLnOptions::getCountryStatsDBConnectionLoginData(), getDOMElementAttribute(), CASocketAddrUnix::getPath(), CAASymCipher::getPublicKeyAsXML(), CASignature::getSignKey(), CASocketAddrINet::getSize(), CAMultiSignature::getSKI(), CAAccountingInstance::handleAccountCertificate_internal(), CAFirstMix::initMixParameters(), lm_loopSendToMix(), CALastMixA::loop(), CAFirstMixB::loop(), CALocalProxy::loop(), main(), mm_loopSendToMixAfter(), mm_loopSendToMixBefore(), parseS64(), parseU64(), CAAccountingInstance::prepareCCRequest(), print64(), CAReplayCtrlChannelMsgProc::proccessGotTimestamp(), CAMiddleMix::processKeyExchange(), CALastMix::processKeyExchange(), CAFirstMix::processKeyExchange(), CACmdLnOptions::processXmlConfiguration(), CACmdLnOptions::readXmlConfiguration(), CAMuxSocket::receive(), CACmdLnOptions::saveToFile(), CAHttpClient::sendGetRequest(), CAHttpClient::sendPostRequest(), CAFirstMixA::sendToUsers(), CACmdLnOptions::setAccountingDatabase(), CASymCipher::setIV2(), CACmdLnOptions::setLogDir(), CACmdLnOptions::setNextMix(), CACmdLnOptions::setPrevMix(), CAInfoService::setSerial(), CACertificate::setSubjectKeyIdentifier(), CACmdLnOptions::setTermsAndConditionsTemplates(), CAXMLErrorMessage::setValues(), CASignature::setVerifyKey(), showHelpIntro(), CASignature::signRSA(), CAMultiSignature::signXML(), singleOptionUsage(), CASignature::verifyDSA(), CAClientSocket::~CAClientSocket(), and CADatagramSocket::~CADatagramSocket().

◆ payload

struct t_MixPacketPayload payload

◆ type

UINT8 type