Skip to content

Commit

Permalink
move jesdict1 tests out of shell (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
jshawl authored Feb 7, 2024
1 parent 408279d commit 511413f
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 11 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Lint code
run: bundle exec rubocop
- name: Install jedisct1/minisign
run: ./spec/install-minisign.sh
- name: Run tests
run: bundle exec rspec
- name: Test against jedisct1/minisign
run: ./spec/verify.sh
4 changes: 0 additions & 4 deletions spec/verify.sh → spec/install-minisign.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,3 @@ else
tar -xvzf test/generated/minisign.tar.gz -C test/generated
mv test/generated/minisign-linux/x86_64/minisign test/generated/minisign
fi

test/generated/minisign -Vm test/generated/encrypted-key.txt -p test/minisign.pub || exit 1
test/generated/minisign -Vm test/generated/unencrypted-key.txt -p test/unencrypted.pub || exit 1
echo "secret password" | test/generated/minisign -Sm test/generated/.keep -s test/generated/new-keypair.key || exit 1
11 changes: 10 additions & 1 deletion spec/minisign/key_pair_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,19 @@
it 'generates a keypair without a password' do
keypair = Minisign::KeyPair.new
expect(keypair.private_key).to be_truthy
File.write('test/generated/new-unencrypted-keypair.key', keypair.private_key)
expect(system(
'test/generated/minisign -Sm test/generated/.keep -s test/generated/new-unencrypted-keypair.key'
)).to be(true)
end
it 'generates a keypair with a password' do
keypair = Minisign::KeyPair.new('secret password')
expect(keypair.private_key).to be_truthy
File.write('test/generated/new-keypair.key', keypair.private_key)
File.write('test/generated/new-encrypted-keypair.key', keypair.private_key)
expect(system(
# rubocop:disable Layout/LineLength
"echo 'secret password' | test/generated/minisign -Sm test/generated/.keep -s test/generated/new-encrypted-keypair.key"
# rubocop:enable Layout/LineLength
)).to be(true)
end
end
12 changes: 8 additions & 4 deletions spec/minisign/private_key_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -86,21 +86,25 @@
it 'signs a file' do
@filename = 'encrypted-key.txt'
@message = SecureRandom.uuid
File.write("test/generated/#{@filename}", @message)
signature = @private_key.sign(@filename, @message, 'this is a trusted comment')
File.write("test/generated/#{@filename}.minisig", signature)
@public_key = Minisign::PublicKey.new('RWSmKaOrT6m3TGwjwBovgOmlhSbyBUw3hyhnSOYruHXbJa36xHr8rq2M')
expect(@public_key.verify(signature, @message)).to match('Signature and comment signature verified')
File.write("test/generated/#{@filename}", @message)
File.write("test/generated/#{@filename}.minisig", signature)
expect(system('test/generated/minisign -Vm test/generated/encrypted-key.txt -p test/minisign.pub')).to be(true)
end
it 'signs a file with an unencrypted key' do
@filename = 'unencrypted-key.txt'
@message = SecureRandom.uuid
File.write("test/generated/#{@filename}", @message)
@unencrypted_private_key = Minisign::PrivateKey.new(File.read('test/unencrypted.key'))
signature = @unencrypted_private_key.sign(@filename, @message)
File.write("test/generated/#{@filename}.minisig", signature)
@public_key = Minisign::PublicKey.new('RWT/N/MXaBIWRAPzfdEKqVRq9txskjf5qh7EbqMLVHjkNTGFazO3zMw2')
expect(@public_key.verify(signature, @message)).to match('Signature and comment signature verified')
File.write("test/generated/#{@filename}", @message)
File.write("test/generated/#{@filename}.minisig", signature)
expect(system(
'test/generated/minisign -Vm test/generated/unencrypted-key.txt -p test/unencrypted.pub'
)).to be(true)
end
end
end

0 comments on commit 511413f

Please sign in to comment.