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

dsCypher Class Reference

#include <dsCypher.h>

Inheritance diagram for dsCypher:

dsCryptoBase dsBlockCypher dsRC4 dsAES dsBlowfish dsDES dsRC6 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)=0
bool ready ()
 dsCypher ()

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

Member Enumeration Documentation

enum dsCypher::keyMode
 

Enumeration values:
kmNONE 
kmENCRYPT 
kmDECRYPT 
kmOFB 
kmBOTH 


Constructor & Destructor Documentation

dsCypher::dsCypher   [inline]
 


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]
 

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 dsCypher::setKey const dsCypher_byte_t   p_key,
dsCypher_word32_t    p_keyLen,
keyMode    km
[pure 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

Implemented in dsAES, dsBlowfish, dsDES, dsRC4, and dsRC6.


Member Data Documentation

keyMode dsCypher::_active_key_mode
 

dsCypher_word32_t dsCypher::_block_size [protected]
 


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