class Trocla::Encryptions::Ssl
Public Instance Methods
decrypt(value)
click to toggle source
# File lib/trocla/encryptions/ssl.rb, line 13 def decrypt(value) plaintext = '' value.split(/\n/).each do |line| plaintext += private_key.private_decrypt(Base64.decode64(line)) if line end plaintext end
encrypt(value)
click to toggle source
# File lib/trocla/encryptions/ssl.rb, line 5 def encrypt(value) ciphertext = '' value.scan(/.{0,#{chunksize}}/m).each do |chunk| ciphertext += Base64.encode64(public_key.public_encrypt(chunk)).gsub("\n",'')+"\n" if chunk end ciphertext end
Private Instance Methods
chunksize()
click to toggle source
# File lib/trocla/encryptions/ssl.rb, line 23 def chunksize public_key.n.num_bytes - 11 end
option(key)
click to toggle source
# File lib/trocla/encryptions/ssl.rb, line 41 def option(key) config[key] end
private_key()
click to toggle source
# File lib/trocla/encryptions/ssl.rb, line 27 def private_key @private_key ||= begin file = require_option(:private_key) OpenSSL::PKey::RSA.new(File.read(file), nil) end end
public_key()
click to toggle source
# File lib/trocla/encryptions/ssl.rb, line 34 def public_key @public_key ||= begin file = require_option(:public_key) OpenSSL::PKey::RSA.new(File.read(file), nil) end end
require_option(key)
click to toggle source
# File lib/trocla/encryptions/ssl.rb, line 45 def require_option(key) val = option(key) raise "Config error: 'ssl_options' => :#{key} is not defined" if val.nil? val end