# 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
# File lib/trocla/encryptions/ssl.rb, line 5 def encrypt(value) ciphertext = '' value.scan(/.{0,#{chunksize}}/).each do |chunk| ciphertext += Base64.encode64(public_key.public_encrypt(chunk)).gsub("\n",'')+"\n" if chunk end ciphertext end
# File lib/trocla/encryptions/ssl.rb, line 23 def chunksize public_key.n.num_bytes - 11 end
# File lib/trocla/encryptions/ssl.rb, line 41 def option(key) config[key] end
# 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
# 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
# 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