Sha256: 6d9488b96ab04bbd48ebba1edb07835a199de726c519e76517690338ee7456af

Contents?: true

Size: 961 Bytes

Versions: 7

Compression:

Stored size: 961 Bytes

Contents

# encoding: binary
# frozen_string_literal: true

RSpec.describe RbNaCl::GroupElement do
  let(:alice_private)  { vector :alice_private }
  let(:alice_public)   { vector :alice_public }

  let(:bob_public)     { vector :bob_public }

  let(:alice_mult_bob) { vector :alice_mult_bob }

  let(:degenerate_key) { RbNaCl::GroupElements::Curve25519::DEGENERATE_KEY }

  subject { described_class.new(bob_public) }

  it "multiplies integers with the base point" do
    expect(described_class.base.mult(alice_private).to_s).to eq alice_public
  end

  it "multiplies integers with arbitrary points" do
    expect(described_class.new(bob_public).mult(alice_private).to_s).to eq alice_mult_bob
  end

  it "serializes to bytes" do
    expect(subject.to_bytes).to eq bob_public
  end

  it "detects degenerate keys" do
    expect { described_class.new(degenerate_key).mult(alice_private) }.to raise_error RbNaCl::CryptoError
  end

  include_examples "serializable"
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rbnacl-7.1.1 spec/rbnacl/group_element_spec.rb
rbnacl-7.1.0 spec/rbnacl/group_element_spec.rb
rbnacl-7.0.0 spec/rbnacl/group_element_spec.rb
rbnacl-6.0.1 spec/rbnacl/group_element_spec.rb
rbnacl-6.0.0 spec/rbnacl/group_element_spec.rb
rbnacl-5.0.0 spec/rbnacl/group_element_spec.rb
rbnacl-4.0.2 spec/rbnacl/group_element_spec.rb