9 #ifndef __libutilxx__sella__util__Crypt_H__
10 #define __libutilxx__sella__util__Crypt_H__
12 #include "../../common.h"
19 #define CRYPT_ALGO_DEF "twofish"
20 #define CRYPT_MODE_DEF "cfb"
21 #define CRYPT_KEYLEN_DEF 256
22 #define CRYPT_PASSWORD_DEF "q2enL5bsEmiP2laul8Lsii2uri7nMet3r4Ier7eSto3iDed7itr3llYSts9ni03nOnSlM"
23 #define CRYPT_SALT_DEF "Vine5l7xIc"
24 #define CRYPT_SERIAL_XOR 0xA5B65A69
34 Crypt(
const char *algo = CRYPT_ALGO_DEF,
const char *mode = CRYPT_MODE_DEF,
int bits = CRYPT_KEYLEN_DEF, uint32_t seed = 0);
41 void setSeed(uint32_t seed);
42 void setFlipSeed(uint32_t seed, uint32_t pattern = CRYPT_SERIAL_XOR);
43 uint32_t getSeed(
void)
const;
45 bool setPassword(
const char *password = CRYPT_PASSWORD_DEF,
const char *salt = CRYPT_SALT_DEF);
46 const char* getPassword(
void);
47 const unsigned char* getKey(
void);
49 void setKeyLen(
int bits);
50 int getKeyLen(
void)
const;
52 bool encrypt(
char *plainetext,
int len);
53 bool decrypt(
char *ciphertext,
int len);
54 bool check(
const char *ciphertext,
int len);
58 bool initialize(
void);
59 bool deinitialize(
void);
60 bool generateIV(
void);