Sha256: fe7e5640f241f00592503bdd8d7c8c66e13593e89683718c65b8d1bb777c3f24

Contents?: true

Size: 1.1 KB

Versions: 61

Compression:

Stored size: 1.1 KB

Contents

# -*- encoding: utf-8 -*-

require_relative 'common'
require 'hexapdf/encryption/arc4'

describe HexaPDF::Encryption::ARC4 do
  include EncryptionAlgorithmInterfaceTests

  before do
    @algorithm_class = Class.new do
      prepend HexaPDF::Encryption::ARC4

      def initialize(key)
        @data = key
      end

      def process(data)
        raise if data.empty?
        result = @data << data
        @data = ''
        result
      end
    end
  end

  it "correctly uses klass.encrypt and klass.decrypt" do
    assert_equal('mykeydata', @algorithm_class.encrypt('mykey', 'data'))
    assert_equal('mykeydata', @algorithm_class.decrypt('mykey', 'data'))
  end

  it "correctly uses klass.encryption_fiber and klass.decryption_fiber" do
    f = Fiber.new { Fiber.yield('first'); Fiber.yield(''); 'second' }
    assert_equal('mykeyfirstsecond',
                 TestHelper.collector(@algorithm_class.encryption_fiber('mykey', f)))
    f = Fiber.new { Fiber.yield('first'); 'second' }
    assert_equal('mykeyfirstsecond',
                 TestHelper.collector(@algorithm_class.decryption_fiber('mykey', f)))
  end
end

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
hexapdf-0.11.7 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.11.6 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.11.5 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.11.4 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.11.3 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.11.2 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.11.1 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.11.0 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.10.0 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.9.3 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.9.2 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.9.1 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.9.0 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.8.0 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.7.0 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.6.0 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.5.0 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.4.0 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.3.0 test/hexapdf/encryption/test_arc4.rb
hexapdf-0.2.0 test/hexapdf/encryption/test_arc4.rb