/[pkg-mixmaster]/trunk/Mix/Src/mix3.h
ViewVC logotype

Diff of /trunk/Mix/Src/mix3.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 262 by rabbi, Wed Sep 18 23:26:17 2002 UTC revision 929 by colin, Wed Mar 8 09:25:18 2006 UTC
# Line 1  Line 1 
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
# Line 6  Line 6 
6     details.     details.
7    
8     Function prototypes     Function prototypes
9     $Id: mix3.h,v 1.16 2002/09/18 23:26:16 rabbi 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"
# Line 126  int write_pidfile(char *pidfile); Line 126  int write_pidfile(char *pidfile);
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    int download_stats(char *sourcename);
131    
132  typedef struct {  typedef struct {
133    char *name;    char *name;
# Line 207  int digestmem_md5(byte *b, int n, BUFFER Line 209  int digestmem_md5(byte *b, int n, BUFFER
209  int digest_sha1(BUFFER *b, BUFFER *md);  int digest_sha1(BUFFER *b, BUFFER *md);
210  int digest_rmd160(BUFFER *b, BUFFER *md);  int digest_rmd160(BUFFER *b, BUFFER *md);
211    
212    #define KEY_ID_LEN 32
213  int keymgt(int force);  int keymgt(int force);
214  int key(BUFFER *b);  int key(BUFFER *b);
215  int adminkey(BUFFER *b);  int adminkey(BUFFER *b);
# Line 237  int seckeytopub(BUFFER *pub, BUFFER *sec Line 240  int seckeytopub(BUFFER *pub, BUFFER *sec
240    
241  /* configuration, general remailer functions */  /* configuration, general remailer functions */
242  int mix_configline(char *line);  int mix_configline(char *line);
243    int mix_config(void);
244  int mix_initialized(void);  int mix_initialized(void);
245  int mix_daily(void);  int mix_daily(void);
246    
# Line 250  int mix_pool(BUFFER *msg, int type, long Line 254  int mix_pool(BUFFER *msg, int type, long
254  int pool_packetfile(char *fname, BUFFER *mid, int packetnum);  int pool_packetfile(char *fname, BUFFER *mid, int packetnum);
255  void pool_packetexp(void);  void pool_packetexp(void);
256  int idexp(void);  int idexp(void);
257    int pgpmaxexp(void);
258  void pop3get(void);  void pop3get(void);
259    
260  typedef struct {  /* added for binary id.log change */  typedef struct {  /* added for binary id.log change */
# Line 269  int stats_out(int); Line 274  int stats_out(int);
274  #define PGP_ARMOR_NYMSIG        4  #define PGP_ARMOR_NYMSIG        4
275  #define PGP_ARMOR_SECKEY        5  #define PGP_ARMOR_SECKEY        5
276    
277    #define PGP_TYPE_UNDEFINED      0
278    #define PGP_TYPE_PRIVATE        1
279    #define PGP_TYPE_PUBLIC         2
280    
281  int pgp_keymgt(int force);  int pgp_keymgt(int force);
282    int pgp_latestkeys(BUFFER* outtxt, int algo);
283  int pgp_armor(BUFFER *buf, int mode);  int pgp_armor(BUFFER *buf, int mode);
284  int pgp_dearmor(BUFFER *buf, BUFFER *out);  int pgp_dearmor(BUFFER *buf, BUFFER *out);
285  int pgp_pubkeycert(BUFFER *userid, char *keyring, BUFFER *pass,  int pgp_pubkeycert(BUFFER *userid, char *keyring, BUFFER *pass,
# Line 315  typedef struct { Line 325  typedef struct {
325    
326      unsigned int post:1;      unsigned int post:1;
327      unsigned int middle:1;      unsigned int middle:1;
328    
329        unsigned int star_ex:1;
330    } flags;    } flags;
331    struct rinfo {    struct rinfo {
332      int reliability;      int reliability;
# Line 326  typedef struct { Line 338  typedef struct {
338  #define CHAINMAX 421  #define CHAINMAX 421
339  #define MAXREM 100  #define MAXREM 100
340  int prepare_type2list(BUFFER *out);  int prepare_type2list(BUFFER *out);
341  int mix2_rlist(REMAILER remailer[]);  int mix2_rlist(REMAILER remailer[], int badchains[MAXREM][MAXREM]);
342  int t1_rlist(REMAILER remailer[]);  int t1_rlist(REMAILER remailer[], int badchains[MAXREM][MAXREM]);
343  int pgp_rlist(REMAILER remailer[], int n);  int pgp_rlist(REMAILER remailer[], int n);
344  int pgp_rkeylist(REMAILER remailer[], int keyid[], int n);  int pgp_rkeylist(REMAILER remailer[], int keyid[], int n);
345    void parse_badchains(int badchains[MAXREM][MAXREM], char *file, char *startindicator, REMAILER *remailer, int maxrem);
346  int chain_select(int hop[], char *chainstr, int maxrem, REMAILER *remailer,  int chain_select(int hop[], char *chainstr, int maxrem, REMAILER *remailer,
347                   int type, BUFFER *feedback);                   int type, BUFFER *feedback);
348  int chain_rand(REMAILER *remailer, int maxrem,  int chain_rand(REMAILER *remailer, int badchains[MAXREM][MAXREM], int maxrem,
349                 int thischain[], int chainlen, int t);                 int thischain[], int chainlen, int t, int ignore_constraints_if_necessary);
350  int chain_randfinal(int type, REMAILER *remailer, int maxrem, int t);  int chain_randfinal(int type, REMAILER *remailer, int badchains[MAXREM][MAXREM],
351                   int maxrem, int rtype, int chain[], int chainlen, int ignore_constraints_if_necessary);
352    
353  float chain_reliability(char *chain, int chaintype,  float chain_reliability(char *chain, int chaintype,
354                          char *reliability_string);                          char *reliability_string);
355    int redirect_message(BUFFER *sendmsg, char *chain, int numcopies, BUFFER *chainlist);
356  int mix2_encrypt(int type, BUFFER *message, char *chainstr, int numcopies,  int mix2_encrypt(int type, BUFFER *message, char *chainstr, int numcopies,
357                   BUFFER *feedback);                  int ignore_constraints_if_necessary, BUFFER *feedback);
358  int t1_encrypt(int type, BUFFER *message, char *chainstr, int latency,  int t1_encrypt(int type, BUFFER *message, char *chainstr, int latency,
359                 BUFFER *ek, BUFFER *feedback);                 BUFFER *ek, BUFFER *feedback);
360    
# Line 349  int t1_decrypt(BUFFER *in); Line 364  int t1_decrypt(BUFFER *in);
364  int t2_decrypt(BUFFER *in);  int t2_decrypt(BUFFER *in);
365    
366  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);  
367  int v2body(BUFFER *body);  int v2body(BUFFER *body);
368  int v2body_setlen(BUFFER *body);  int v2body_setlen(BUFFER *body);
369  int v2partial(BUFFER *body, BUFFER *mid, int packet, int numpackets);  int v2partial(BUFFER *body, BUFFER *mid, int packet, int numpackets);

Legend:
Removed from v.262  
changed lines
  Added in v.929

  ViewVC Help
Powered by ViewVC 1.1.5