Sha256: 79e04a517e799e66bf70b3c48954d7cbad12f8c9f36e16fc46f69486483e4b87
Contents?: true
Size: 1.21 KB
Versions: 3
Compression:
Stored size: 1.21 KB
Contents
module PGCrypto class KeyManager < Hash def []=(key, value) unless value.is_a?(Key) value = Key.new(value) end value.name = key super key, value end end class Key attr_accessor :name, :password, :value attr_reader :path attr_writer :armored def armored? @armored end def dearmored "#{'dearmor(' if armored?}'#{self}'#{')' if armored?}" end def encrypt(value) %[pgp_pub_encrypt('#{value}', #{dearmored})] end def initialize(options = {}) if options.is_a?(String) self.value = options elsif options.is_a?(Hash) options.each do |key, value| send("#{key}=", value) end end end def password? ", '#{password}'" if password end def path=(keyfile) keyfile = File.expand_path(keyfile) raise PGCrypto::Error, "#{keyfile} does not exist!" unless File.file?(keyfile) @path = keyfile self.value = File.read(keyfile) end def to_s value end def value=(key) if key =~ /^-----BEGIN PGP / self.armored = true else self.armored = false end @value = key.dup.freeze end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
pgcrypto-0.3.6 | lib/pgcrypto/key.rb |
pgcrypto-0.3.5 | lib/pgcrypto/key.rb |
pgcrypto-0.3.4 | lib/pgcrypto/key.rb |