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

AnonymizeIPAddr_PrefixMD5 Class Reference

#include <Anon.h>

Inheritance diagram for AnonymizeIPAddr_PrefixMD5:

Inheritance graph
[legend]
Collaboration diagram for AnonymizeIPAddr_PrefixMD5:

Collaboration graph
[legend]
List of all members.

Public Member Functions

ipaddr32_t anonymize (ipaddr32_t addr)

Protected Attributes

AnonymizeIPAddr_PrefixMD5::anon_prefix prefix

Member Function Documentation

ipaddr32_t AnonymizeIPAddr_PrefixMD5::anonymize ipaddr32_t  addr  )  [virtual]
 

Implements AnonymizeIPAddr.

Definition at line 102 of file Anon.cc.

References hmac_md5(), ipaddr32_t, AnonymizeIPAddr_PrefixMD5::anon_prefix::len, AnonymizeIPAddr_PrefixMD5::anon_prefix::prefix, prefix, and uint8.

00103         {
00104         uint8 digest[16];
00105         ipaddr32_t prefix_mask = 0xffffffff;
00106         ipaddr32_t output = input;
00107 
00108         for ( int i = 0; i < 32; ++i )
00109                 {
00110                 prefix.len = 32 - i;
00111                 prefix.prefix = input & prefix_mask;
00112 
00113                 hmac_md5(sizeof(prefix), (u_char*)(&prefix), digest);
00114 
00115                 ipaddr32_t bit_mask = (digest[0] & 1) << i;
00116                 output ^= bit_mask;
00117                 }
00118 
00119         return output;
00120         }


Member Data Documentation

struct AnonymizeIPAddr_PrefixMD5::anon_prefix AnonymizeIPAddr_PrefixMD5::prefix [protected]
 

Referenced by anonymize().


The documentation for this class was generated from the following files:
Generated on Wed Sep 14 03:07:36 2005 for bro_docs by doxygen 1.3.5