class GPG::Engine
Attributes
runner[RW]
Public Class Methods
new(runner = nil)
click to toggle source
# File lib/pgp/gpg/engine.rb, line 7 def initialize(runner = nil) self.runner = runner || GPG::Runner.new end
Public Instance Methods
decrypt(encrypted_data, passphrase=nil)
click to toggle source
# File lib/pgp/gpg/engine.rb, line 46 def decrypt(encrypted_data, passphrase=nil) log("Decrypt") validate_gpg_version data = '' result = false GPG::TempPathHelper.create do |path1| GPG::TempPathHelper.create do |path2| File.write(path1, encrypted_data) result = runner.decrypt_file(path1, path2, passphrase) data = File.read(path2) if result end end [result, data] end
delete_all_keys()
click to toggle source
# File lib/pgp/gpg/engine.rb, line 108 def delete_all_keys delete_all_private_keys delete_all_public_keys end
delete_all_private_keys()
click to toggle source
# File lib/pgp/gpg/engine.rb, line 113 def delete_all_private_keys log('Delete all private keys') validate_gpg_version runner.read_private_key_fingerprints.each do |k| runner.delete_private_key k end end
delete_all_public_keys()
click to toggle source
# File lib/pgp/gpg/engine.rb, line 121 def delete_all_public_keys log('Delete all public keys') validate_gpg_version runner.read_public_key_fingerprints.each do |k| runner.delete_public_key k end end
encrypt(plaintext_data, recipients)
click to toggle source
# File lib/pgp/gpg/engine.rb, line 66 def encrypt(plaintext_data, recipients) log("Encrypt") raise 'Recipients cannot be empty' if recipients.empty? validate_gpg_version data = '' result = false GPG::TempPathHelper.create do |path1| GPG::TempPathHelper.create do |path2| File.write(path1, plaintext_data) result = runner.encrypt_file(path1, path2, recipients) data = File.read(path2) if result end end [result, data] end
import_key(key_contents)
click to toggle source
# File lib/pgp/gpg/engine.rb, line 11 def import_key(key_contents) log("Import Key") validate_gpg_version result = [] GPG::TempPathHelper.create do |path1| File.write(path1, key_contents) result = runner.import_key_from_file(path1) end result end
read_recipients()
click to toggle source
# File lib/pgp/gpg/engine.rb, line 129 def read_recipients validate_gpg_version public_recipients = runner.read_public_key_recipients private_recipients = runner.read_private_key_recipients (public_recipients + private_recipients).uniq end
sign(plaintext_data, passphrase=nil)
click to toggle source
# File lib/pgp/gpg/engine.rb, line 88 def sign(plaintext_data, passphrase=nil) log("Sign") validate_gpg_version data = '' result = false GPG::TempPathHelper.create do |path1| GPG::TempPathHelper.create do |path2| File.write(path1, plaintext_data) result = runner.sign_file(path1, path2, passphrase) data = File.read(path2) if result end end [result, data] end
verify_signature(signature_data)
click to toggle source
# File lib/pgp/gpg/engine.rb, line 26 def verify_signature(signature_data) log("Verify Signature") validate_gpg_version data = '' result = false GPG::TempPathHelper.create do |path1| GPG::TempPathHelper.create do |path2| File.write(path1, signature_data) result = runner.verify_signature_file(path1, path2) data = File.read(path2) if result end end [result, data] end
Protected Instance Methods
validate_gpg_version()
click to toggle source
# File lib/pgp/gpg/engine.rb, line 138 def validate_gpg_version raise 'GPG Version is incorrect' unless runner.version_default.start_with?('2.') end