Ethereum  PoC-8
The C++ Implementation of Ethereum
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 
62 private:
63  Secp256k1PP() = default;
64 };
65 
66 }
67 }
68 
dev::vector_ref< byte const >
dev::crypto::Secp256k1PP::encrypt
void encrypt(Public const &_k, bytes &io_cipher)
Encrypts text (replace input). (ECIES w/XOR-SHA1)
Definition: CryptoPP.cpp:177
dev::SecureFixedHash< 32 >
dev::FixedHash< 64 >
dev::crypto::Secp256k1PP::decryptECIES
bool decryptECIES(Secret const &_k, bytes &io_text)
Decrypts text (replace input). (ECIES w/AES128-CTR-SHA256)
Definition: CryptoPP.cpp:122
dev::crypto::Secp256k1PP::decrypt
void decrypt(Secret const &_k, bytes &io_text)
Decrypts text (replace input). (ECIES w/XOR-SHA1)
Definition: CryptoPP.cpp:208
Common.h
dev::bytes
std::vector< byte > bytes
Definition: Common.h:72
dev::crypto::Secp256k1PP::get
static Secp256k1PP * get()
Definition: CryptoPP.cpp:74
dev::crypto::Secp256k1PP::encryptECIES
void encryptECIES(Public const &_k, bytes &io_cipher)
Encrypts text (replace input). (ECIES w/AES128-CTR-SHA256)
Definition: CryptoPP.cpp:80
dev
Definition: Address.cpp:21
dev::crypto::Secp256k1PP
Definition: CryptoPP.h:40