module Snapcat::Crypt

Constants

CIPHER
ENCRYPTION_KEY

Public Instance Methods

decrypt(data) click to toggle source
# File lib/snapcat/crypt.rb, line 8
def decrypt(data)
  cipher = OpenSSL::Cipher.new(CIPHER)
  cipher.decrypt
  cipher.key = ENCRYPTION_KEY
  decrypted_data = ''

  data.bytes.each_slice(16) do |slice|
    decrypted_data += cipher.update(slice.map(&:chr).join)
  end

  decrypted_data += cipher.final
end
encrypt(data) click to toggle source
# File lib/snapcat/crypt.rb, line 21
def encrypt(data)
  cipher = OpenSSL::Cipher.new(CIPHER)
  cipher.encrypt
  cipher.key = ENCRYPTION_KEY
  cipher.update(pkcs5_pad(data)) + cipher.final
end

Private Instance Methods

pkcs5_pad(data, blocksize = 16) click to toggle source
# File lib/snapcat/crypt.rb, line 30
def pkcs5_pad(data, blocksize = 16)
  pad = blocksize - (data.length % blocksize)
  "#{data}#{pad.chr * pad}"
end