Sha256: 4101d1ad444f0f9b19fd71e7e2422804cde489045c26b3acec715ad4a3f544f0

Contents?: true

Size: 1.24 KB

Versions: 8

Compression:

Stored size: 1.24 KB

Contents

# encoding: binary
# frozen_string_literal: true

RSpec.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) do
    sig = signature.dup
    sig[0] = (sig[0].ord + 1).chr
    sig
  end

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

  it "verifies correct signatures" do
    expect(subject.verify(signature, message)).to eq 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
    expect(subject.to_bytes).to eq verify_key
  end

  it "initializes from bytes" do
    expect(described_class.new(verify_key).to_s).to 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

8 entries across 8 versions & 1 rubygems

Version Path
rbnacl-7.0.0 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-6.0.1 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-6.0.0 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-5.0.0 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-4.0.2 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-4.0.1 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-4.0.0 spec/rbnacl/signatures/ed25519/verify_key_spec.rb
rbnacl-4.0.0.pre spec/rbnacl/signatures/ed25519/verify_key_spec.rb