Class: Smaak::Crypto
- Inherits:
-
Object
- Object
- Smaak::Crypto
- Defined in:
- lib/smaak/crypto.rb
Class Method Summary collapse
- .decode64(data) ⇒ Object
- .decrypt(data, private_key) ⇒ Object
- .encode64(data) ⇒ Object
- .encrypt(data, public_key) ⇒ Object
- .generate_nonce ⇒ Object
- .obfuscate_psk(psk) ⇒ Object
- .sign_data(data, private_key) ⇒ Object
- .sink(stream) ⇒ Object
- .verify_signature(signature, data, public_key) ⇒ Object
Class Method Details
.decode64(data) ⇒ Object
17 18 19 |
# File 'lib/smaak/crypto.rb', line 17 def self.decode64(data) Base64.strict_decode64(data) end |
.decrypt(data, private_key) ⇒ Object
35 36 37 |
# File 'lib/smaak/crypto.rb', line 35 def self.decrypt(data, private_key) private_key.private_decrypt(Base64.strict_decode64(data)) end |
.encode64(data) ⇒ Object
13 14 15 |
# File 'lib/smaak/crypto.rb', line 13 def self.encode64(data) Base64.strict_encode64(data) end |
.encrypt(data, public_key) ⇒ Object
31 32 33 |
# File 'lib/smaak/crypto.rb', line 31 def self.encrypt(data, public_key) Base64.strict_encode64(public_key.public_encrypt(data)) end |
.generate_nonce ⇒ Object
9 10 11 |
# File 'lib/smaak/crypto.rb', line 9 def self.generate_nonce SecureRandom.random_number(10000000000) end |
.obfuscate_psk(psk) ⇒ Object
5 6 7 |
# File 'lib/smaak/crypto.rb', line 5 def self.obfuscate_psk(psk) Digest::MD5.hexdigest(psk.reverse) end |
.sign_data(data, private_key) ⇒ Object
21 22 23 24 |
# 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) ⇒ Object
39 40 41 42 43 44 45 |
# 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) ⇒ Object
26 27 28 29 |
# 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 |