#include <string.h>
#include <iostream>
Go to the source code of this file.
Compounds | |
class | dsBlockCypher |
class | dsCryptoBase |
class | dsCryptoHash |
class | dsCypher |
Defines | |
#define | dsCypher_SECTION |
Typedefs | |
typedef unsigned long | dsCypher_word32_t |
typedef unsigned short | dsCypher_word16_t |
typedef unsigned char | dsCypher_byte_t |
|
|
|
|
|
|
|
This is abstract base class for cypher algorithms included to libdms4 I'm not inteneded to repeat famouse work of Eric Young and openssl team. My goal is just to provide easy and convenient way to add encryption to your projects with minimum time and code overhead. All algorithms included into libdms was not writen from scratch, but lots of adaptation, portablility and cleanup work has done. It allow me to call it my own implementation. Original sources is always listed in header of apropriate include file. libdms4 crypto part include implementation of two most popular secure hash functions - md5 and sha1 and two symmetric cypher algorithms with different targeting: blowfish - fastest and most analised cypher, but with huge precompiled S_BOX table and significant key change cost. rc6 - one of five finalist of AES submission process, has minimal memory requirements with resonable speed. Stream oriented (OFB) mode provided for each cypher, - encryption algorithm used to provide stream of bytes and than original messages XOR'ed with this stream. This method of less secure than ususal block-by-block (CBC) operations but it allow easy encrypt/decrypt arbitrary length data, and still secure enough for most of real life projects. |