| 1 |
/* Mixmaster version 3 -- (C) 1999 Anonymizer Inc. |
/* Mixmaster version 3.0 -- (C) 1999 - 2004 Anonymizer Inc. and others. |
| 2 |
|
|
| 3 |
Mixmaster may be redistributed and modified under certain conditions. |
Mixmaster may be redistributed and modified under certain conditions. |
| 4 |
This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF |
This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF |
| 6 |
details. |
details. |
| 7 |
|
|
| 8 |
Function prototypes |
Function prototypes |
| 9 |
$Id: mix3.h,v 1.23 2003/05/05 11:03:41 weaselp Exp $ */ |
$Id$ */ |
| 10 |
|
|
| 11 |
|
|
| 12 |
#ifndef _MIX3_H |
#ifndef _MIX3_H |
| 13 |
#define _MIX3_H |
#define _MIX3_H |
| 14 |
#define COPYRIGHT "Copyright Anonymizer Inc." |
#define COPYRIGHT "Copyright Anonymizer Inc. et al." |
| 15 |
|
|
| 16 |
#include "config.h" |
#include "config.h" |
| 17 |
#include "mix.h" |
#include "mix.h" |
| 126 |
int clear_pidfile(char *pidfile); |
int clear_pidfile(char *pidfile); |
| 127 |
time_t parse_yearmonthday(char* str); |
time_t parse_yearmonthday(char* str); |
| 128 |
|
|
| 129 |
|
int url_download(char* url, char* dest); |
| 130 |
|
void read_allpingers(BUFFER *allpingers); |
| 131 |
|
int good_stats_source (BUFFER *allpingers, char *sourcename); |
| 132 |
|
int stats_download(BUFFER *allpingers, char *sourcename, int curses); |
| 133 |
|
|
| 134 |
typedef struct { |
typedef struct { |
| 135 |
char *name; |
char *name; |
| 347 |
int chain_select(int hop[], char *chainstr, int maxrem, REMAILER *remailer, |
int chain_select(int hop[], char *chainstr, int maxrem, REMAILER *remailer, |
| 348 |
int type, BUFFER *feedback); |
int type, BUFFER *feedback); |
| 349 |
int chain_rand(REMAILER *remailer, int badchains[MAXREM][MAXREM], int maxrem, |
int chain_rand(REMAILER *remailer, int badchains[MAXREM][MAXREM], int maxrem, |
| 350 |
int thischain[], int chainlen, int t); |
int thischain[], int chainlen, int t, int ignore_constraints_if_necessary); |
| 351 |
int chain_randfinal(int type, REMAILER *remailer, int badchains[MAXREM][MAXREM], int maxrem, int rtype, int chain[], int chainlen); |
int chain_randfinal(int type, REMAILER *remailer, int badchains[MAXREM][MAXREM], |
| 352 |
|
int maxrem, int rtype, int chain[], int chainlen, int ignore_constraints_if_necessary); |
| 353 |
|
|
| 354 |
float chain_reliability(char *chain, int chaintype, |
float chain_reliability(char *chain, int chaintype, |
| 355 |
char *reliability_string); |
char *reliability_string); |
| 356 |
|
int redirect_message(BUFFER *sendmsg, char *chain, int numcopies, BUFFER *chainlist); |
| 357 |
int mix2_encrypt(int type, BUFFER *message, char *chainstr, int numcopies, |
int mix2_encrypt(int type, BUFFER *message, char *chainstr, int numcopies, |
| 358 |
BUFFER *feedback); |
int ignore_constraints_if_necessary, BUFFER *feedback); |
| 359 |
int t1_encrypt(int type, BUFFER *message, char *chainstr, int latency, |
int t1_encrypt(int type, BUFFER *message, char *chainstr, int latency, |
| 360 |
BUFFER *ek, BUFFER *feedback); |
BUFFER *ek, BUFFER *feedback); |
| 361 |
|
|
| 365 |
int t2_decrypt(BUFFER *in); |
int t2_decrypt(BUFFER *in); |
| 366 |
|
|
| 367 |
int mix2_decrypt(BUFFER *m); |
int mix2_decrypt(BUFFER *m); |
|
int mix3_decrypt(BUFFER *m); |
|
|
|
|
|
/* type 2 */ |
|
|
#define MAGIC0 0 |
|
|
#define MAGIC1 3 |
|
|
|
|
|
int v3_magic(byte *b); |
|
| 368 |
int v2body(BUFFER *body); |
int v2body(BUFFER *body); |
| 369 |
int v2body_setlen(BUFFER *body); |
int v2body_setlen(BUFFER *body); |
| 370 |
int v2partial(BUFFER *body, BUFFER *mid, int packet, int numpackets); |
int v2partial(BUFFER *body, BUFFER *mid, int packet, int numpackets); |