module Smbhash::Methods19
Public Instance Methods
convert_encoding(to, from, str)
click to toggle source
# File lib/smbhash/methods19.rb, line 21 def convert_encoding(to, from, str) if same_encoding?(to, from) str else str.encode(to, from) end end
str_to_key(str)
click to toggle source
# File lib/smbhash/methods19.rb, line 3 def str_to_key(str) key = "\000" * 8 key.setbyte(0, str.getbyte(0) >> 1); key.setbyte(1, ((str.getbyte(0) & 0x01) << 6) | (str.getbyte(1) >> 2)); key.setbyte(2, ((str.getbyte(1) & 0x03) << 5) | (str.getbyte(2) >> 3)); key.setbyte(3, ((str.getbyte(2) & 0x07) << 4) | (str.getbyte(3) >> 4)); key.setbyte(4, ((str.getbyte(3) & 0x0F) << 3) | (str.getbyte(4) >> 5)); key.setbyte(5, ((str.getbyte(4) & 0x1F) << 2) | (str.getbyte(5) >> 6)); key.setbyte(6, ((str.getbyte(5) & 0x3F) << 1) | (str.getbyte(6) >> 7)); key.setbyte(7, str.getbyte(6) & 0x7F); key.size.times do |i| key.setbyte(i, (key.getbyte(i) << 1)); end key end