class Rex::Proto::Kerberos::CredentialCache::Principal

This class provides a representation of a Principal stored in the Kerberos Credential Cache.

Attributes

components[RW]

@!attribute components

@return [Array<String>]
name_type[RW]

@!attribute name_type

@return [Fixnum]
realm[RW]

@!attribute realm

@return [String]

Public Instance Methods

encode() click to toggle source

Encodes the Rex::Proto::Kerberos::CredentialCache::Principal into an String

@return [String] encoded principal

# File lib/rex/proto/kerberos/credential_cache/principal.rb, line 21
def encode
  encoded = ''
  encoded << encode_name_type
  encoded << [components.length].pack('N')
  encoded << encode_realm
  encoded << encode_components

  encoded
end

Private Instance Methods

encode_components() click to toggle source

Encodes the components field

@return [String]

# File lib/rex/proto/kerberos/credential_cache/principal.rb, line 54
def encode_components
  encoded = ''

  components.each do |c|
    encoded << [c.length].pack('N')
    encoded << c
  end

  encoded
end
encode_name_type() click to toggle source

Encodes the name_type field

@return [String]

# File lib/rex/proto/kerberos/credential_cache/principal.rb, line 36
def encode_name_type
  [name_type].pack('N')
end
encode_realm() click to toggle source

Encodes the realm field

@return [String]

# File lib/rex/proto/kerberos/credential_cache/principal.rb, line 43
def encode_realm
  encoded = ''
  encoded << [realm.length].pack('N')
  encoded << realm

  encoded
end