From 09ef8e564d2783c61b6ed6f830545b355e2c6cb6 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Wed, 23 Oct 2013 21:59:35 -0700 Subject: [PATCH] Support short Blake2b keys (fixes #87) --- lib/rbnacl/hash/blake2b.rb | 2 +- spec/rbnacl/hash/blake2b_spec.rb | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/rbnacl/hash/blake2b.rb b/lib/rbnacl/hash/blake2b.rb index 9e71bd5..475401b 100644 --- a/lib/rbnacl/hash/blake2b.rb +++ b/lib/rbnacl/hash/blake2b.rb @@ -36,7 +36,7 @@ class Blake2b def initialize(opts = {}) @key = opts.fetch(:key, nil) @key_size = @key ? @key.bytesize : 0 - raise LengthError, "Invalid key size" if (@key_size != 0) && (@key_size < KEYBYTES_MIN || @key_size > KEYBYTES_MAX) + raise LengthError, "Invalid key size" if @key_size > KEYBYTES_MAX @digest_size = opts.fetch(:digest_size, BYTES_MAX) raise LengthError, "Invalid digest size" if @digest_size < BYTES_MIN || @digest_size > BYTES_MAX diff --git a/spec/rbnacl/hash/blake2b_spec.rb b/spec/rbnacl/hash/blake2b_spec.rb index 47ada1d..4e715b7 100644 --- a/spec/rbnacl/hash/blake2b_spec.rb +++ b/spec/rbnacl/hash/blake2b_spec.rb @@ -20,7 +20,13 @@ let(:reference_string_hash) { vector :blake2b_keyed_digest } it "calculates keyed hashes correctly" do - RbNaCl::Hash.blake2b(reference_string, :key => reference_key).should eq reference_string_hash + RbNaCl::Hash.blake2b(reference_string, key: reference_key).should eq reference_string_hash + end + + it "supports short keys" do + expect do + RbNaCl::Hash.blake2b(reference_string, key: "X") + end.to_not raise_exception end end end