X-Git-Url: https://git.syn-net.org/debian/?p=anytun.git;a=blobdiff_plain;f=src%2FkeyDerivation.h;h=f34499c46b5bca04dd0883326cbbd0694b27196c;hp=eea426622b6d6ad249aae457f76a0ad18b498842;hb=ef0cacf2508418915d3f64b04003be3c13fed3cc;hpb=ece844834d2cecc028ce81ca283f5d441088580e diff --git a/src/keyDerivation.h b/src/keyDerivation.h index eea4266..f34499c 100644 --- a/src/keyDerivation.h +++ b/src/keyDerivation.h @@ -11,7 +11,7 @@ * tunneling and relaying of packets of any protocol. * * - * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, + * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, * Christian Pointner * * This file is part of Anytun. @@ -67,7 +67,7 @@ class KeyDerivation { public: KeyDerivation() : is_initialized_(false), role_(ROLE_LEFT), key_length_(0), master_salt_(0), master_key_(0) {}; - KeyDerivation(u_int16_t key_length) : is_initialized_(false), role_(ROLE_LEFT), key_length_(key_length), master_salt_(0), master_key_(0) {}; + KeyDerivation(uint16_t key_length) : is_initialized_(false), role_(ROLE_LEFT), key_length_(key_length), master_salt_(0), master_key_(0) {}; virtual ~KeyDerivation() {}; void setRole(const role_t role); @@ -77,39 +77,38 @@ public: virtual std::string printType() { return "GenericKeyDerivation"; }; - satp_prf_label_t convertLabel(kd_dir_t dir, satp_prf_label_t label); + satp_prf_label_t convertLabel(kd_dir_t dir, satp_prf_label_t label); protected: virtual void updateMasterKey() = 0; - + #ifndef NO_PASSPHRASE - void calcMasterKey(std::string passphrase, u_int16_t length); - void calcMasterSalt(std::string passphrase, u_int16_t length); + void calcMasterKey(std::string passphrase, uint16_t length); + void calcMasterSalt(std::string passphrase, uint16_t length); #endif - KeyDerivation(const KeyDerivation & src); - friend class boost::serialization::access; - template - void serialize(Archive & ar, const unsigned int version) - { - WritersLock lock(mutex_); - ar & role_; - ar & key_length_; - ar & master_salt_; - ar & master_key_; + KeyDerivation(const KeyDerivation& src); + friend class boost::serialization::access; + template + void serialize(Archive& ar, const unsigned int version) { + WritersLock lock(mutex_); + ar& role_; + ar& key_length_; + ar& master_salt_; + ar& master_key_; updateMasterKey(); - } + } bool is_initialized_; role_t role_; - u_int16_t key_length_; + uint16_t key_length_; SyncBuffer master_salt_; SyncBuffer master_key_; SharedMutex mutex_; }; -#if BOOST_VERSION <= 103500 +#if BOOST_VERSION <= 103500 BOOST_IS_ABSTRACT(KeyDerivation); #else BOOST_SERIALIZATION_ASSUME_ABSTRACT(KeyDerivation); @@ -131,12 +130,11 @@ public: private: void updateMasterKey() {}; - friend class boost::serialization::access; - template - void serialize(Archive & ar, const unsigned int version) - { - ar & boost::serialization::base_object(*this); - } + friend class boost::serialization::access; + template + void serialize(Archive& ar, const unsigned int version) { + ar& boost::serialization::base_object(*this); + } }; @@ -147,13 +145,13 @@ class AesIcmKeyDerivation : public KeyDerivation { public: AesIcmKeyDerivation(); - AesIcmKeyDerivation(u_int16_t key_length); + AesIcmKeyDerivation(uint16_t key_length); ~AesIcmKeyDerivation(); - static const u_int16_t DEFAULT_KEY_LENGTH = 128; - static const u_int16_t CTR_LENGTH = 16; - static const u_int16_t SALT_LENGTH = 14; - + static const uint16_t DEFAULT_KEY_LENGTH = 128; + static const uint16_t CTR_LENGTH = 16; + static const uint16_t SALT_LENGTH = 14; + void init(Buffer key, Buffer salt, std::string passphrase = ""); bool generate(kd_dir_t dir, satp_prf_label_t label, seq_nr_t seq_nr, Buffer& key); @@ -164,38 +162,37 @@ private: bool calcCtr(kd_dir_t dir, satp_prf_label_t label, seq_nr_t seq_nr); - friend class boost::serialization::access; - template - void serialize(Archive & ar, const unsigned int version) - { - ar & boost::serialization::base_object(*this); - } + friend class boost::serialization::access; + template + void serialize(Archive& ar, const unsigned int version) { + ar& boost::serialization::base_object(*this); + } #ifndef USE_SSL_CRYPTO gcry_cipher_hd_t handle_[2]; #else AES_KEY aes_key_[2]; - u_int8_t ecount_buf_[2][AES_BLOCK_SIZE]; + uint8_t ecount_buf_[2][AES_BLOCK_SIZE]; #endif #ifdef _MSC_VER - #pragma pack(push, 1) -#endif +#pragma pack(push, 1) +#endif union ATTR_PACKED key_derivation_aesctr_ctr_union { - u_int8_t buf_[CTR_LENGTH]; + uint8_t buf_[CTR_LENGTH]; struct ATTR_PACKED { - u_int8_t buf_[SALT_LENGTH]; - u_int16_t zero_; + uint8_t buf_[SALT_LENGTH]; + uint16_t zero_; } salt_; struct ATTR_PACKED { - u_int8_t fill_[SALT_LENGTH - sizeof(satp_prf_label_t) - sizeof(seq_nr_t)]; + uint8_t fill_[SALT_LENGTH - sizeof(satp_prf_label_t) - sizeof(seq_nr_t)]; satp_prf_label_t label_; seq_nr_t seq_; - u_int16_t zero_; + uint16_t zero_; } params_; } ctr_[2]; -#ifdef _MSC_VER - #pragma pack(pop) +#ifdef _MSC_VER +#pragma pack(pop) #endif };