Sha256: eb5742dfc72f169efbb8a17a7078bbedd6a406e02b7ed3a490f82cef6c15e64b
Contents?: true
Size: 1.29 KB
Versions: 3
Compression:
Stored size: 1.29 KB
Contents
require 'krb5/mixin/packer' class KRB5 class Principal include KRB5::Mixin::Packer # @return [KRB5::Keytab] attr_accessor :keytab attr_accessor :realm, :components, :name_type # Place to store byte array for #to_bytes # @return [Sting, nil] attr_accessor :bytes def initialize(keytab) @keytab = keytab @components = [] end def to_s components.join('/') + "@" + realm end # principal ::= # count of components (16 bits) [includes realm in version 1] # realm (data) # component1 (data) # component2 (data) # ... # name type (32 bits) [omitted in version 1] def to_bytes @bytes = [] pack_count_of_components pack_data(realm) components.each do |component| pack_data(component) end pack_int32(name_type) @bytes.join end def pack_count_of_components if keytab.version == 1 # Component length includes realm in v1 Keytabs pack_int16(components.length + 1) elsif keytab.version == 2 pack_int16(components.length) end end def ==(other) %i[realm components name_type].each do |state| return false unless other.send(state) == self.send(state) end true end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
krb5-ruby-0.2.5 | lib/krb5/principal.rb |
krb5-ruby-0.2.4 | lib/krb5/principal.rb |
krb5-ruby-0.2.3 | lib/krb5/principal.rb |