[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdesupport/qca/plugins/qca-botan
From: Bernhard Rosenkraenzer <bero () arklinux ! org>
Date: 2011-03-21 17:20:43
Message-ID: 20110321172043.D8C7AAC8C9 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1225570 by bero:
Support Botan 1.9.15 (AKA 1.10-rc1)
M +29 -1 qca-botan.cpp
--- trunk/kdesupport/qca/plugins/qca-botan/qca-botan.cpp #1225569:1225570
@@ -24,7 +24,9 @@
#include <botan/botan.h>
#include <botan/hmac.h>
+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0)
#include <botan/s2k.h>
+#endif
#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,8,0)
#include <botan/algo_factory.h>
#endif
@@ -92,7 +94,11 @@
QCA::MemoryRegion final()
{
+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0)
QCA::SecureArray a( m_hashObj->OUTPUT_LENGTH );
+#else
+ QCA::SecureArray a( m_hashObj->output_length() );
+#endif
m_hashObj->final( (Botan::byte *)a.data() );
return a;
}
@@ -154,7 +160,11 @@
void final( QCA::MemoryRegion *out)
{
+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0)
QCA::SecureArray sa( m_hashObj->OUTPUT_LENGTH, 0 );
+#else
+ QCA::SecureArray sa( m_hashObj->output_length(), 0 );
+#endif
m_hashObj->final( (Botan::byte *)sa.data() );
*out = sa;
}
@@ -186,10 +196,15 @@
QCA::SymmetricKey makeKey(const QCA::SecureArray &secret, const \
QCA::InitializationVector &salt, unsigned int keyLength, unsigned int \
iterationCount) {
+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0)
m_s2k->set_iterations(iterationCount);
m_s2k->change_salt((const Botan::byte*)salt.data(), salt.size());
std::string secretString(secret.data(), secret.size() );
Botan::OctetString key = m_s2k->derive_key(keyLength, secretString);
+#else
+ std::string secretString(secret.data(), secret.size() );
+ Botan::OctetString key = m_s2k->derive_key(keyLength, secretString, (const \
Botan::byte*)salt.data(), salt.size(), iterationCount); +#endif
QCA::SecureArray retval(QByteArray((const char*)key.begin(), key.length()));
return QCA::SymmetricKey(retval);
}
@@ -277,10 +292,23 @@
QCA::KeyLength keyLength() const
{
+#if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,0)
return QCA::KeyLength( Botan::min_keylength_of(m_algoName),
Botan::max_keylength_of(m_algoName),
Botan::keylength_multiple_of(m_algoName) );
-
+#else
+ Botan::Algorithm_Factory &af = Botan::global_state().algorithm_factory();
+ Botan::Key_Length_Specification kls(0);
+ if(const Botan::BlockCipher *bc = af.prototype_block_cipher(m_algoName))
+ kls = bc->key_spec();
+ else if(const Botan::StreamCipher *sc = \
af.prototype_stream_cipher(m_algoName)) + kls = sc->key_spec();
+ else if(const Botan::MessageAuthenticationCode *mac = \
af.prototype_mac(m_algoName)) + kls = mac->key_spec();
+ return QCA::KeyLength( kls.minimum_keylength(),
+ kls.maximum_keylength(),
+ kls.keylength_multiple() );
+#endif
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic