Sha256: 266524508e35b612b9dca0d20456c6890ed9d41f78c50f4eff4b529088476262

Contents?: true

Size: 1.4 KB

Versions: 20

Compression:

Stored size: 1.4 KB

Contents

RSpec.describe Epics::Key do

  subject { described_class.new( File.read(File.join( File.dirname(__FILE__), 'fixtures', 'e002.pem'))) }

  describe '#public_digest' do

    it 'will calculate the digest as the specification suggests' do
      expect(subject.public_digest).to eq("rwIxSUJAVEFDQ0sdYe+CybdspMllDG6ArNtdCzUbT1E=")
    end
  end


  describe '#sign' do
    # echo QwpW2a/Cu43TmibTIABrLuyZsiWY9oL8fARob0YoytU= | base64 -d | openssl dgst -sha256 -sign spec/fixtures/e002.pem -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:32 | base64 -w0
    let(:openssl) { "bZyyz4vPqRTyU7hfJ1cv6FgihhQOi8NTbk8nSuPEoXeuODJOQkCvxRDw1QoUGa181EbaPACYwJbQ9uwgwgb/b3k+bQ4KdJzCjbCrh7rKmQvLmnLgfQWIxp5hZdw7ebaR36rlpoHQ8yzlm0hhVLCDu2+HMIu5SA4kEd4ci9ZfVRm+aDVOwQZNLXNyKWAW/ZYkbsH+TzX4euIh831JBxGq967U5DVz6Aa8qqJPUafYiSE4H8x36Nw3qW0ib2DDcvGFTqtA6MeJyI1Quzko5+kSdnZkpIeZr/SXB1WnocYWR1oYoVG4+P+cMyCNiYSV4/NVEL4jmUbfdCSmUYo5cfPlJg==" }

    # r = subject.recover(sig)
    # masked_db = r[0..222]
    # hm = r[223..-2]
    # db_mask = MGF1.new.generate(hm, masked_db.size)
    # db = MGF1.new.xor(masked_db, db_mask)
    # salt = db[-32..-1]
    # Base64.encode64(salt)
    let(:salt) { "HkCke9oBSGTo2J20Xq8LZ/ouRHfB/ySlXf4+Cr45RV0=" }

    let(:dsi) { OpenSSL::Digest::SHA256.new.digest("ruby is great") }

    it 'will be compliant with openssl' do
      expect( subject.sign( dsi, Base64.decode64(salt)) ).to eq(openssl)
    end

  end


end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
epics-1.8.1 spec/key_spec.rb
epics-1.8.0 spec/key_spec.rb
epics-1.7.2 spec/key_spec.rb
epics-1.7.1 spec/key_spec.rb
epics-1.7.0 spec/key_spec.rb
epics-1.6.0 spec/key_spec.rb
epics-1.5.2 spec/key_spec.rb
epics-1.5.1 spec/key_spec.rb
epics-1.5.0 spec/key_spec.rb
epics-1.4.1 spec/key_spec.rb
epics-1.4.0 spec/key_spec.rb
epics-1.3.1 spec/key_spec.rb
epics-1.3.0 spec/key_spec.rb
epics-1.2.2 spec/key_spec.rb
epics-1.2.1 spec/key_spec.rb
epics-1.2.0 spec/key_spec.rb
epics-1.1.2 spec/key_spec.rb
epics-1.1.1 spec/key_spec.rb
epics-1.1.0 spec/key_spec.rb
epics-1.0.0 spec/key_spec.rb