lib/rbnacl/hash/blake2b.rb in rbnacl-5.0.0 vs lib/rbnacl/hash/blake2b.rb in rbnacl-6.0.0

- old
+ new

@@ -24,23 +24,23 @@ sodium_constant :SALTBYTES sodium_constant :PERSONALBYTES sodium_function :generichash_blake2b, :crypto_generichash_blake2b_salt_personal, - [:pointer, :size_t, :pointer, :ulong_long, :pointer, :size_t, :pointer, :pointer] + %i[pointer size_t pointer ulong_long pointer size_t pointer pointer] sodium_function :generichash_blake2b_init, :crypto_generichash_blake2b_init_salt_personal, - [:pointer, :pointer, :size_t, :size_t, :pointer, :pointer] + %i[pointer pointer size_t size_t pointer pointer] sodium_function :generichash_blake2b_update, :crypto_generichash_blake2b_update, - [:pointer, :pointer, :ulong_long] + %i[pointer pointer ulong_long] sodium_function :generichash_blake2b_final, :crypto_generichash_blake2b_final, - [:pointer, :pointer, :size_t] + %i[pointer pointer size_t] EMPTY_PERSONAL = ("\0" * PERSONALBYTES).freeze EMPTY_SALT = ("\0" * SALTBYTES).freeze # Calculate a Blake2b digest @@ -91,10 +91,11 @@ opts[:key_size] = key_size digest_size = opts.fetch(:digest_size, BYTES_MAX) raise LengthError, "digest size too short" if digest_size < BYTES_MIN raise LengthError, "digest size too long" if digest_size > BYTES_MAX + opts[:digest_size] = digest_size personal = opts.fetch(:personal, EMPTY_PERSONAL) opts[:personal] = Util.zero_pad(PERSONALBYTES, personal) @@ -159,9 +160,10 @@ # # @return [String] Blake2b digest of the string as raw bytes def digest raise(CryptoError, "No message to hash yet!") unless @incycle return @digest if @digest + @digest = Util.zeros(@digest_size) self.class.generichash_blake2b_final(@instate.pointer, @digest, @digest_size) || raise(CryptoError, "Hash finalization failed!") @digest end