From 98c76a388cef2c036dd3ac3cde34ba2ca5440cdc Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 22 Aug 2015 17:40:04 +0100 Subject: chacha8: add a key generation variant that take a pointer and size --- src/crypto/chacha8.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/crypto/chacha8.h b/src/crypto/chacha8.h index 9527e4016..8e58f42a2 100644 --- a/src/crypto/chacha8.h +++ b/src/crypto/chacha8.h @@ -70,13 +70,17 @@ namespace crypto { chacha8(data, length, reinterpret_cast(&key), reinterpret_cast(&iv), cipher); } - inline void generate_chacha8_key(std::string password, chacha8_key& key) { + inline void generate_chacha8_key(const void *data, size_t size, chacha8_key& key) { static_assert(sizeof(chacha8_key) <= sizeof(hash), "Size of hash must be at least that of chacha8_key"); char pwd_hash[HASH_SIZE]; - crypto::cn_slow_hash(password.data(), password.size(), pwd_hash); + crypto::cn_slow_hash(data, size, pwd_hash); memcpy(&key, pwd_hash, sizeof(key)); memset(pwd_hash, 0, sizeof(pwd_hash)); } + + inline void generate_chacha8_key(std::string password, chacha8_key& key) { + return generate_chacha8_key(password.data(), password.size(), key); + } } #endif -- cgit v1.2.3