From 02ac4020d3f7a948c87dd0349db093934c0aed3c Mon Sep 17 00:00:00 2001 From: Ivan Pelipenko Date: Thu, 18 Jun 2020 17:14:33 +0300 Subject: [PATCH] api fixes, PIStreamPacker potential fixes --- CMakeLists.txt | 2 +- src_io_utils/piethutilbase.cpp | 31 +++++++++++++++++++++++++++++++ src_io_utils/pistreampacker.cpp | 2 +- src_main/io_utils/piethutilbase.h | 12 ++++++------ 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 18407089..fd2dec98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.0) cmake_policy(SET CMP0017 NEW) # need include() with .cmake project(pip) set(_PIP_MAJOR 1) -set(_PIP_MINOR 20) +set(_PIP_MINOR 21) set(_PIP_REVISION 0) set(_PIP_SUFFIX beta) set(_PIP_COMPANY SHS) diff --git a/src_io_utils/piethutilbase.cpp b/src_io_utils/piethutilbase.cpp index e728c21b..38301e2c 100644 --- a/src_io_utils/piethutilbase.cpp +++ b/src_io_utils/piethutilbase.cpp @@ -55,6 +55,32 @@ PIEthUtilBase::~PIEthUtilBase() { } +void PIEthUtilBase::setCryptEnabled(bool on) { + _crypt = on; +} + + +void PIEthUtilBase::cryptEnable() { + setCryptEnabled(true); +} + + +void PIEthUtilBase::cryptDisable() { + setCryptEnabled(false); +} + + +bool PIEthUtilBase::isCryptEnabled() const { + return _crypt; +} + + +void PIEthUtilBase::setCryptKey(const PIByteArray & k) { + _key = k; + setCryptEnabled(true); +} + + void PIEthUtilBase::createCryptKey(const PIString & k) { #ifdef PIP_CRYPT _key = PICrypt::hash("sodium_bug"); @@ -66,6 +92,11 @@ void PIEthUtilBase::createCryptKey(const PIString & k) { } +PIByteArray PIEthUtilBase::cryptKey() const { + return _key; +} + + PIByteArray PIEthUtilBase::cryptData(const PIByteArray & data) { if (!_crypt) return data; return diff --git a/src_io_utils/pistreampacker.cpp b/src_io_utils/pistreampacker.cpp index 73a3f249..6d0f4ab9 100644 --- a/src_io_utils/pistreampacker.cpp +++ b/src_io_utils/pistreampacker.cpp @@ -114,7 +114,7 @@ void PIStreamPacker::received(uchar * readed, int size) { void PIStreamPacker::received(const PIByteArray & data) { stream.append(data); //piCout << "rec" << data.size(); - while (stream.size_s() >= 4) { + while (stream.size_s() >= 6) { if (packet_size < 0) { ushort sign(0); memcpy(&sign, stream.data(), 2); diff --git a/src_main/io_utils/piethutilbase.h b/src_main/io_utils/piethutilbase.h index 8c3677d1..cbd7ca19 100644 --- a/src_main/io_utils/piethutilbase.h +++ b/src_main/io_utils/piethutilbase.h @@ -31,27 +31,27 @@ public: ~PIEthUtilBase(); //! Set crypt layer enabled - void setCryptEnabled(bool on) {_crypt = on;} + void setCryptEnabled(bool on); //! Enable crypt layer - void cryptEnable() {setCryptEnabled(true);} + void cryptEnable(); //! Disable crypt layer - void cryptDisable() {setCryptEnabled(false);} + void cryptDisable(); //! Returns if crypt layer enabled - bool isCryptEnabled() const {return _crypt;} + bool isCryptEnabled() const; //! Set crypt layer key to \"k\" - void setCryptKey(const PIByteArray & k) {_key = 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 {return _key;} + PIByteArray cryptKey() const; protected: