class Crypto::Key
Attributes
digest_string[RW]
Public Class Methods
from_file(filename, digest_string)
click to toggle source
# File lib/ampk/crypto.rb, line 24 def self.from_file(filename, digest_string) self.new(File.read(filename), digest_string) end
new(data, digest_string)
click to toggle source
# File lib/ampk/crypto.rb, line 17 def initialize(data, digest_string) @public = (data =~ /^-----BEGIN (RSA|DSA) PRIVATE KEY-----$/).nil? @prefix = @public ? "public" : "private" @key = OpenSSL::PKey::RSA.new(data) @digest_string = digest_string end
Public Instance Methods
decrypt(text)
click to toggle source
# File lib/ampk/crypto.rb, line 32 def decrypt(text) @key.send("#{@prefix}_decrypt", Base64.decode64(text)) end
digest()
click to toggle source
# File lib/ampk/crypto.rb, line 48 def digest OpenSSL::Digest::MD5.new(@digest_string) end
encrypt(text)
click to toggle source
# File lib/ampk/crypto.rb, line 28 def encrypt(text) Base64.encode64(@key.send("#{@prefix}_encrypt", text)) end
public?()
click to toggle source
# File lib/ampk/crypto.rb, line 44 def public? @public end
sign(data)
click to toggle source
# File lib/ampk/crypto.rb, line 36 def sign(data) Base64.encode64(@key.sign(digest, data)) end
verify(signature, data)
click to toggle source
# File lib/ampk/crypto.rb, line 40 def verify(signature, data) @key.verify(digest, Base64.decode64(signature), data) end