aboutsummaryrefslogtreecommitdiffstats
path: root/src/hash/skein
diff options
context:
space:
mode:
Diffstat (limited to 'src/hash/skein')
-rw-r--r--src/hash/skein/skein_512.cpp8
-rw-r--r--src/hash/skein/skein_512.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/src/hash/skein/skein_512.cpp b/src/hash/skein/skein_512.cpp
index cda8e3f56..37aed4357 100644
--- a/src/hash/skein/skein_512.cpp
+++ b/src/hash/skein/skein_512.cpp
@@ -133,14 +133,14 @@ void reset_tweak(MemoryRegion<u64bit>& T,
void initial_block(MemoryRegion<u64bit>& H,
MemoryRegion<u64bit>& T,
- u32bit output_bits,
+ size_t output_bits,
const std::string& personalization)
{
zeroise(H);
// ASCII("SHA3") followed by version (0x0001) code
byte config_str[32] = { 0x53, 0x48, 0x41, 0x33, 0x01, 0x00, 0 };
- store_le(output_bits, config_str + 8);
+ store_le(u32bit(output_bits), config_str + 8);
reset_tweak(T, SKEIN_CONFIG, true);
ubi_512(H, T, config_str, sizeof(config_str));
@@ -166,14 +166,14 @@ void initial_block(MemoryRegion<u64bit>& H,
}
-Skein_512::Skein_512(u32bit arg_output_bits,
+Skein_512::Skein_512(size_t arg_output_bits,
const std::string& arg_personalization) :
HashFunction(arg_output_bits / 8),
personalization(arg_personalization),
output_bits(arg_output_bits),
H(9), T(3), buffer(64), buf_pos(0)
{
- if(output_bits == 0 || output_bits % 8 != 0)
+ if(output_bits == 0 || output_bits % 8 != 0 || output_bits > 64*1024)
throw Invalid_Argument("Bad output bits size for Skein-512");
initial_block(H, T, output_bits, personalization);
diff --git a/src/hash/skein/skein_512.h b/src/hash/skein/skein_512.h
index fce02c1f6..54cdd002c 100644
--- a/src/hash/skein/skein_512.h
+++ b/src/hash/skein/skein_512.h
@@ -25,7 +25,7 @@ class BOTAN_DLL Skein_512 : public HashFunction
* @param personalization is a string that will paramaterize the
* hash output
*/
- Skein_512(u32bit output_bits = 512,
+ Skein_512(size_t output_bits = 512,
const std::string& personalization = "");
size_t hash_block_size() const { return 64; }