Sha256: cdd60af681fe72028fc2fc4053589360a459c587a53aa9702e1777588b68832b
Contents?: true
Size: 1.3 KB
Versions: 2
Compression:
Stored size: 1.3 KB
Contents
require 'krb5/mixin/packer' class KRB5 class Entry include KRB5::Mixin::Packer # @return [KRB5::Keytab] attr_accessor :keytab attr_accessor :principal attr_accessor :timestamp attr_accessor :kvno8 attr_accessor :enctype attr_accessor :key attr_accessor :kvno32 # Place to store byte array for #to_bytes # @return [Sting, nil] attr_accessor :bytes def initialize(keytab) @keytab = keytab end # The 32-bit key version overrides the 8-bit key version. # @return [Integer] key version number def kvno kvno32 ? kvno32 : kvno8 end # entry ::= # principal # timestamp (32 bits) # key version (8 bits) # enctype (16 bits) # key length (16 bits) # key contents # key version (32 bits) [in release 1.14 and later] def to_bytes @bytes = [] pack_bytes(principal.to_bytes) pack_int32(timestamp.strftime('%s').to_i) pack_int8(kvno8) pack_int16(enctype) pack_int16(key.length) pack_bytes(key) pack_int32(kvno32) if kvno32 @bytes.join end def ==(other) %i[principal timestamp kvno8 enctype key kvno32].each do |state| return false unless other.send(state) == self.send(state) end true end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
krb5-ruby-0.2.3 | lib/krb5/entry.rb |
krb5-ruby-0.2.2 | lib/krb5/entry.rb |