class Smaak::Crypto

Public Class Methods

decode64(data) click to toggle source
# File lib/smaak/crypto.rb, line 17
def self.decode64(data)
  Base64.strict_decode64(data)
end
decrypt(data, private_key) click to toggle source
# File lib/smaak/crypto.rb, line 35
def self.decrypt(data, private_key)
  private_key.private_decrypt(Base64.strict_decode64(data))
end
encode64(data) click to toggle source
# File lib/smaak/crypto.rb, line 13
def self.encode64(data)
  Base64.strict_encode64(data)
end
encrypt(data, public_key) click to toggle source
# File lib/smaak/crypto.rb, line 31
def self.encrypt(data, public_key)
  Base64.strict_encode64(public_key.public_encrypt(data))
end
generate_nonce() click to toggle source
# File lib/smaak/crypto.rb, line 9
def self.generate_nonce
  SecureRandom.random_number(10000000000)
end
obfuscate_psk(psk) click to toggle source
# File lib/smaak/crypto.rb, line 5
def self.obfuscate_psk(psk)
  Digest::MD5.hexdigest(psk.reverse)
end
sign_data(data, private_key) click to toggle source
# File lib/smaak/crypto.rb, line 21
def self.sign_data(data, private_key)
  digest = OpenSSL::Digest::SHA256.new
  private_key.sign(digest, Smaak::Crypto.encode64(data))
end
sink(stream) click to toggle source
# File lib/smaak/crypto.rb, line 39
def self.sink(stream)
 data = ""
 while t = stream.gets do
   data = data + t
 end
 data
end
verify_signature(signature, data, public_key) click to toggle source
# File lib/smaak/crypto.rb, line 26
def self.verify_signature(signature, data, public_key)
  digest = OpenSSL::Digest::SHA256.new
  public_key.verify(digest, signature, data)
end