/*! \file piethutilbase.h * \ingroup IO-Utils * \~\brief * \~english Base class for ethernet utils * \~russian Базовый класс для утилит ethernet */ /* PIP - Platform Independent Primitives Base class for ethernet utils Ivan Pelipenko peri4ko@yandex.ru This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef PIETHUTILBASE_H #define PIETHUTILBASE_H #include "pibytearray.h" #include "pip_io_utils_export.h" class PIP_IO_UTILS_EXPORT PIEthUtilBase { public: PIEthUtilBase(); ~PIEthUtilBase(); //! Set crypt layer enabled void setCryptEnabled(bool on); //! Enable crypt layer void cryptEnable(); //! Disable crypt layer void cryptDisable(); //! Returns if crypt layer enabled bool isCryptEnabled() const; //! Set crypt layer key to \"k\" void setCryptKey(const PIByteArray & k); //! Generate crypt layer key by \a PICrypt::hash and //! set crypt layer enabled void createCryptKey(const PIString & k); //! Returns crypt layer key PIByteArray cryptKey() const; //! \brief Returns addition size for crypted data. static size_t cryptSizeAddition(); protected: /*! \brief Returns encrypted data if layer enabled, * otherwise returns unchanged \"data\" */ PIByteArray cryptData(const PIByteArray & data); /*! \brief Returns decrypted data if layer enabled, * otherwise returns unchanged \"data\". If decryption * was unsuccessfull returns empty %PIByteArray. */ PIByteArray decryptData(const PIByteArray & data); private: PIByteArray _key; bool _crypt; }; #endif // PIETHUTILBASE_H