summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2009-01-15 17:22:27 +0000
committerChristian Pointner <equinox@anytun.org>2009-01-15 17:22:27 +0000
commita9de160d67027c5bbbf822335d597516b52fb292 (patch)
treed119bde5a6e53cb6d9b1f8fb516726a2242bb980
parentfixed NOPACKED (Windows build) (diff)
added initialized flag to key derivation
-rw-r--r--src/keyDerivation.cpp6
-rw-r--r--src/keyDerivation.h5
2 files changed, 6 insertions, 5 deletions
diff --git a/src/keyDerivation.cpp b/src/keyDerivation.cpp
index 75ebe02..5b4f7a6 100644
--- a/src/keyDerivation.cpp
+++ b/src/keyDerivation.cpp
@@ -90,6 +90,7 @@ void AesIcmKeyDerivation::init(Buffer key, Buffer salt)
{
WritersLock lock(mutex_);
+ is_initialized_ = false;
master_salt_ = SyncBuffer(salt);
master_key_ = SyncBuffer(key);
@@ -145,6 +146,7 @@ void AesIcmKeyDerivation::updateMasterKey()
}
}
#endif
+ is_initialized_ = true;
}
std::string AesIcmKeyDerivation::printType()
@@ -183,10 +185,8 @@ bool AesIcmKeyDerivation::generate(kd_dir_t dir, satp_prf_label_t label, seq_nr_
{
ReadersLock lock(mutex_);
-#ifndef USE_SSL_CRYPTO
- if(!handle_[dir])
+ if(!is_initialized_)
return false;
-#endif
seq_nr_t r;
calcCtr(dir, &r, label, seq_nr);
diff --git a/src/keyDerivation.h b/src/keyDerivation.h
index f977922..5d433ca 100644
--- a/src/keyDerivation.h
+++ b/src/keyDerivation.h
@@ -67,8 +67,8 @@ typedef struct {
class KeyDerivation
{
public:
- KeyDerivation() : ld_kdr_(0), key_length_(0), master_salt_(0), master_key_(0) {};
- KeyDerivation(u_int16_t key_length) : ld_kdr_(0), key_length_(key_length), master_salt_(0), master_key_(0) {};
+ KeyDerivation() : is_initialized_(false), ld_kdr_(0), key_length_(0), master_salt_(0), master_key_(0) {};
+ KeyDerivation(u_int16_t key_length) : is_initialized_(false), ld_kdr_(0), key_length_(key_length), master_salt_(0), master_key_(0) {};
virtual ~KeyDerivation() {};
void setLogKDRate(const int8_t ld_rate);
@@ -94,6 +94,7 @@ protected:
updateMasterKey();
}
+ bool is_initialized_;
int8_t ld_kdr_; // ld(key_derivation_rate)
u_int16_t key_length_;
SyncBuffer master_salt_;