From a9de160d67027c5bbbf822335d597516b52fb292 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 15 Jan 2009 17:22:27 +0000 Subject: added initialized flag to key derivation --- src/keyDerivation.cpp | 6 +++--- src/keyDerivation.h | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src') 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_; -- cgit v1.2.3