Sha256: eb2f47dcab8fc630caf87f0ce6a77c087722f0fb0b046a3fc3608d51156b2aac

Contents?: true

Size: 1.44 KB

Versions: 5

Compression:

Stored size: 1.44 KB

Contents

RSpec.describe COSE::Key do
  let(:ec2_cbor) do
    "\xA5\x01\x02\x03& \x01!X \x06\x0F\xBD\x82\xE5U\xC4\xDEl\f\x8F7?_O\xFB\xC1H\b8\x0E\xA4\xB7b\xA8\f\x89\xF5\xFBS\xC7u\"X \n\x19\x98\x15\xF2\x10\x99#\xBE[\xB6\xE7PCo\xC5h:\xD2$z\xD0\x03\xD5[\xD8su\x94$\x9A\xD9"
  end
  let(:ec2_pem) do
    <<~PEM
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBg+9guVVxN5sDI83P19P+8FICDgO
    pLdiqAyJ9ftTx3UKGZgV8hCZI75btudQQ2/FaDrSJHrQA9Vb2HN1lCSa2Q==
    -----END PUBLIC KEY-----
    PEM
  end
  let(:ec2_key) { OpenSSL::PKey::EC.new ec2_pem }
  let(:decoded) { COSE::Key.decode cbor }

  context 'for EC keys' do
    let(:cbor) { ec2_cbor }

    describe '.decode' do
      subject { decoded }
      it { should be_instance_of COSE::Key::EC2 }
    end

    describe '#raw' do
      subject { decoded.raw }
      it { should == ec2_cbor }
    end

    describe '#alg_key' do
      subject { decoded.alg_key }
      it { should == :ES256 }
    end

    describe '#crv_key' do
      subject { decoded.crv_key }
      it { should == :P256 }
    end

    describe '#crv_name' do
      subject { decoded.crv_name }
      it { should == 'prime256v1' }
    end

    describe '#digest' do
      subject { decoded.digest }
      it { should be_instance_of OpenSSL::Digest::SHA256 }
    end

    describe '#to_key' do
      subject { decoded.to_key }
      it { should be_instance_of OpenSSL::PKey::EC }
    end
  end

  context 'for RSA keys' do
    it :TODO
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cose-key-0.3.0 spec/cose/key_spec.rb
cose-key-0.2.0 spec/cose/key_spec.rb
cose-key-0.1.0 spec/cose/key_spec.rb
cose-key-0.0.5 spec/cose/key_spec.rb
cose-key-0.0.4 spec/cose/key_spec.rb