class Rex::Proto::Kerberos::CredentialCache::Credential
This class provides a representation of a Credential
stored in the Kerberos
Credential
Cache
.
Attributes
@!attribute addrs
@return [Array]
@!attribute auth_data
@return [Array]
@!attribute client
@return [Rex::Proto::Kerberos::CredentialCache::Principal]
@!attribute is_skey
@return [Fixnum]
@!attribute key
@return [Rex::Proto::Kerberos::CredentialCache::KeyBlock]
@!attribute second_ticket
@return [String]
@!attribute server
@return [Rex::Proto::Kerberos::CredentialCache::Principal]
@!attribute ticket
@return [String]
@!attribute time
@return [Rex::Proto::Kerberos::CredentialCache::Time]
@!attribute tkt_flags
@return [Fixnum]
Public Instance Methods
Encodes the Rex::Proto::Kerberos::CredentialCache::Credential
into an String
@return [String] encoded credential
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 42 def encode encoded = '' encoded << encode_client encoded << encode_server encoded << encode_key encoded << encode_time encoded << encode_is_skey encoded << encode_tkt_flags encoded << encode_addrs encoded << encode_auth_data encoded << encode_ticket encoded << encode_second_ticket end
Private Instance Methods
Encodes the addrs field
@return [String] @raise [NotImplementedError] if there are addresses to encode
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 104 def encode_addrs encoded = '' if addrs.length > 0 raise ::NotImplementedError, 'CredentialCache: Credential addresses encoding not supported' end encoded << [addrs.length].pack('N') encoded end
Encodes the auth_data
field
@return [String]
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 116 def encode_auth_data encoded = '' if auth_data.length > 0 raise ::RuntimeError, 'CredentialCache: Credential auth_data encoding not supported' end encoded << [auth_data.length].pack('N') encoded end
Encodes the client field
@return [String]
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 61 def encode_client client.encode end
Encodes the is_skey
field
@return [String]
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 89 def encode_is_skey [is_skey].pack('C') end
Encodes the key field
@return [String]
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 75 def encode_key key.encode end
Encodes the second_ticket
field
@return [String]
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 139 def encode_second_ticket encoded = '' encoded << [second_ticket.length].pack('N') encoded << second_ticket encoded end
Encodes the server field
@return [String]
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 68 def encode_server server.encode end
Encodes the ticket field
@return [String]
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 128 def encode_ticket encoded = '' encoded << [ticket.length].pack('N') encoded << ticket encoded end
Encodes the time field
@return [String]
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 82 def encode_time time.encode end
Encodes the tkt_flags
field
@return [String]
# File lib/rex/proto/kerberos/credential_cache/credential.rb, line 96 def encode_tkt_flags [tkt_flags].pack('N') end