diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-05-03 22:33:28 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-09-29 21:00:26 +0900 |
| commit | 25eb9bded8bd60dcf186f393acf84a4e623b60e1 (patch) | |
| tree | 7063a480428daeca2e28f4fd3716c1544e4caa1d /ext | |
| parent | 30230ed9e66cfbb97f8ba6859c8313061de7d58b (diff) | |
win32/sspi: Rafactor pack/unpack
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/11722
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/win32/lib/win32/sspi.rb | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/ext/win32/lib/win32/sspi.rb b/ext/win32/lib/win32/sspi.rb index cbd9e899ee..b4bddc67b3 100644 --- a/ext/win32/lib/win32/sspi.rb +++ b/ext/win32/lib/win32/sspi.rb @@ -56,11 +56,11 @@ module Win32 # SecHandle struct class SecurityHandle def upper - @struct.unpack("LL")[1] + @struct.unpack1("x4L") end def lower - @struct.unpack("LL")[0] + @struct.unpack1("L") end def to_p @@ -129,7 +129,7 @@ module Win32 def unpack if ! @unpacked && @sec_buffer && @struct @bufferSize, @type = @sec_buffer.unpack("LL") - @buffer = @sec_buffer.unpack("LLP#{@bufferSize}")[2] + @buffer = @sec_buffer.unpack1("x8P#{@bufferSize}") @struct = nil @sec_buffer = nil @unpacked = true @@ -187,7 +187,7 @@ module Win32 def initialize(value) # convert to unsigned long - value = [value].pack("L").unpack("L").first + value &= 0xffffffff raise "#{value.to_s(16)} is not a recognized result" unless RESULT_MAP.key? value @value = value end @@ -290,7 +290,7 @@ module Win32 if token.include? B64_TOKEN_PREFIX # indicates base64 encoded token - token = token.strip.unpack("m")[0] + token = token.strip.unpack1("m") end outputBuffer = SecurityBuffer.new @@ -332,8 +332,7 @@ module Win32 end def encode_token(t) - # encode64 will add newlines every 60 characters so we need to remove those. - [t].pack("m").delete("\n") + [t].pack("m0") end end end |
