Fabcoin Core  0.16.2
P2P Digital Currency
CryptoPP.h
Go to the documentation of this file.
1 /*
2  This file is part of cpp-ethereum.
3 
4  cpp-ethereum is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  cpp-ethereum is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
16  */
24 #pragma once
25 
26 #include "Common.h"
27 
28 namespace dev
29 {
30 namespace crypto
31 {
33 static const unsigned c_eciesOverhead = 113;
34 
40 {
41 public:
42  static Secp256k1PP* get();
43 
45  void encrypt(Public const& _k, bytes& io_cipher);
46 
48  void decrypt(Secret const& _k, bytes& io_text);
49 
51  void encryptECIES(Public const& _k, bytes& io_cipher);
52 
54  void encryptECIES(Public const& _k, bytesConstRef _sharedMacData, bytes& io_cipher);
55 
57  bool decryptECIES(Secret const& _k, bytes& io_text);
58 
60  bool decryptECIES(Secret const& _k, bytesConstRef _sharedMacData, bytes& io_text);
61 
63  bytes eciesKDF(Secret const& _z, bytes _s1, unsigned kdBitLen = 256);
64 
65 private:
66  Secp256k1PP() = default;
67 };
68 
69 }
70 }
71 
Adapted from code found on http://stackoverflow.com/questions/180947/base64-decode-snippet-in-c Origi...
Definition: Arith256.cpp:15
CryptoPP secp256k1 algorithms.
Definition: CryptoPP.h:39
void encrypt(Public const &_k, bytes &io_cipher)
Encrypts text (replace input). (ECIES w/XOR-SHA1)
Definition: CryptoPP.cpp:211
bool decryptECIES(Secret const &_k, bytes &io_text)
Decrypts text (replace input). (ECIES w/AES128-CTR-SHA256)
Definition: CryptoPP.cpp:157
std::vector< byte > bytes
Definition: Common.h:75
void encryptECIES(Public const &_k, bytes &io_cipher)
Encrypts text (replace input). (ECIES w/AES128-CTR-SHA256)
Definition: CryptoPP.cpp:115
bytes eciesKDF(Secret const &_z, bytes _s1, unsigned kdBitLen=256)
Key derivation function used by encryptECIES and decryptECIES.
Definition: CryptoPP.cpp:85
void decrypt(Secret const &_k, bytes &io_text)
Decrypts text (replace input). (ECIES w/XOR-SHA1)
Definition: CryptoPP.cpp:233