Sha256: 63dd378a426c2ad3e8855ed51ab6d388091df2aeddf20e023a6eb8dff9b2ecb4

Contents?: true

Size: 1 KB

Versions: 51

Compression:

Stored size: 1 KB

Contents

require 'spec_helper'

RSpec.describe RubySMB::Crypto::KDF do
  describe '.counter_mode' do
    it 'generates the expected 128-bit key' do
      expected_key = "\x3c\x5e\x0a\x1b\x0a\xce\xa5\xb2\x64\x3f\xab\x78\xdc\x82\x31\x3b".b
      expect(described_class.counter_mode('ki', 'label', 'context')).to eq(expected_key)
    end

    it 'generates the expected 256-bit key' do
      expected_key =
        "\x33\x4d\xa9\x6d\x24\x7e\xcb\x14\xf6\x24\x00\x97\x26\x51\xd5\xb4"\
        "\x54\x5f\xda\x95\xf0\x5a\xcb\x25\x92\x57\xae\x71\x1c\x37\x20\x5b".b
      expect(described_class.counter_mode('ki', 'label', 'context', length: 256)).to eq(expected_key)
    end

    it 'raises the expected exception when an error occurs' do
      allow(OpenSSL::Digest).to receive(:new).and_raise(OpenSSL::OpenSSLError)
      expect { described_class.counter_mode('ki', 'label', 'context') }.to raise_error(
        RubySMB::Error::EncryptionError,
        "Crypto::KDF.counter_mode OpenSSL error: OpenSSL::OpenSSLError"
      )
    end
  end
end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
ruby_smb-3.3.13 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.12 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.11 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.10 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.9 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.7 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.6 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.5 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.4 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.3 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.2 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.1 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.3.0 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.2.8 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.2.7 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.2.6 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.2.5 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.2.4 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.2.3 spec/lib/ruby_smb/crypto_spec.rb
ruby_smb-3.2.2 spec/lib/ruby_smb/crypto_spec.rb