From d97760a781a793d35dfe75367dd8d80ab59bbb49 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 18 Feb 2009 13:08:59 +0000 Subject: added anytun02 compat runtime switch --- src/keyDerivation.cpp | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'src/keyDerivation.cpp') diff --git a/src/keyDerivation.cpp b/src/keyDerivation.cpp index db8cc1b..bfdef3f 100644 --- a/src/keyDerivation.cpp +++ b/src/keyDerivation.cpp @@ -138,6 +138,14 @@ AesIcmKeyDerivation::AesIcmKeyDerivation() : KeyDerivation(DEFAULT_KEY_LENGTH) #endif } +AesIcmKeyDerivation::AesIcmKeyDerivation(bool a) : KeyDerivation(a, DEFAULT_KEY_LENGTH) +{ +#ifndef USE_SSL_CRYPTO + for(int i=0; i<2; i++) + handle_[i] = NULL; +#endif +} + AesIcmKeyDerivation::AesIcmKeyDerivation(u_int16_t key_length) : KeyDerivation(key_length) { #ifndef USE_SSL_CRYPTO @@ -146,6 +154,14 @@ AesIcmKeyDerivation::AesIcmKeyDerivation(u_int16_t key_length) : KeyDerivation(k #endif } +AesIcmKeyDerivation::AesIcmKeyDerivation(bool a, u_int16_t key_length) : KeyDerivation(a, key_length) +{ +#ifndef USE_SSL_CRYPTO + for(int i=0; i<2; i++) + handle_[i] = NULL; +#endif +} + AesIcmKeyDerivation::~AesIcmKeyDerivation() { WritersLock lock(mutex_); @@ -257,8 +273,14 @@ bool AesIcmKeyDerivation::calcCtr(kd_dir_t dir, seq_nr_t* r, satp_prf_label_t la } memcpy(ctr_[dir].salt_.buf_, master_salt_.getBuf(), SALT_LENGTH); ctr_[dir].salt_.zero_ = 0; - ctr_[dir].params_.label_ ^= label; - ctr_[dir].params_.r_ ^= SEQ_NR_T_HTON(*r); + if(anytun02_compat_) { + ctr_[dir].params_compat_.label_ ^= label; + ctr_[dir].params_compat_.r_ ^= SEQ_NR_T_HTON(*r); + } + else { + ctr_[dir].params_.label_ ^= label; + ctr_[dir].params_.r_ ^= SEQ_NR_T_HTON(*r); + } return true; } -- cgit v1.2.3