summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke <luke.wilde@live.co.uk>2020-11-27 20:13:55 +0000
committerAndreas Kling <kling@serenityos.org>2020-11-29 20:22:56 +0100
commit72abf3491bebae7be76d436d16581668a78fe130 (patch)
treeca17d90c0c051374160f26add0b224949c4ccd06
parent29e4dc76341a4592682271d3955efe992967c3e7 (diff)
downloadserenity-72abf3491bebae7be76d436d16581668a78fe130.zip
LibCrypto: Require intent parameter in CTR constructor
This was preventing clang from building.
-rw-r--r--Kernel/Random.h2
-rw-r--r--Libraries/LibCrypto/Cipher/Mode/CTR.h4
2 files changed, 4 insertions, 2 deletions
diff --git a/Kernel/Random.h b/Kernel/Random.h
index d26f4ea0d2..5fe130d1c3 100644
--- a/Kernel/Random.h
+++ b/Kernel/Random.h
@@ -66,7 +66,7 @@ public:
// FIXME: More than 2^20 bytes cannot be generated without refreshing the key.
ASSERT(n < (1 << 20));
- typename CipherType::CTRMode cipher(m_key, KeySize);
+ typename CipherType::CTRMode cipher(m_key, KeySize, Crypto::Cipher::Intent::Encryption);
Bytes buffer_span { buffer, n };
auto counter_span = m_counter.bytes();
diff --git a/Libraries/LibCrypto/Cipher/Mode/CTR.h b/Libraries/LibCrypto/Cipher/Mode/CTR.h
index 4525e48d43..e1db3ce0c2 100644
--- a/Libraries/LibCrypto/Cipher/Mode/CTR.h
+++ b/Libraries/LibCrypto/Cipher/Mode/CTR.h
@@ -113,8 +113,10 @@ public:
// Must intercept `Intent`, because AES must always be set to
// Encryption, even when decrypting AES-CTR.
// TODO: How to deal with ciphers that take different arguments?
+ // FIXME: Add back the default intent parameter once clang-11 is the default in GitHub Actions.
+ // Once added back, remove the parameter where it's constructed in get_random_bytes in Kernel/Random.h.
template<typename KeyType, typename... Args>
- explicit constexpr CTR(const KeyType& user_key, size_t key_bits, Intent = Intent::Encryption, Args... args)
+ explicit constexpr CTR(const KeyType& user_key, size_t key_bits, Intent, Args... args)
: Mode<T>(user_key, key_bits, Intent::Encryption, args...)
{
}