-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommon.cpp
More file actions
68 lines (60 loc) · 1.99 KB
/
common.cpp
File metadata and controls
68 lines (60 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//
// Created by KuroX on 2018/5/27.
//
#include "common.h"
#include "MMX/Cryptography.h"
#include "aes256.hpp"
using namespace std;
ZZ findRandomInZn(const ZZ &n) {
ZZ result;
while (true) {
result = RandomBits_ZZ(NumBits(n));
if (result > 1 && result < n && GCD(result, n) == 1)
break;
}
return result;
}
ByteArray encrypt(const unsigned char *in, size_t len, ZZ key) {
string temp = Cryptography::numberToString(key, false);
ByteArray _key;
_key.resize(temp.size());
std::copy(temp.begin(), temp.end(), _key.begin());
ByteArray enc;
ByteArray::size_type enc_len = Aes256::encrypt(_key, in, len, enc);
// char *buffer = new char[enc.size()];
// std::copy(enc.begin(), enc.end(), buffer);
return enc;
}
ByteArray encrypt(const ByteArray &in, ZZ key) {
string temp = Cryptography::numberToString(key, false);
ByteArray _key;
_key.resize(temp.size());
std::copy(temp.begin(), temp.end(), _key.begin());
ByteArray enc;
ByteArray::size_type enc_len = Aes256::encrypt(_key, in, enc);
// char *buffer = new char[enc.size()];
// std::copy(enc.begin(), enc.end(), buffer);
return enc;
}
ByteArray decrypt(const unsigned char *in, size_t len, ZZ key) {
string temp = Cryptography::numberToString(key, false);
ByteArray _key;
_key.resize(temp.size());
std::copy(temp.begin(), temp.end(), _key.begin());
ByteArray enc;
ByteArray::size_type enc_len = Aes256::decrypt(_key, in, len, enc);
// char *buffer = new char[enc.size()];
// std::copy(enc.begin(), enc.end(), buffer);
return enc;
}
ByteArray decrypt(const ByteArray &in, ZZ key) {
string temp = Cryptography::numberToString(key, false);
ByteArray _key;
_key.resize(temp.size());
std::copy(temp.begin(), temp.end(), _key.begin());
ByteArray enc;
ByteArray::size_type enc_len = Aes256::decrypt(_key, in, enc);
// char *buffer = new char[enc.size()];
// std::copy(enc.begin(), enc.end(), buffer);
return enc;
}