From 18f1e8126f81f82b979c49d5daeb2374a6f10af8 Mon Sep 17 00:00:00 2001 From: Jesse Shawl Date: Sun, 4 Feb 2024 15:23:28 -0600 Subject: [PATCH 1/2] standardize blake2b implementation --- lib/minisign/utils.rb | 6 +++++- spec/minisign/private_key_spec.rb | 3 +-- spec/spec_helper.rb | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/minisign/utils.rb b/lib/minisign/utils.rb index d51b63a..311b5ea 100644 --- a/lib/minisign/utils.rb +++ b/lib/minisign/utils.rb @@ -3,8 +3,12 @@ module Minisign # Helpers used in multiple classes module Utils + def blake2b256(message) + RbNaCl::Hash::Blake2b.digest(message, { digest_size: 32 }) + end + def blake2b512(message) - OpenSSL::Digest.new('BLAKE2b512').digest(message) + RbNaCl::Hash::Blake2b.digest(message, { digest_size: 64 }) end end end diff --git a/spec/minisign/private_key_spec.rb b/spec/minisign/private_key_spec.rb index 95bb724..de55977 100644 --- a/spec/minisign/private_key_spec.rb +++ b/spec/minisign/private_key_spec.rb @@ -68,8 +68,7 @@ @private_key.public_key ].inject(&:+).pack('C*') - computed_checksum = RbNaCl::Hash::Blake2b.digest(key_data, { digest_size: 32 }).bytes - + computed_checksum = blake2b256(key_data).bytes expect(@private_key.checksum).to eq(computed_checksum) end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 8a06978..19c3de1 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -8,6 +8,7 @@ require 'minisign' RSpec.configure do |config| + config.include Minisign::Utils config.expect_with :rspec do |expectations| expectations.include_chain_clauses_in_custom_matcher_descriptions = true end From 73835b476075de0fb71e0b15ad3e5b129fd188e5 Mon Sep 17 00:00:00 2001 From: Jesse Shawl Date: Sun, 4 Feb 2024 15:24:09 -0600 Subject: [PATCH 2/2] remove openssl --- lib/minisign.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/minisign.rb b/lib/minisign.rb index eb6ab81..0a12b39 100644 --- a/lib/minisign.rb +++ b/lib/minisign.rb @@ -2,7 +2,6 @@ require 'ed25519' require 'base64' -require 'openssl' require 'rbnacl' require 'minisign/utils'