Method: Rex::Text.b32decode
- Defined in:
- lib/rex/text/base32.rb
.b32decode(bytes_in) ⇒ Object
Base32 decoder
64 65 66 67 68 69 70 |
# File 'lib/rex/text/base32.rb', line 64 def self.b32decode(bytes_in) bytes = bytes_in.take_while {|c| c != 61} # strip padding n = (bytes.length * 5.0 / 8.0).floor p = bytes.length < 8 ? 5 - (n * 8) % 5 : 0 c = bytes.inject(0) {|m,o| (m << 5) + Base32.index(o.chr)} >> p (0..n-1).to_a.reverse.collect {|i| ((c >> i * 8) & 0xff).chr} end |