Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

Anon.h File Reference

#include <vector>
#include <set>
#include <map>
#include "net_util.h"

Include dependency graph for Anon.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Classes

class  AnonymizeIPAddr
class  AnonymizeIPAddr_A50
struct  AnonymizeIPAddr_A50::Node
class  AnonymizeIPAddr_PrefixMD5
struct  AnonymizeIPAddr_PrefixMD5::anon_prefix
class  AnonymizeIPAddr_RandomMD5
class  AnonymizeIPAddr_Seq

Defines

#define LOG_ANONYMIZATION_MAPPING

Typedefs

typedef uint32 ipaddr32_t

Enumerations

enum  ip_addr_anonymization_class_t { ORIG_ADDR, RESP_ADDR, OTHER_ADDR, NUM_ADDR_ANONYMIZATION_CLASSES }
enum  ip_addr_anonymization_method_t {
  KEEP_ORIG_ADDR, SEQUENTIALLY_NUMBERED, RANDOM_MD5, PREFIX_PRESERVING_A50,
  PREFIX_PRESERVING_MD5, NUM_ADDR_ANONYMIZATION_METHODS
}

Functions

void init_ip_addr_anonymizers ()
ipaddr32_t anonymize_ip (ipaddr32_t ip, enum ip_addr_anonymization_class_t cl)
void log_anonymization_mapping (ipaddr32_t input, ipaddr32_t output)

Variables

AnonymizeIPAddrip_anonymizer [NUM_ADDR_ANONYMIZATION_METHODS]


Define Documentation

#define LOG_ANONYMIZATION_MAPPING
 

Definition at line 138 of file Anon.h.


Typedef Documentation

typedef uint32 ipaddr32_t
 

Definition at line 41 of file Anon.h.

Referenced by AnonymizeIPAddr_A50::anonymize(), AnonymizeIPAddr_PrefixMD5::anonymize(), AnonymizeIPAddr_RandomMD5::anonymize(), AnonymizeIPAddr_Seq::anonymize(), AnonymizeIPAddr::Anonymize(), anonymize_ip(), TCP_Rewriter::DumpPacket(), AnonymizeIPAddr_A50::find_node(), TCP_TracePacket::Finish(), log_anonymization_mapping(), AnonymizeIPAddr_A50::make_output(), AnonymizeIPAddr_A50::make_peer(), AnonymizeIPAddr::PreserveNet(), and AnonymizeIPAddr_A50::PreservePrefix().


Enumeration Type Documentation

enum ip_addr_anonymization_class_t
 

Enumeration values:
ORIG_ADDR 
RESP_ADDR 
OTHER_ADDR 
NUM_ADDR_ANONYMIZATION_CLASSES 

Definition at line 25 of file Anon.h.

00025                                    {
00026         ORIG_ADDR,      // client address
00027         RESP_ADDR,      // server address
00028         OTHER_ADDR,
00029         NUM_ADDR_ANONYMIZATION_CLASSES,
00030 };

enum ip_addr_anonymization_method_t
 

Enumeration values:
KEEP_ORIG_ADDR 
SEQUENTIALLY_NUMBERED 
RANDOM_MD5 
PREFIX_PRESERVING_A50 
PREFIX_PRESERVING_MD5 
NUM_ADDR_ANONYMIZATION_METHODS 

Definition at line 32 of file Anon.h.


Function Documentation

ipaddr32_t anonymize_ip ipaddr32_t  ip,
enum ip_addr_anonymization_class_t  cl
 

Definition at line 343 of file Anon.cc.

References addr, AnonymizeIPAddr::Anonymize(), internal_error(), ip_anonymizer, ipaddr32_t, KEEP_ORIG_ADDR, log_anonymization_mapping(), TableVal::Lookup(), NUM_ADDR_ANONYMIZATION_METHODS, ORIG_ADDR, orig_addr_anonymization, other_addr_anonymization, preserve_orig_addr, preserve_other_addr, preserve_resp_addr, RESP_ADDR, and resp_addr_anonymization.

Referenced by TCP_Rewriter::TCP_Rewriter().

00344         {
00345         TableVal* preserve_addr = 0;
00346         AddrVal addr(ip);
00347 
00348         int method = -1;
00349 
00350         switch ( cl ) {
00351         case ORIG_ADDR: // client address
00352                 preserve_addr = preserve_orig_addr;
00353                 method = orig_addr_anonymization;
00354                 break;
00355 
00356         case RESP_ADDR: // server address
00357                 preserve_addr = preserve_resp_addr;
00358                 method = resp_addr_anonymization;
00359                 break;
00360 
00361         default:
00362                 preserve_addr = preserve_other_addr;
00363                 method = other_addr_anonymization;
00364                 break;
00365         }
00366 
00367         ipaddr32_t new_ip = 0;
00368                 
00369         if ( preserve_addr && preserve_addr->Lookup(&addr) )
00370                 new_ip = ip;
00371 
00372         else if ( method >= 0 && method < NUM_ADDR_ANONYMIZATION_METHODS )
00373                 {
00374                 if ( method == KEEP_ORIG_ADDR ) 
00375                         new_ip = ip;
00376 
00377                 else if ( ! ip_anonymizer[method] )
00378                         internal_error("IP anonymizer not initialized");
00379 
00380                 else
00381                         new_ip = ip_anonymizer[method]->Anonymize(ip);
00382                 }
00383 
00384         else
00385                 internal_error("invalid IP anonymization method");
00386 
00387 #ifdef LOG_ANONYMIZATION_MAPPING
00388         log_anonymization_mapping(ip, new_ip);
00389 #endif
00390         return new_ip;
00391         }

void init_ip_addr_anonymizers  ) 
 

Definition at line 334 of file Anon.cc.

References ip_anonymizer, KEEP_ORIG_ADDR, PREFIX_PRESERVING_A50, PREFIX_PRESERVING_MD5, RANDOM_MD5, and SEQUENTIALLY_NUMBERED.

Referenced by net_init().

void log_anonymization_mapping ipaddr32_t  input,
ipaddr32_t  output
 

Definition at line 398 of file Anon.cc.

References ipaddr32_t, mgr, and EventMgr::QueueEvent().

Referenced by anonymize_ip().

00399         {
00400         if ( anonymization_mapping )
00401                 {
00402                 val_list* vl = new val_list;
00403                 vl->append(new AddrVal(input));
00404                 vl->append(new AddrVal(output));
00405                 mgr.QueueEvent(anonymization_mapping, vl);
00406                 }
00407         }


Variable Documentation

AnonymizeIPAddr* ip_anonymizer[NUM_ADDR_ANONYMIZATION_METHODS]
 

Definition at line 133 of file Anon.h.

Referenced by anonymize_ip(), init_ip_addr_anonymizers(), net_delete(), and net_init().


Generated on Wed Sep 14 02:57:03 2005 for bro_docs by doxygen 1.3.5