aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2015-08-22 17:40:04 +0100
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2015-08-22 17:41:03 +0100
commit98c76a388cef2c036dd3ac3cde34ba2ca5440cdc (patch)
treef55d7238bdeffe1a0aceb4441cad00b042740070
parentMerge pull request #379 (diff)
downloadmonero-98c76a388cef2c036dd3ac3cde34ba2ca5440cdc.tar.xz
chacha8: add a key generation variant that take a pointer and size
-rw-r--r--src/crypto/chacha8.h8
1 files 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<const uint8_t*>(&key), reinterpret_cast<const uint8_t*>(&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