# 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 38 def config @config = @trocla.config['ssl_options'] @config ||= Hash.new end
# File lib/trocla/encryptions/ssl.rb, line 43 def option(key) config[key] end
# File lib/trocla/encryptions/ssl.rb, line 27 def private_key pass = nil file = require_option(:private_key) @private_key ||= OpenSSL::PKey::RSA.new(File.read(file), nil) end
# File lib/trocla/encryptions/ssl.rb, line 33 def public_key file = require_option(:public_key) @public_key ||= OpenSSL::PKey::RSA.new(File.read(file), nil) end
# File lib/trocla/encryptions/ssl.rb, line 47 def require_option(key) val = option(key) raise "Config error: 'ssl_options' => :#{key} is not defined" if val.nil? val end