Sha256: da8e624b78510db8048f7ad4dc9dc388b887049b5d76858f144a7eb3e33084c2

Contents?: true

Size: 1.18 KB

Versions: 23

Compression:

Stored size: 1.18 KB

Contents

# -*- coding: binary -*-

module Rex
module Encoder

###
#
# This class performs basic XOR encoding.
#
###
class Xor

  attr_accessor :raw, :encoded, :badchars, :opts, :key, :fkey # :nodoc:

  #
  # wrap that in a wanna be static class
  #
  def self.encode(*args)
    self.new.encode(*args)
  end

  #
  # Return the class associated with this encoder.
  #
  def encoder()
    self.class::EncoderKlass
  end

  #
  # This method encodes the supplied data, taking into account the badchar
  # list, and returns the encoded buffer.
  #
  def encode(data, badchars = '', opts = { })
    self.raw      = data
    self.badchars = badchars
    self.opts     = opts

    # apply any transforms to the plaintext data
    data = _unencoded_transform(data)

    self.encoded, self.key, self.fkey = encoder().find_key_and_encode(data, badchars)

    # apply any transforms to the encoded data
    self.encoded = _encoded_transform(encoded)

    return _prepend() + encoded + _append()
  end

  protected
  def _unencoded_transform(data) # :nodoc:
    data
  end

  def _encoded_transform(data) # :nodoc:
    data
  end

  def _prepend() # :nodoc:
    ""
  end

  def _append() # :nodoc:
    ""
  end

end

end end

Version data entries

23 entries across 23 versions & 4 rubygems

Version Path
rex-encoder-0.1.7 lib/rex/encoder/xor.rb
rex-encoder-0.1.6 lib/rex/encoder/xor.rb
rex-encoder-0.1.5 lib/rex/encoder/xor.rb
rex-2.0.13 lib/rex/encoder/xor.rb
rex-2.0.12 lib/rex/encoder/xor.rb
rex-2.0.11 lib/rex/encoder/xor.rb
rex-encoder-0.1.4 lib/rex/encoder/xor.rb
rex-encoder-0.1.3 lib/rex/encoder/xor.rb
rex-encoder-0.1.2 lib/rex/encoder/xor.rb
rex-encoder-0.1.1 lib/rex/encoder/xor.rb
rex-encoder-0.1.0 lib/rex/encoder/xor.rb
rex-2.0.10 lib/rex/encoder/xor.rb
rex-2.0.9 lib/rex/encoder/xor.rb
rex-2.0.8 lib/rex/encoder/xor.rb
rex-2.0.7 lib/rex/encoder/xor.rb
rex-2.0.5 lib/rex/encoder/xor.rb
rex-2.0.4 lib/rex/encoder/xor.rb
dstruct-0.0.1 lib/rex/encoder/xor.rb
rex-2.0.3 lib/rex/encoder/xor.rb
librex-0.0.999 lib/rex/encoder/xor.rb