Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

dsRC4 Class Reference

#include <dsRC4.h>

Inheritance diagram for dsRC4:

dsCypher dsCryptoBase List of all members.

Public Types

enum  keyMode {
  kmNONE = 0, kmENCRYPT = 0x2, kmDECRYPT = 0x4, kmOFB = kmENCRYPT,
  kmBOTH = kmENCRYPT | kmDECRYPT
}

Public Methods

virtual void setKey (const dsCypher_byte_t *p_key, dsCypher_word32_t p_keyLen, keyMode km=dsCypher::kmBOTH) dsCypher_SECTION
virtual void XOR (dsCypher_byte_t *p_dest, const dsCypher_byte_t *p_src, dsCypher_word32_t p_srcLen, const dsCypher_byte_t *ivec) dsCypher_SECTION
 dsRC4 (const dsCypher_byte_t *p_key, dsCypher_word32_t p_keyLen)
 dsRC4 ()
bool ready ()

Public Attributes

keyMode _active_key_mode

Protected Methods

void memSet (dsCypher_byte_t *ptr, dsCypher_byte_t pattern, dsCypher_word32_t size)
void memCopy (dsCypher_byte_t *dest, const dsCypher_byte_t *src, dsCypher_word32_t size)
dsCypher_word32_t n2l (const dsCypher_byte_t *c)
dsCypher_word32_t n2le (const dsCypher_byte_t *c)
void l2n (dsCypher_word32_t l, dsCypher_byte_t *c)
void l2ne (dsCypher_word32_t l, dsCypher_byte_t *c)
void n_n2l (dsCypher_word32_t *dest, const dsCypher_byte_t *src, dsCypher_word32_t srcLen)
void n_n2le (dsCypher_word32_t *dest, const dsCypher_byte_t *src, dsCypher_word32_t srcLen)
void n_l2n (dsCypher_byte_t *dest, const dsCypher_word32_t *src, dsCypher_word32_t srcLen)
void n_l2ne (dsCypher_byte_t *dest, const dsCypher_word32_t *src, dsCypher_word32_t srcLen)
void n_xor (dsCypher_word32_t *dest, const dsCypher_word32_t *src, dsCypher_word32_t size)
dsCypher_word32_t rotl (dsCypher_word32_t x, dsCypher_word32_t n)
dsCypher_word32_t rotr (dsCypher_word32_t x, dsCypher_word32_t n)

Protected Attributes

dsCypher_word32_t _block_size

Detailed Description

This class is implementation of ARCFOUR (RC4) stream cypher

This code based on: Newsgroups: sci.crypt,alt.security,comp.security.misc,alt.privacy From: sterndark@netcom.com (David Sterndark) Date: Wed, 14 Sep 1994 06:35:31 GMT


Member Enumeration Documentation

enum dsCypher::keyMode [inherited]
 

Enumeration values:
kmNONE 
kmENCRYPT 
kmDECRYPT 
kmOFB 
kmBOTH 


Constructor & Destructor Documentation

dsRC4::dsRC4 const dsCypher_byte_t   p_key,
dsCypher_word32_t    p_keyLen
 

dsRC4::dsRC4  
 


Member Function Documentation

void dsCryptoBase::l2n dsCypher_word32_t    l,
dsCypher_byte_t   c
[inline, protected, inherited]
 

void dsCryptoBase::l2ne dsCypher_word32_t    l,
dsCypher_byte_t   c
[inline, protected, inherited]
 

void dsCryptoBase::memCopy dsCypher_byte_t   dest,
const dsCypher_byte_t   src,
dsCypher_word32_t    size
[inline, protected, inherited]
 

void dsCryptoBase::memSet dsCypher_byte_t   ptr,
dsCypher_byte_t    pattern,
dsCypher_word32_t    size
[inline, protected, inherited]
 

These routines placed here to allow developer to providei os specific implementation, it's not virtual because calling virtual function inside encryption algorithm dramatically decrease performance

dsCypher_word32_t dsCryptoBase::n2l const dsCypher_byte_t   c [inline, protected, inherited]
 

Byte sequence to Word32 and back conversion routines

dsCypher_word32_t dsCryptoBase::n2le const dsCypher_byte_t   c [inline, protected, inherited]
 

void dsCryptoBase::n_l2n dsCypher_byte_t   dest,
const dsCypher_word32_t   src,
dsCypher_word32_t    srcLen
[inline, protected, inherited]
 

void dsCryptoBase::n_l2ne dsCypher_byte_t   dest,
const dsCypher_word32_t   src,
dsCypher_word32_t    srcLen
[inline, protected, inherited]
 

void dsCryptoBase::n_n2l dsCypher_word32_t   dest,
const dsCypher_byte_t   src,
dsCypher_word32_t    srcLen
[inline, protected, inherited]
 

void dsCryptoBase::n_n2le dsCypher_word32_t   dest,
const dsCypher_byte_t   src,
dsCypher_word32_t    srcLen
[inline, protected, inherited]
 

void dsCryptoBase::n_xor dsCypher_word32_t   dest,
const dsCypher_word32_t   src,
dsCypher_word32_t    size
[inline, protected, inherited]
 

bool dsCypher::ready   [inline, inherited]
 

dsCypher_word32_t dsCryptoBase::rotl dsCypher_word32_t    x,
dsCypher_word32_t    n
[inline, protected, inherited]
 

dsCypher_word32_t dsCryptoBase::rotr dsCypher_word32_t    x,
dsCypher_word32_t    n
[inline, protected, inherited]
 

virtual void dsRC4::setKey const dsCypher_byte_t   p_key,
dsCypher_word32_t    p_keyLen,
keyMode    km = dsCypher::kmBOTH
[virtual]
 

Initialise algorithm, set encryption/decryption key It's signigficant to allow developer encrypt/decrypt message using single call of setKey, - so all siginificant data should remain unchanged on cryptoXOR call

Implements dsCypher.

virtual void dsRC4::XOR dsCypher_byte_t   p_dest,
const dsCypher_byte_t   p_src,
dsCypher_word32_t    p_srcLen,
const dsCypher_byte_t   ivec
[virtual]
 


Member Data Documentation

keyMode dsCypher::_active_key_mode [inherited]
 

dsCypher_word32_t dsCypher::_block_size [protected, inherited]
 


The documentation for this class was generated from the following file:
Generated on Mon May 16 18:27:00 2005 for libdms4 by doxygen1.3-rc2