add
This commit is contained in:
parent
7ed517a561
commit
fbd4f0695b
16
include/communicate/tcp_server.h
Normal file
16
include/communicate/tcp_server.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// Created by 胡宇 on 2020/7/7.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef NET_TCP_SERVER_H
|
||||||
|
#define NET_TCP_SERVER_H
|
||||||
|
|
||||||
|
namespace Net {
|
||||||
|
|
||||||
|
class TCPServer {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //NET_TCP_SERVER_H
|
@ -51,8 +51,6 @@
|
|||||||
#include <rapidjson/stringbuffer.h>
|
#include <rapidjson/stringbuffer.h>
|
||||||
#include <rapidjson/prettywriter.h>
|
#include <rapidjson/prettywriter.h>
|
||||||
|
|
||||||
#include <SQLiteCpp/SQLiteCpp.h>
|
|
||||||
|
|
||||||
|
|
||||||
using std::string;
|
using std::string;
|
||||||
using std::vector;
|
using std::vector;
|
||||||
|
@ -19,14 +19,9 @@ namespace Net {
|
|||||||
class AESCBCEncryptor {
|
class AESCBCEncryptor {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
AESCBCEncryptor() {
|
AESCBCEncryptor();
|
||||||
generate_random_key_data();
|
|
||||||
aes_init(key_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
string getKeyData() const{
|
string getKeyData() const;
|
||||||
return key_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
void encrypt(const std::string &data, std::string &encrypted_data);
|
void encrypt(const std::string &data, std::string &encrypted_data);
|
||||||
|
|
||||||
@ -34,7 +29,9 @@ namespace Net {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
const int nrounds = 8;
|
const int nrounds = 8;
|
||||||
|
|
||||||
uint8_t key[32], iv[32];
|
uint8_t key[32], iv[32];
|
||||||
|
|
||||||
EVP_CIPHER_CTX *e_ctx = EVP_CIPHER_CTX_new();
|
EVP_CIPHER_CTX *e_ctx = EVP_CIPHER_CTX_new();
|
||||||
|
|
||||||
std::string key_data;
|
std::string key_data;
|
||||||
|
@ -9,32 +9,28 @@ using std::string;
|
|||||||
using std::ifstream;
|
using std::ifstream;
|
||||||
using std::stringstream;
|
using std::stringstream;
|
||||||
|
|
||||||
|
namespace Net {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Generator of SHA256 Hex
|
* The Generator of SHA256 Hex
|
||||||
* We can use it in an easy way.
|
* We can use it in an easy way.
|
||||||
*/
|
*/
|
||||||
class SHA256Generator{
|
class SHA256Generator {
|
||||||
public:
|
public:
|
||||||
SHA256Generator(string data){
|
SHA256Generator(string data);
|
||||||
this->raw_data = std::move(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
SHA256Generator(ifstream stream){
|
SHA256Generator(ifstream stream);
|
||||||
while(stream.good()){
|
|
||||||
stream >> raw_data;
|
|
||||||
}
|
|
||||||
stream.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void generate();
|
void replace(string &str);
|
||||||
|
|
||||||
string getHex(){
|
void generate();
|
||||||
if(!if_generate) generate();
|
|
||||||
return this->sha256_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
string getHex();
|
||||||
bool if_generate = false;
|
|
||||||
string raw_data;
|
private:
|
||||||
string sha256_data;
|
bool if_generate = false;
|
||||||
};
|
string raw_data;
|
||||||
|
string sha256_data;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
5
src/communicate/CMakeLists.txt
Normal file
5
src/communicate/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
file(GLOB commuSrc *.cpp)
|
||||||
|
|
||||||
|
add_library(commu STATIC ${commuSrc})
|
||||||
|
|
||||||
|
target_link_libraries(commu utils debugTools)
|
5
src/communicate/tcp_server.cpp
Normal file
5
src/communicate/tcp_server.cpp
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
//
|
||||||
|
// Created by 胡宇 on 2020/7/7.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "communicate/tcp_server.h"
|
@ -1,3 +1,5 @@
|
|||||||
add_library(utils STATIC rsa_key_chain.cpp aes_cbc_encryptor.cpp random_generator.cpp)
|
file(GLOB utilSrc *.cpp)
|
||||||
|
|
||||||
|
add_library(utils STATIC ${utilSrc})
|
||||||
|
|
||||||
target_link_libraries(utils debugTools ssl crypto)
|
target_link_libraries(utils debugTools ssl crypto)
|
@ -66,3 +66,12 @@ void Net::AESCBCEncryptor::aes_init(string &key_data) {
|
|||||||
EVP_CIPHER_CTX_init(e_ctx);
|
EVP_CIPHER_CTX_init(e_ctx);
|
||||||
EVP_EncryptInit_ex(e_ctx, EVP_aes_256_cbc(), nullptr, key, iv);
|
EVP_EncryptInit_ex(e_ctx, EVP_aes_256_cbc(), nullptr, key, iv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string Net::AESCBCEncryptor::getKeyData() const {
|
||||||
|
return key_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
Net::AESCBCEncryptor::AESCBCEncryptor() {
|
||||||
|
generate_random_key_data();
|
||||||
|
aes_init(key_data);
|
||||||
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
#include "type.h"
|
#include "type.h"
|
||||||
#include "util/sha256_generator.h"
|
#include "utils/sha256_generator.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate SHA256 Hex Code
|
* Generate SHA256 Hex Code
|
||||||
*/
|
*/
|
||||||
void SHA256Generator::generate() {
|
void Net::SHA256Generator::generate() {
|
||||||
unsigned char hash[SHA256_DIGEST_LENGTH];
|
unsigned char hash[SHA256_DIGEST_LENGTH];
|
||||||
SHA256_CTX sha256;
|
SHA256_CTX sha256;
|
||||||
SHA256_Init(&sha256);
|
SHA256_Init(&sha256);
|
||||||
@ -19,3 +19,23 @@ void SHA256Generator::generate() {
|
|||||||
sha256_data = buffer.str();
|
sha256_data = buffer.str();
|
||||||
if_generate = true;
|
if_generate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Net::SHA256Generator::replace(string &str) {
|
||||||
|
this->raw_data = str;
|
||||||
|
}
|
||||||
|
|
||||||
|
string Net::SHA256Generator::getHex() {
|
||||||
|
if (!if_generate) generate();
|
||||||
|
return this->sha256_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
Net::SHA256Generator::SHA256Generator(ifstream stream) {
|
||||||
|
while (stream.good()) {
|
||||||
|
stream >> raw_data;
|
||||||
|
}
|
||||||
|
stream.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
Net::SHA256Generator::SHA256Generator(string data) {
|
||||||
|
this->raw_data = std::move(data);
|
||||||
|
}
|
||||||
|
20
test/test_util/test_sha.cpp
Normal file
20
test/test_util/test_sha.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
//
|
||||||
|
// Created by 胡宇 on 2020/7/7.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#include "utils/sha256_generator.h"
|
||||||
|
#include "debug_tools/print_tools.h"
|
||||||
|
|
||||||
|
using namespace Net;
|
||||||
|
|
||||||
|
TEST(SHA256Test, base_test_1){
|
||||||
|
SHA256Generator generator("Hello World.");
|
||||||
|
generator.generate();
|
||||||
|
|
||||||
|
PrintTools::printInfo(generator.getHex(), "SHA256 Hex");
|
||||||
|
|
||||||
|
ASSERT_EQ(generator.getHex(),
|
||||||
|
std::string("f4bb1975bf1f81f76ce824f7536c1e101a8060a632a52289d530a6f600d52c92"));
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user