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