nuntius 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,25 +1,30 @@
1
1
  module Nuntius
2
2
  class Key
3
+ attr_accessor :signature_key
4
+ attr_accessor :encryption_key
5
+
3
6
  def initialize(key_data)
4
- @key = OpenSSL::PKey::RSA.new(key_data)
7
+ case key_data
8
+ when Hash
9
+ self.signature_key = OpenSSL::PKey::RSA.new( key_data[:signature] )
10
+ self.encryption_key = OpenSSL::PKey::RSA.new( key_data[:encryption] )
11
+ when Nuntius::Key
12
+ self.signature_key = key_data.signature_key
13
+ self.encryption_key = key_data.encryption_key
14
+ else
15
+ self.signature_key = self.encryption_key = OpenSSL::PKey::RSA.new(key_data)
16
+ end
5
17
  end
6
18
 
7
19
  def private?
8
- @key.private?
9
- end
10
-
11
- def to_str
12
- @key.to_pem
13
- end
14
-
15
- def hash
16
- @key.hash
20
+ signature_key.private? && encryption_key.private?
17
21
  end
18
22
 
19
23
  def ==(key)
20
24
  case key
21
25
  when Nuntius::Key
22
- key.hash == self.hash
26
+ signature_key == key.signature_key &&
27
+ encryption_key == key.encryption_key
23
28
  else
24
29
  false
25
30
  end
@@ -28,20 +33,20 @@ module Nuntius
28
33
  def sign(string)
29
34
  digest = OpenSSL::Digest::SHA512.new.digest(string)
30
35
 
31
- @key.private_encrypt(digest)
36
+ signature_key.private_encrypt(digest)
32
37
  end
33
38
 
34
39
  def validate(message,signature)
35
40
  digest = OpenSSL::Digest::SHA512.new.digest(message)
36
- digest == @key.public_decrypt(signature)
41
+ digest == signature_key.public_decrypt(signature)
37
42
  end
38
43
 
39
44
  def encrypt(string)
40
- @key.public_encrypt(string)
45
+ encryption_key.public_encrypt(string)
41
46
  end
42
47
 
43
48
  def decrypt(string)
44
- @key.private_decrypt(string)
49
+ encryption_key.private_decrypt(string)
45
50
  end
46
51
  end
47
52
  end
@@ -1,3 +1,3 @@
1
1
  module Nuntius
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -3,10 +3,20 @@ require 'spec_helper'
3
3
 
4
4
  describe Nuntius::Key do
5
5
  it "should be created using another key" do
6
- @key1 = get_key('alice.pub')
6
+ @key1 = Nuntius::Key.new( get_key_data('alice.pub') )
7
7
  @key2 = Nuntius::Key.new(@key1)
8
8
 
9
- @key2.to_str.should == @key1.to_str
9
+ @key2.should == @key1
10
+ end
11
+
12
+ it "should handle different signing/encryption keys" do
13
+ @signature = get_key_data('bob.pub')
14
+ @encryption = get_key_data('alice.pub')
15
+
16
+ @key = Nuntius::Key.new({
17
+ :signature => @signature,
18
+ :encryption => @encryption
19
+ })
10
20
  end
11
21
 
12
22
  end
@@ -1,3 +1,6 @@
1
+ def get_key_data(key_name)
2
+ File.read( File.expand_path("../../keys/"+key_name, __FILE__) )
3
+ end
1
4
  def get_key(key_name)
2
- Nuntius::Key.new File.read( File.expand_path("../../keys/"+key_name, __FILE__) )
5
+ Nuntius::Key.new( get_key_data(key_name) )
3
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nuntius
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-19 00:00:00.000000000 Z
12
+ date: 2011-12-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70219398937400 !ruby/object:Gem::Requirement
16
+ requirement: &70165842054480 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70219398937400
24
+ version_requirements: *70165842054480
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70219398935880 !ruby/object:Gem::Requirement
27
+ requirement: &70165842053500 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 2.7.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70219398935880
35
+ version_requirements: *70165842053500
36
36
  description: Nuntius is a simple scheme to send and receive messages in a cryptographicaly
37
37
  secure and compatible way.
38
38
  email: me@sagmor.com
@@ -76,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
76
  version: '0'
77
77
  segments:
78
78
  - 0
79
- hash: 4207748026087643604
79
+ hash: 1925440983098606796
80
80
  required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
@@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  version: '0'
86
86
  segments:
87
87
  - 0
88
- hash: 4207748026087643604
88
+ hash: 1925440983098606796
89
89
  requirements: []
90
90
  rubyforge_project: nuntius
91
91
  rubygems_version: 1.8.10