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