Main Page | Class Hierarchy | Class List | Directories | File List | Class Members

DdtCipher.h

00001 /* hey emacs! -*- Mode: C++; c-file-style: "stroustrup"; indent-tabs-mode: nil -*- */
00002 /*
00003  * $Id: DdtCipher.h,v 1.1 2001/11/24 21:26:16 benoit Exp $
00004  *
00005  * Copyright (c) 2001 Benoit Joly <benoit@dhis.net>
00006  *
00007  * DDT comes with ABSOLUTELY NO WARRANTY and is licenced under the
00008  * GNU General Public License (version 2 or later). This license
00009  * can be retrieved from http://www.gnu.org/copyleft/gnu.html.
00010  *
00011  */
00012 
00013 #ifndef DDTCIPHER_H
00014 #define DDTCIPHER_H
00015 
00016 
00017 #ifdef HAVE_CONFIG_H
00018 #include "config.h"
00019 #endif
00020 
00021 extern "C"
00022 {
00023 #include <stddef.h>
00024 #include <gcrypt.h>
00025 }
00026 
00027 #include "Logger.h"
00028 
00029 class DdtCipher
00030 {
00031 public:
00032     enum CipherAlgos
00033     {
00034         ALGO_NONE = GCRY_CIPHER_NONE,
00035         ALGO_IDEA = GCRY_CIPHER_IDEA,
00036         ALGO_3DES = GCRY_CIPHER_3DES,
00037         ALGO_CAST5 = GCRY_CIPHER_CAST5,
00038         ALGO_BLOWFISH = GCRY_CIPHER_BLOWFISH,
00039         ALGO_ROT13 = 666
00040     };
00041 
00042     enum CipherModes
00043     {
00044         MODE_NONE = GCRY_CIPHER_MODE_NONE,
00045         MODE_ECB = GCRY_CIPHER_MODE_ECB,
00046         MODE_CFB = GCRY_CIPHER_MODE_CFB,
00047         MODE_CBC = GCRY_CIPHER_MODE_CBC,
00048         MODE_STREAM = GCRY_CIPHER_MODE_STREAM
00049     };
00050 
00051     DdtCipher(CipherAlgos algo, CipherModes mode);
00052     ~DdtCipher();
00053 
00054     void setKey(unsigned char *key, int size);
00055     void setIV(unsigned char *iv, int size);
00056     void decrypt(unsigned char* inputBuf, int inputLength, unsigned char* outputBuf, int outputLength);
00057     void encrypt(unsigned char* inputBuf, int inputLength, unsigned char* outputBuf, int outputLength);
00058 
00059 
00060 private:
00061     gcry_cipher_hd_t cipherHandle;
00062     CipherAlgos algo;
00063     CipherModes mode;
00064 
00065     void strRot13(unsigned char* inputBuf, int inputLength, unsigned char* outputBuf, int outputLength);
00066 
00067 };
00068 
00069 
00070 #endif

Generated on Tue Sep 13 01:32:46 2005 for DDT Project by  doxygen 1.4.4