TODO: Fix scratchpad.sh, write test to verify message signatures

This commit is contained in:
Netscape Navigator 2020-03-12 08:07:13 -05:00
parent 3b2f4ea5d0
commit 18d82f30f7
1 changed files with 10 additions and 3 deletions

View File

@ -96,14 +96,21 @@ RSpec.describe Pigeon::Message do
secret = Pigeon::Storage.current.get_config(Pigeon::SEED_CONFIG_KEY)
real_signing_key = Pigeon::KeyPair.current.instance_variable_get(:@signing_key)
signing_key = Ed25519::SigningKey.new(secret)
unsigned_message_string = template.render_without_signature.chomp
plaintext = template.render_without_signature
duplicate_plaintext =
Pigeon::MessageSerializer.new(template.message).render_without_signature
# Sanity checks
expect(secret.length).to eq(32)
expect(plaintext).to eq(duplicate_plaintext)
expect(real_signing_key.to_bytes).to eq(signing_key.to_bytes)
random_string = SecureRandom.uuid
random_sig1 = Base64.urlsafe_encode64(signing_key.sign(random_string))
random_sig2 =
Pigeon::KeyPair.current.sign(random_string).gsub(".sig.ed25519", "")
expect(random_sig1).to eq(random_sig2)
duplicate_signature =
Base64.urlsafe_encode64(signing_key.sign(unsigned_message_string))
Base64.urlsafe_encode64(signing_key.sign(plaintext))
real_sinature = template.message.signature.gsub(".sig.ed25519", "")
binding.pry