Sha256: bd335e267d218f18a3b45a8e5572fcc0581af60a7d0d67fe689ea94367656fd4

Contents?: true

Size: 1.25 KB

Versions: 7

Compression:

Stored size: 1.25 KB

Contents

# -*- coding: binary -*-

module Rex
  module Proto
    module Kerberos
      module Pac
        class Element

          include Rex::Proto::Kerberos::Crypto
          include Rex::Proto::Kerberos::Pac

          def self.attr_accessor(*vars)
            @attributes ||= []
            @attributes.concat vars
            super(*vars)
          end

          # Retrieves the element class fields
          #
          # @return [Array]
          def self.attributes
            @attributes
          end

          def initialize(options = {})
            self.class.attributes.each do |attr|
              if options.has_key?(attr)
                m = (attr.to_s + '=').to_sym
                self.send(m, options[attr])
              end
            end
          end

          # Retrieves the element instance fields
          #
          # @return [Array]
          def attributes
            self.class.attributes
          end

          # Encodes the Rex::Proto::Kerberos::Pac::Element into an String. This
          # method has been designed to be overridden by subclasses.
          #
          # @raise [NoMethodError]
          def encode
            raise ::NoMethodError, 'Method designed to be overridden'
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rex-2.0.13 lib/rex/proto/kerberos/pac/element.rb
rex-2.0.12 lib/rex/proto/kerberos/pac/element.rb
rex-2.0.11 lib/rex/proto/kerberos/pac/element.rb
rex-2.0.10 lib/rex/proto/kerberos/pac/element.rb
rex-2.0.9 lib/rex/proto/kerberos/pac/element.rb
rex-2.0.8 lib/rex/proto/kerberos/pac/element.rb
rex-2.0.7 lib/rex/proto/kerberos/pac/element.rb