5#ifndef BITCOIN_WALLET_CRYPTER_H 
    6#define BITCOIN_WALLET_CRYPTER_H 
   48        READWRITE(obj.vchCryptedKey, obj.vchSalt, obj.nDerivationMethod, obj.nDeriveIterations, obj.vchOtherDerivationParameters);
 
   61typedef std::vector<unsigned char, secure_allocator<unsigned char> > 
CKeyingMaterial;
 
   73    std::vector<unsigned char, secure_allocator<unsigned char>> 
vchKey;
 
   74    std::vector<unsigned char, secure_allocator<unsigned char>> 
vchIV;
 
   80    bool SetKeyFromPassphrase(
const SecureString &strKeyData, 
const std::vector<unsigned char>& chSalt, 
const unsigned int nRounds, 
const unsigned int nDerivationMethod);
 
Encryption/decryption context with key information.
bool Encrypt(const CKeyingMaterial &vchPlaintext, std::vector< unsigned char > &vchCiphertext) const
bool SetKey(const CKeyingMaterial &chNewKey, const std::vector< unsigned char > &chNewIV)
friend class wallet_crypto_tests::TestCrypter
bool SetKeyFromPassphrase(const SecureString &strKeyData, const std::vector< unsigned char > &chSalt, const unsigned int nRounds, const unsigned int nDerivationMethod)
bool Decrypt(const std::vector< unsigned char > &vchCiphertext, CKeyingMaterial &vchPlaintext) const
int BytesToKeySHA512AES(const std::vector< unsigned char > &chSalt, const SecureString &strKeyData, int count, unsigned char *key, unsigned char *iv) const
std::vector< unsigned char, secure_allocator< unsigned char > > vchIV
std::vector< unsigned char, secure_allocator< unsigned char > > vchKey
An encapsulated private key.
Private key encryption is done based on a CMasterKey, which holds a salt and random encryption key.
std::vector< unsigned char > vchSalt
SERIALIZE_METHODS(CMasterKey, obj)
unsigned int nDerivationMethod
0 = EVP_sha512() 1 = scrypt()
std::vector< unsigned char > vchCryptedKey
std::vector< unsigned char > vchOtherDerivationParameters
Use this for more parameters to key derivation, such as the various parameters to scrypt.
unsigned int nDeriveIterations
An encapsulated public key.
void memory_cleanse(void *ptr, size_t len)
Secure overwrite a buffer (possibly containing secret data) with zero-bytes.
bool DecryptKey(const CKeyingMaterial &vMasterKey, const std::vector< unsigned char > &vchCryptedSecret, const CPubKey &vchPubKey, CKey &key)
bool EncryptSecret(const CKeyingMaterial &vMasterKey, const CKeyingMaterial &vchPlaintext, const uint256 &nIV, std::vector< unsigned char > &vchCiphertext)
const unsigned int WALLET_CRYPTO_IV_SIZE
std::vector< unsigned char, secure_allocator< unsigned char > > CKeyingMaterial
const unsigned int WALLET_CRYPTO_SALT_SIZE
const unsigned int WALLET_CRYPTO_KEY_SIZE
bool DecryptSecret(const CKeyingMaterial &vMasterKey, const std::vector< unsigned char > &vchCiphertext, const uint256 &nIV, CKeyingMaterial &vchPlaintext)
std::basic_string< char, std::char_traits< char >, secure_allocator< char > > SecureString