Class: Crypto::Key
- Inherits:
-
Object
- Object
- Crypto::Key
- Defined in:
- lib/ampk/crypto.rb
Instance Attribute Summary collapse
-
#digest_string ⇒ Object
Returns the value of attribute digest_string.
Class Method Summary collapse
Instance Method Summary collapse
- #decrypt(text) ⇒ Object
- #digest ⇒ Object
- #encrypt(text) ⇒ Object
-
#initialize(data, digest_string) ⇒ Key
constructor
A new instance of Key.
- #public? ⇒ Boolean
- #sign(data) ⇒ Object
- #verify(signature, data) ⇒ Object
Constructor Details
#initialize(data, digest_string) ⇒ Key
Returns a new instance of Key.
17 18 19 20 21 22 |
# 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 |
Instance Attribute Details
#digest_string ⇒ Object
Returns the value of attribute digest_string.
16 17 18 |
# File 'lib/ampk/crypto.rb', line 16 def digest_string @digest_string end |
Class Method Details
.from_file(filename, digest_string) ⇒ Object
24 25 26 |
# File 'lib/ampk/crypto.rb', line 24 def self.from_file(filename, digest_string) self.new(File.read(filename), digest_string) end |
Instance Method Details
#decrypt(text) ⇒ Object
32 33 34 |
# File 'lib/ampk/crypto.rb', line 32 def decrypt(text) @key.send("#{@prefix}_decrypt", Base64.decode64(text)) end |
#digest ⇒ Object
48 49 50 |
# File 'lib/ampk/crypto.rb', line 48 def digest OpenSSL::Digest::MD5.new(@digest_string) end |
#encrypt(text) ⇒ Object
28 29 30 |
# File 'lib/ampk/crypto.rb', line 28 def encrypt(text) Base64.encode64(@key.send("#{@prefix}_encrypt", text)) end |
#public? ⇒ Boolean
44 45 46 |
# File 'lib/ampk/crypto.rb', line 44 def public? @public end |
#sign(data) ⇒ Object
36 37 38 |
# File 'lib/ampk/crypto.rb', line 36 def sign(data) Base64.encode64(@key.sign(digest, data)) end |
#verify(signature, data) ⇒ Object
40 41 42 |
# File 'lib/ampk/crypto.rb', line 40 def verify(signature, data) @key.verify(digest, Base64.decode64(signature), data) end |