5 #ifndef BITCOIN_WALLET_CRYPTER_H 6 #define BITCOIN_WALLET_CRYPTER_H 49 template <
typename Stream,
typename Operation>
68 typedef std::vector<unsigned char, secure_allocator<unsigned char> >
CKeyingMaterial;
80 std::vector<unsigned char, secure_allocator<unsigned char>>
vchKey;
81 std::vector<unsigned char, secure_allocator<unsigned char>>
vchIV;
87 bool SetKeyFromPassphrase(
const SecureString &strKeyData,
const std::vector<unsigned char>& chSalt,
const unsigned int nRounds,
const unsigned int nDerivationMethod);
116 #endif // BITCOIN_WALLET_CRYPTER_H std::vector< unsigned char > vchSalt
Definition: crypter.h:38
std::vector< unsigned char, secure_allocator< unsigned char > > vchKey
Definition: crypter.h:80
ADD_SERIALIZE_METHODS
Definition: crypter.h:47
bool Encrypt(const CKeyingMaterial &vchPlaintext, std::vector< unsigned char > &vchCiphertext) const
Definition: crypter.cpp:74
std::vector< unsigned char > vchOtherDerivationParameters
Definition: crypter.h:45
const unsigned int WALLET_CRYPTO_KEY_SIZE
Definition: crypter.h:14
~CCrypter()
Definition: crypter.h:106
CMasterKey()
Definition: crypter.h:58
std::basic_string< char, std::char_traits< char >, secure_allocator< char > > SecureString
Definition: secure.h:60
void CleanKey()
Definition: crypter.h:92
std::vector< unsigned char, secure_allocator< unsigned char > > CKeyingMaterial
Definition: crypter.h:68
bool SetKeyFromPassphrase(const SecureString &strKeyData, const std::vector< unsigned char > &chSalt, const unsigned int nRounds, const unsigned int nDerivationMethod)
Definition: crypter.cpp:42
bool DecryptSecret(const CKeyingMaterial &vMasterKey, const std::vector< unsigned char > &vchCiphertext, const uint256 &nIV, CKeyingMaterial &vchPlaintext)
Definition: crypter.cpp:120
bool fKeySet
Definition: crypter.h:82
const unsigned int WALLET_CRYPTO_IV_SIZE
Definition: crypter.h:16
std::vector< unsigned char, secure_allocator< unsigned char > > vchIV
Definition: crypter.h:81
int BytesToKeySHA512AES(const std::vector< unsigned char > &chSalt, const SecureString &strKeyData, int count, unsigned char *key, unsigned char *iv) const
Definition: crypter.cpp:16
CCrypter()
Definition: crypter.h:99
void memory_cleanse(void *ptr, size_t len)
Definition: cleanse.cpp:14
unsigned int nDeriveIterations
Definition: crypter.h:42
bool SetKey(const CKeyingMaterial &chNewKey, const std::vector< unsigned char > &chNewIV)
Definition: crypter.cpp:62
std::vector< unsigned char > vchCryptedKey
Definition: crypter.h:37
friend class wallet_crypto_tests::TestCrypter
Definition: crypter.h:78
Definition: uint256.h:121
const unsigned int WALLET_CRYPTO_SALT_SIZE
Definition: crypter.h:15
unsigned int nDerivationMethod
Definition: crypter.h:41
static int count
Definition: tests.c:45
bool Decrypt(const std::vector< unsigned char > &vchCiphertext, CKeyingMaterial &vchPlaintext) const
Definition: crypter.cpp:92
bool EncryptSecret(const CKeyingMaterial &vMasterKey, const CKeyingMaterial &vchPlaintext, const uint256 &nIV, std::vector< unsigned char > &vchCiphertext)
Definition: crypter.cpp:110
void SerializationOp(Stream &s, Operation ser_action)
Definition: crypter.h:50
bool DecryptKey(const CKeyingMaterial &vMasterKey, const std::vector< unsigned char > &vchCryptedSecret, const CPubKey &vchPubKey, CKey &key)
Definition: crypter.cpp:130
#define READWRITE(...)
Definition: serialize.h:184