rrba 1.0.0
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.
- data/.gemtest +0 -0
- data/History.txt +5 -0
- data/LICENSE +339 -0
- data/Manifest.txt +15 -0
- data/README.txt +28 -0
- data/Rakefile +37 -0
- data/install.rb +1098 -0
- data/lib/rrba.rb +3 -0
- data/lib/rrba/error.rb +6 -0
- data/lib/rrba/server.rb +59 -0
- data/lib/rrba/user.rb +38 -0
- data/test/mock.rb +149 -0
- data/test/stub/odba.rb +13 -0
- data/test/suite.rb +8 -0
- data/test/test_server.rb +178 -0
- data/test/test_user.rb +63 -0
- metadata +102 -0
data/test/test_user.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# TestUser -- rrba -- 01-11-2004 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'rrba/user'
|
8
|
+
require 'fileutils'
|
9
|
+
require 'openssl'
|
10
|
+
|
11
|
+
module RRBA
|
12
|
+
class TestUser < Test::Unit::TestCase
|
13
|
+
def setup
|
14
|
+
@user = User.new(1)
|
15
|
+
@datadir = File.expand_path('data', File.dirname(__FILE__))
|
16
|
+
end
|
17
|
+
def test_attr_accessors
|
18
|
+
assert_respond_to(@user, :name)
|
19
|
+
assert_respond_to(@user, :name=)
|
20
|
+
assert_respond_to(@user, :email)
|
21
|
+
assert_respond_to(@user, :email=)
|
22
|
+
assert_respond_to(@user, :public_key)
|
23
|
+
assert_respond_to(@user, :public_key=)
|
24
|
+
end
|
25
|
+
def test_authenticate__failure
|
26
|
+
realkey = OpenSSL::PKey::DSA.generate(8)
|
27
|
+
fakekey = OpenSSL::PKey::DSA.generate(8)
|
28
|
+
@user.public_key = realkey.public_key
|
29
|
+
challenge = 'challenge'
|
30
|
+
signature = fakekey.syssign(challenge)
|
31
|
+
assert_equal(false, @user.authenticate(challenge, signature))
|
32
|
+
end
|
33
|
+
def test_authenticate__success
|
34
|
+
realkey = OpenSSL::PKey::DSA.generate(8)
|
35
|
+
@user.public_key = realkey.public_key
|
36
|
+
challenge = 'challenge'
|
37
|
+
signature = realkey.syssign(challenge)
|
38
|
+
assert_equal(true, @user.authenticate(challenge, signature))
|
39
|
+
end
|
40
|
+
def test__public_key_writer__public_key
|
41
|
+
key = OpenSSL::PKey::DSA.new(8)
|
42
|
+
@user.public_key = key.public_key
|
43
|
+
assert_instance_of(OpenSSL::PKey::DSA, @user.public_key)
|
44
|
+
assert(@user.public_key.public?)
|
45
|
+
assert_equal(false, @user.public_key.private?)
|
46
|
+
assert(@user.public_key.sysverify('test', key.syssign('test')),
|
47
|
+
"could not verify signature")
|
48
|
+
end
|
49
|
+
def test__public_key_writer__private_key
|
50
|
+
key = OpenSSL::PKey::DSA.new(8)
|
51
|
+
@user.public_key = key
|
52
|
+
assert_instance_of(OpenSSL::PKey::DSA, @user.public_key)
|
53
|
+
assert(@user.public_key.public?)
|
54
|
+
assert_equal(false, @user.public_key.private?,
|
55
|
+
"stored a private key!")
|
56
|
+
assert(@user.public_key.sysverify('test', key.syssign('test')),
|
57
|
+
"could not verify signature")
|
58
|
+
end
|
59
|
+
def test_new_session
|
60
|
+
assert_raises(NotImplementedError) { @user.new_session }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
metadata
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rrba
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Masaomi Hatakeyama, Zeno R.R. Davatz
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-02-21 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: hoe
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 41
|
30
|
+
segments:
|
31
|
+
- 2
|
32
|
+
- 9
|
33
|
+
- 1
|
34
|
+
version: 2.9.1
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
37
|
+
description: Ruby Role-Based Authentication
|
38
|
+
email:
|
39
|
+
- mhatakeyama@ywesee.com, zdavatz@ywesee.com
|
40
|
+
executables: []
|
41
|
+
|
42
|
+
extensions: []
|
43
|
+
|
44
|
+
extra_rdoc_files:
|
45
|
+
- History.txt
|
46
|
+
- Manifest.txt
|
47
|
+
- README.txt
|
48
|
+
files:
|
49
|
+
- History.txt
|
50
|
+
- LICENSE
|
51
|
+
- Manifest.txt
|
52
|
+
- README.txt
|
53
|
+
- Rakefile
|
54
|
+
- install.rb
|
55
|
+
- lib/rrba.rb
|
56
|
+
- lib/rrba/error.rb
|
57
|
+
- lib/rrba/server.rb
|
58
|
+
- lib/rrba/user.rb
|
59
|
+
- test/mock.rb
|
60
|
+
- test/stub/odba.rb
|
61
|
+
- test/suite.rb
|
62
|
+
- test/test_server.rb
|
63
|
+
- test/test_user.rb
|
64
|
+
- .gemtest
|
65
|
+
has_rdoc: true
|
66
|
+
homepage: http://scm.ywesee.com/?p=rrba/.git;a=summary
|
67
|
+
licenses: []
|
68
|
+
|
69
|
+
post_install_message:
|
70
|
+
rdoc_options:
|
71
|
+
- --main
|
72
|
+
- README.txt
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
hash: 3
|
81
|
+
segments:
|
82
|
+
- 0
|
83
|
+
version: "0"
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
hash: 3
|
90
|
+
segments:
|
91
|
+
- 0
|
92
|
+
version: "0"
|
93
|
+
requirements: []
|
94
|
+
|
95
|
+
rubyforge_project: rrba
|
96
|
+
rubygems_version: 1.4.2
|
97
|
+
signing_key:
|
98
|
+
specification_version: 3
|
99
|
+
summary: Ruby Role-Based Authentication
|
100
|
+
test_files:
|
101
|
+
- test/test_server.rb
|
102
|
+
- test/test_user.rb
|