Creates binary representations of a SecBufferDesc structure, including the SecBuffer contained inside.
Constants
No documentation available
No documentation available
No documentation available
Class Methods
ext/win32/lib/win32/sspi.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/ext/win32/lib/win32/sspi.rb, line 92
def initialize(buffer = nil)
@buffer = buffer || "\0" * TOKENBUFSIZE
@bufferSize = @buffer.length
@type = SECBUFFER_TOKEN
end
No documentation available
Instance Methods
ext/win32/lib/win32/sspi.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/ext/win32/lib/win32/sspi.rb, line 98
def bufferSize
unpack
@bufferSize
end
No documentation available
ext/win32/lib/win32/sspi.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/ext/win32/lib/win32/sspi.rb, line 103
def bufferType
unpack
@type
end
No documentation available
#
ext/win32/lib/win32/sspi.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/ext/win32/lib/win32/sspi.rb, line 113
def to_p
# Assumption is that when to_p is called we are going to get a packed structure. Therefore,
# set @unpacked back to nil so we know to unpack when accessors are next accessed.
@unpacked = nil
# Assignment of inner structure to variable is very important here. Without it,
# will not be able to unpack changes to the structure. Alternative, nested unpacks,
# does not work (i.e. @struct.unpack("LLP12")[2].unpack("LLP12") results in "no associated pointer")
@sec_buffer ||= [@bufferSize, @type, @buffer].pack("LLP")
@struct ||= [SECBUFFER_VERSION, 1, @sec_buffer].pack("LLP")
end
No documentation available
#
ext/win32/lib/win32/sspi.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/ext/win32/lib/win32/sspi.rb, line 108
def token
unpack
@buffer
end
No documentation available
#
ext/win32/lib/win32/sspi.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/ext/win32/lib/win32/sspi.rb, line 129
def unpack
if ! @unpacked && @sec_buffer && @struct
@bufferSize, @type = @sec_buffer.unpack("LL")
@buffer = @sec_buffer.unpack("LLP#{@bufferSize}")[2]
@struct = nil
@sec_buffer = nil
@unpacked = true
end
end
Unpacks the SecurityBufferDesc structure into member variables. We only want to do this once per struct, so the struct is deleted after unpacking.