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}}/).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
config() click to toggle source
# File lib/trocla/encryptions/ssl.rb, line 38
def config
  @config = @trocla.config['ssl_options']
  @config ||= Hash.new
end
option(key) click to toggle source
# File lib/trocla/encryptions/ssl.rb, line 43
def option(key)
  config[key]
end
private_key() click to toggle source
# 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
public_key() click to toggle source
# 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
require_option(key) click to toggle source
# 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