Sha256: 9c594efa4bf087a73366cce543e83b68d61d9341dc1d083e05664adcd43d16fa

Contents?: true

Size: 1.19 KB

Versions: 4

Compression:

Stored size: 1.19 KB

Contents

# encoding: binary
describe RbNaCl::VerifyKey do
  let(:signing_key)    { vector :sign_private }
  let(:verify_key)     { vector :sign_public }

  let(:message)        { vector :sign_message }
  let(:signature)      { vector :sign_signature }
  let(:bad_signature)  { sig = signature.dup; sig[0] = (sig[0].ord + 1).chr; sig }

  subject { RbNaCl::SigningKey.new(signing_key).verify_key }

  it "verifies correct signatures" do
    subject.verify(signature, message).should be_true
  end

  it "raises when asked to verify a bad signature" do
    expect { subject.verify(bad_signature, message) }.to raise_exception RbNaCl::BadSignatureError
  end

  it "raises when asked to verify a short signature" do
    expect { subject.verify(bad_signature[0,63], message) }.to raise_exception RbNaCl::LengthError
  end

  it "serializes to bytes" do
    subject.to_bytes.should eq verify_key
  end

  it "initializes from bytes" do
    described_class.new(verify_key).to_s.should eq verify_key
  end

  include_examples "key equality" do
    let(:key_bytes) { verify_key }
    let(:key)       { described_class.new(verify_key) }
    let(:other_key) { described_class.new("B"*32) }
  end

  include_examples "serializable"
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rbnacl-3.1.0 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-3.0.1 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-3.0.0 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-2.0.0 spec/rbnacl/signatures/ed25519/verify_key_spec.rb