Support Twofish encrypted KeePass 1 databases.

Refs #2
This commit is contained in:
Felix Geyer 2012-05-10 21:06:33 +02:00
parent 225e5dac66
commit cf4e574c50
9 changed files with 39 additions and 5 deletions

View file

@ -21,12 +21,11 @@
SymmetricCipherGcrypt::SymmetricCipherGcrypt(SymmetricCipher::Algorithm algo, SymmetricCipher::Mode mode,
SymmetricCipher::Direction direction)
: m_algo(GCRY_CIPHER_AES256)
: m_algo(gcryptAlgo(algo))
, m_mode(gcryptMode(mode))
, m_direction(direction)
{
Q_ASSERT(Crypto::initalized());
Q_ASSERT(algo == SymmetricCipher::Aes256);
}
SymmetricCipherGcrypt::~SymmetricCipherGcrypt()
@ -34,6 +33,21 @@ SymmetricCipherGcrypt::~SymmetricCipherGcrypt()
gcry_cipher_close(m_ctx);
}
int SymmetricCipherGcrypt::gcryptAlgo(SymmetricCipher::Algorithm algo)
{
switch (algo) {
case SymmetricCipher::Aes256:
return GCRY_CIPHER_AES256;
case SymmetricCipher::Twofish:
return GCRY_CIPHER_TWOFISH;
default:
Q_ASSERT(false);
return -1;
}
}
int SymmetricCipherGcrypt::gcryptMode(SymmetricCipher::Mode mode)
{
switch (mode) {