module Cinch::Plugins::EnCinch::Encryption::Base64
Constants
- Alphabet
Public Class Methods
decode(data)
click to toggle source
# File lib/cinch/plugins/encinch/encryption.rb, line 37 def self.decode(data) res = String.new data = data.dup.force_encoding("BINARY") data.chars.each_slice(12) do |slice| slice = slice.join left = right = 0 slice[0..5].each_char.with_index do |pi, i| right |= Alphabet.index(pi) << (i * 6) end slice[6..11].each_char.with_index do |pi, i| left |= Alphabet.index(pi) << (i * 6) end res << [left, right].pack('L>L>') end res end
encode(data)
click to toggle source
# File lib/cinch/plugins/encinch/encryption.rb, line 16 def self.encode(data) res = String.new data = data.dup.force_encoding("BINARY") data.chars.each_slice(8) do |slice| slice = slice.join left, right = slice.unpack('L>L>') 6.times do res << Alphabet[right & 0x3f] right >>= 6 end 6.times do res << Alphabet[left & 0x3f] left >>= 6 end end res end