cul-handles 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f614319ec18ecbe1208315855724e83637605767
4
+ data.tar.gz: beb8025ca1f6608d0f2ff573fadaa470a47b1b0d
5
+ SHA512:
6
+ metadata.gz: 2e7dfa5be36afda48fe8bb32d56ec9a36f4d8f00e69ef0c37592922c965286a1cbfac98c9962579f838e59f3613f2a727188cc01df1b626e51a787b2bff3a5b0
7
+ data.tar.gz: 0cc6bea8e0b464f09d2f577f80896b170a9d15f0cf7f53e490b34ca65be4135b727aee08b52e13fdd0b3b290038e286b2935ba6f308a218d40c4b19e3986cb39
data/Rakefile CHANGED
@@ -1,47 +1,31 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
 
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "cul-handles"
8
- gem.summary = %Q{CUL Handle Client}
9
- gem.description = %Q{Columbia client to deal with handle server}
10
- gem.email = "tastyhat@jamesstuart.org"
11
- gem.homepage = "http://github.com/tastyhat/cul-handles"
12
- gem.authors = ["James Stuart"]
13
- gem.add_development_dependency "thoughtbot-shoulda"
14
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
- end
16
- rescue LoadError
17
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
18
- end
19
-
20
4
  require 'rake/testtask'
5
+
21
6
  Rake::TestTask.new(:test) do |test|
22
7
  test.libs << 'lib' << 'test'
23
- test.pattern = 'test/**/*_test.rb'
8
+ test.pattern = 'test/*_test.rb'
24
9
  test.verbose = true
25
10
  end
26
-
27
- begin
28
- require 'rcov/rcovtask'
29
- Rcov::RcovTask.new do |test|
30
- test.libs << 'test'
31
- test.pattern = 'test/**/*_test.rb'
32
- test.verbose = true
33
- end
34
- rescue LoadError
35
- task :rcov do
36
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
37
- end
11
+ Rake::TestTask.new(:unit_test) do |test|
12
+ test.libs << 'lib' << 'test'
13
+ test.pattern = 'test/unit/**/*_test.rb'
14
+ test.verbose = true
15
+ end
16
+ Rake::TestTask.new(:system_test) do |test|
17
+ test.libs << 'lib' << 'test'
18
+ test.pattern = 'test/system/**/*_test.rb'
19
+ test.verbose = true
38
20
  end
39
21
 
40
- task :test => :check_dependencies
22
+ task :test
23
+
24
+ task :ci => [:test, :unit_test]
41
25
 
42
- task :default => :test
26
+ task :default => :ci
43
27
 
44
- require 'rake/rdoctask'
28
+ require 'rdoc/task'
45
29
  Rake::RDocTask.new do |rdoc|
46
30
  if File.exist?('VERSION')
47
31
  version = File.read('VERSION')
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -1,16 +1,26 @@
1
1
  require 'socket'
2
2
  require 'digest/sha1'
3
-
4
- require 'cul/handles/hdl'
5
-
6
- require "cul/handles/client"
7
- require "cul/handles/base_message"
8
- require 'cul/handles/base_response'
9
- require "cul/handles/base_request"
10
- require "cul/handles/session_request"
11
- require 'cul/handles/resolution_request'
12
- require 'cul/handles/resolution_response'
13
- require 'cul/handles/handle_value_request'
14
- require 'cul/handles/challenge_response'
15
- require 'cul/handles/challenge_answer_request'
16
- require 'cul/handles/delete_handle_request'
3
+ module Cul
4
+ module Handles
5
+ autoload :AddValueRequest, 'cul/handles/add_value_request'
6
+ autoload :BaseMessage, 'cul/handles/base_message'
7
+ autoload :BaseRequest, 'cul/handles/base_request'
8
+ autoload :BaseResponse, 'cul/handles/base_response'
9
+ autoload :ChallengeAnswerRequest, 'cul/handles/challenge_answer_request'
10
+ autoload :ChallengeResponse, 'cul/handles/challenge_response'
11
+ autoload :Client, 'cul/handles/client'
12
+ autoload :CreateHandleRequest, 'cul/handles/create_handle_request'
13
+ autoload :DH, 'cul/handles/dh'
14
+ autoload :DeleteHandleRequest, 'cul/handles/delete_handle_request'
15
+ autoload :DeleteValueRequest, 'cul/handles/delete_value_request'
16
+ autoload :HandleValue, 'cul/handles/handle_value'
17
+ autoload :HandleValueRequest, 'cul/handles/handle_value_request'
18
+ autoload :Hdl, 'cul/handles/hdl'
19
+ autoload :ModifyValueRequest, 'cul/handles/modify_value_request'
20
+ autoload :ResolutionRequest, 'cul/handles/resolution_request'
21
+ autoload :ResolutionResponse, 'cul/handles/resolution_response'
22
+ autoload :SessionSetupRequest, 'cul/handles/session_setup_request'
23
+ autoload :SessionSetupResponse, 'cul/handles/session_setup_response'
24
+ autoload :SetValueRequest, 'cul/handles/set_value_request'
25
+ end
26
+ end
@@ -0,0 +1,10 @@
1
+ module Cul
2
+ module Handles
3
+ class AddValueRequest < HandleValueRequest
4
+ def initialize(handle)
5
+ super(handle)
6
+ @opCode = asBytes(Hdl::OC_ADD_VALUE)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,6 +1,5 @@
1
1
  module Cul
2
2
  module Handles
3
-
4
3
  class BaseResponse < BaseMessage
5
4
  include Hdl
6
5
  def initialize
@@ -78,6 +78,7 @@ module Cul
78
78
  return sendAuthRequest(req, adminSecret)
79
79
  end
80
80
  def addHandleMaintainer(adminSecret,handle,maintainerHandle)
81
+ Rails.logger.info('================= addHandleMaintainer 1')
81
82
  req = Cul::Handles::AddValueRequest.new(handle)
82
83
  req.addAdminValue(maintainerHandle, 0x0070, INDEX_MAINTAINER_HANDLE)
83
84
  initRequest(req)
@@ -2,7 +2,7 @@ module Cul
2
2
  module Handles
3
3
  class CreateHandleRequest < HandleValueRequest
4
4
  def initialize(handle)
5
- super()
5
+ super(handle)
6
6
  @opCode = asBytes(Hdl::OC_CREATE_HANDLE)
7
7
  end
8
8
  def valid?
@@ -1,5 +1,17 @@
1
1
  module Cul
2
2
  module Handles
3
+ class DeleteValueRequest < HandleValueRequest
4
+ def initialize(handle)
5
+ super(handle)
6
+ @opCode = asBytes(Hdl::OC_REMOVE_VALUE)
7
+ end
8
+ def addAdminValue(adminHandle, permissions, index)
9
+ if (index.eql?(100))
10
+ raise "Deleting the admin value would leave the handle without an administrator; Use modify value instead."
11
+ end
12
+ super(adminHandle, permissions, index)
13
+ end
14
+ end
3
15
  class RemoveValueRequest < BaseRequest
4
16
  include Hdl
5
17
  def initialize(handle)
@@ -0,0 +1,59 @@
1
+ module Cul
2
+ module Handles
3
+ class DH
4
+ include Hdl
5
+ attr_reader :prime, :generator, :maxrand, :publickey
6
+ # def DH.miller_rabin(a, n)
7
+ #
8
+ # end
9
+ # def DH.prime
10
+ #
11
+ # end
12
+ def DH.mod_exp start, e, m
13
+ result = 1
14
+ b = start
15
+ while e > 0
16
+ result = (result * b) % m if e[0] == 1
17
+ e = e >> 1
18
+ b = (b*b) %m
19
+ end
20
+ return result
21
+ end
22
+ def initialize(prime, generator, maxrand)
23
+ @prime = prime
24
+ @generator = generator
25
+ @maxrand = maxrand
26
+ @publickey = 0 #public key
27
+ @key = 0 #shared secret
28
+ @private = 0 #private key
29
+ end
30
+ def generate tries=16 # shared key
31
+ tries.times do
32
+ @private = rand(@maxrand)
33
+ @publickey = DH.mod_exp(@generator, @private, @prime)
34
+ return @publickey if self.valid?
35
+ end
36
+ end
37
+ def secret f # private key
38
+ @key = DH.mod_exp(f,@private,@prime)
39
+ @key
40
+ end
41
+ def valid? _e = self.publickey
42
+ _e and _e.between?(2,self.prime-2) and _e != 0
43
+ end
44
+ def encodeKeyParms
45
+ result = []
46
+ publicBytes = asBytes(@publickey)
47
+ result.concat(asBytes(publicBytes.length))
48
+ result.concat(publicBytes)
49
+ primeBytes = asBytes(@prime)
50
+ result.concat(asBytes(primeBytes.length))
51
+ result.concat(primeBytes)
52
+ genBytes = asBytes(@generator)
53
+ result.concat(asBytes(genBytes.length))
54
+ result.concat(genBytes)
55
+ result
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,120 @@
1
+ module Cul
2
+ module Handles
3
+ class HandleValue
4
+ include Hdl
5
+ PERM_ADMIN_READ = 0x8
6
+ PERM_ADMIN_WRITE = 0x4
7
+ PERM_PUBLIC_READ = 0x2
8
+ PERM_PUBLIC_WRITE = 0x1
9
+ TTL_TYPE_RELATIVE = 0
10
+ TTL_TYPE_ABSOLUTE = 1
11
+ MAX_RECOGNIZED_TTL = 86400*2 # 2 days
12
+ def initialize(data=[],handle="")
13
+ super()
14
+ @handle=handle
15
+ @refs = []
16
+ @data = []
17
+ @type = []
18
+ @perm = 14 # admin r/w; public r
19
+ @ttlType = TTL_TYPE_RELATIVE # default
20
+ @ttl = asBytes(86400) # default is 86400 seconds = 1440 minutes = 24 hours
21
+ @timestamp = asBytes(Time.new().to_i) # number of seconds since computing era
22
+ deserialize(data) unless data.length == 0
23
+ end
24
+ def deserialize(data)
25
+ @index = data[0..3]
26
+ @timestamp = data[4..7]
27
+ @ttlType = data[8]
28
+ @ttl = data[9..12]
29
+ @perm = data[13]
30
+ typeLen = fromBytes(data[14..17])
31
+ offset = 18
32
+ @type = data[18...18+typeLen]
33
+ offset = offset + typeLen
34
+ dataLen = fromBytes(data[offset...offset+4])
35
+ offset = offset + 4
36
+ @data = data[offset...offset+dataLen]
37
+ offset = offset + dataLen
38
+ refsLen = fromBytes(data[offset...offset+4])
39
+ offset = offset + 4
40
+ @refs = []
41
+ (1..refsLen).each{
42
+ @refs.push(fromBytes(data[offset...offset+4]))
43
+ offset = offset + 4
44
+ }
45
+ end
46
+ def serialize()
47
+ result = [].concat(@index)
48
+ result.concat(@timestamp)
49
+ result.concat([@ttlType])
50
+ result.concat(@ttl)
51
+ result.concat([@perm])
52
+ result.concat(asBytes(@type.length))
53
+ result.concat(@type)
54
+ result.concat(asBytes(@data.length))
55
+ result.concat(@data)
56
+ result.concat(asBytes(@refs.length))
57
+ if(@refs.length > 0)
58
+ @refs.each{ | ref|
59
+ result.concat(asBytes(ref))
60
+ }
61
+ end
62
+ return result
63
+ end
64
+ def handle
65
+ @handle
66
+ end
67
+ def index=(val)
68
+ @index= val
69
+ end
70
+ def index
71
+ fromBytes(@index)
72
+ end
73
+ def timestamp=(val)
74
+ @timestamp=val
75
+ end
76
+ def ttlType=(val)
77
+ @ttlType = val
78
+ end
79
+ def ttl=(val)
80
+ @ttl = val
81
+ end
82
+ def perm=(val)
83
+ @perm = val
84
+ end
85
+ def adminRead
86
+ @perm & PERM_ADMIN_READ
87
+ end
88
+ def adminWrite
89
+ @perm & PERM_ADMIN_WRITE
90
+ end
91
+ def publicRead
92
+ @perm & PERM_PUBLIC_READ
93
+ end
94
+ def publicWrite
95
+ @perm & PERM_PUBLIC_WRITE
96
+ end
97
+ def type=(val)
98
+ @type=val
99
+ end
100
+ def type
101
+ return @type.pack('U*')
102
+ end
103
+ def data=(val)
104
+ @data=val
105
+ end
106
+ def data
107
+ @data.pack('U*')
108
+ end
109
+ def refs=(val)
110
+ @refs = val
111
+ end
112
+ def to_s
113
+ if (type == "HS_ADMIN")
114
+ return "admin handle data: ttl= " + fromBytes(@ttl).to_s + " ; ttlType= " + @ttlType.to_s + "; index = " + index.to_s + "; " + decodeAdminData(@data).to_s + "; permissions = " + @perm.to_s
115
+ end
116
+ return "type: " + type + "; index=" + index.to_s + "; data.length: " + @data.length.to_s + " ; data: " + data + "; data(hex): " + @data.collect { |element| "%02x" % element }.join+ "; permissions = " + @perm.to_s
117
+ end
118
+ end
119
+ end
120
+ end
@@ -10,6 +10,7 @@ module Cul
10
10
  self.returnRequestDigest=(true)
11
11
  @handle = toProtocolString(handle)
12
12
  @values = []
13
+ @opCode = asBytes(Hdl::OC_MODIFY_VALUE)
13
14
  end
14
15
  def addURLValue(urlValue)
15
16
  # serialize handle value
@@ -45,46 +46,5 @@ module Cul
45
46
  @body = result
46
47
  end
47
48
  end
48
- class CreateHandleRequest < HandleValueRequest
49
- def initialize(handle)
50
- super(handle)
51
- @opCode = asBytes(Hdl::OC_CREATE_HANDLE)
52
- end
53
- def valid?
54
- if not @handle
55
- return false
56
- end
57
- @values.each { |value|
58
- if value.type == "HS_ADMIN"
59
- return true
60
- end
61
- }
62
- return false
63
- end
64
- end
65
- class AddValueRequest < HandleValueRequest
66
- def initialize(handle)
67
- super(handle)
68
- @opCode = asBytes(Hdl::OC_ADD_VALUE)
69
- end
70
- end
71
- class ModifyValueRequest < HandleValueRequest
72
- def initialize(handle)
73
- super(handle)
74
- @opCode = asBytes(Hdl::OC_MODIFY_VALUE)
75
- end
76
- end
77
- class DeleteValueRequest < HandleValueRequest
78
- def initialize(handle)
79
- super(handle)
80
- @opCode = asBytes(Hdl::OC_REMOVE_VALUE)
81
- end
82
- def addAdminValue(adminHandle, permissions, index)
83
- if (index.eql?(100))
84
- raise "Deleting the admin value would leave the handle without an administrator; Use modify value instead."
85
- end
86
- super(adminHandle, permissions, index)
87
- end
88
- end
89
49
  end
90
50
  end
@@ -181,7 +181,7 @@ module Cul
181
181
  length = fromBytes(data[offset...offset+4])
182
182
  pstring = ""
183
183
  if length > 0
184
- pstring = data[offset+4...offset+4+length].pack('C*')
184
+ pstring = data[offset+4...offset+4+length].pack('C*').unpack('U*').pack('U*')
185
185
  octetsRead = octetsRead + length
186
186
  end
187
187
  return [octetsRead,pstring]
@@ -2,7 +2,7 @@ module Cul
2
2
  module Handles
3
3
  class ModifyValueRequest < HandleValueRequest
4
4
  def initialize(handle)
5
- super()
5
+ super(handle)
6
6
  @opCode = asBytes(Hdl::OC_MODIFY_VALUE)
7
7
  end
8
8
  end
@@ -44,125 +44,6 @@ module Cul
44
44
  }
45
45
  return nil
46
46
  end
47
- end
48
- class HandleValue
49
- include Hdl
50
- PERM_ADMIN_READ = 0x8
51
- PERM_ADMIN_WRITE = 0x4
52
- PERM_PUBLIC_READ = 0x2
53
- PERM_PUBLIC_WRITE = 0x1
54
- TTL_TYPE_RELATIVE = 0
55
- TTL_TYPE_ABSOLUTE = 1
56
- MAX_RECOGNIZED_TTL = 86400*2 # 2 days
57
- def initialize(data=[],handle="")
58
- super()
59
- @handle=handle
60
- @refs = []
61
- @data = []
62
- @type = []
63
- @perm = 14 # admin r/w; public r
64
- @ttlType = TTL_TYPE_RELATIVE # default
65
- @ttl = asBytes(86400) # default is 86400 seconds = 1440 minutes = 24 hours
66
- @timestamp = asBytes(Time.new().to_i) # number of seconds since computing era
67
- deserialize(data) unless data.length == 0
68
- end
69
- def deserialize(data)
70
- @index = data[0..3]
71
- @timestamp = data[4..7]
72
- @ttlType = data[8]
73
- @ttl = data[9..12]
74
- @perm = data[13]
75
- typeLen = fromBytes(data[14..17])
76
- offset = 18
77
- @type = data[18...18+typeLen]
78
- offset = offset + typeLen
79
- dataLen = fromBytes(data[offset...offset+4])
80
- offset = offset + 4
81
- @data = data[offset...offset+dataLen]
82
- offset = offset + dataLen
83
- refsLen = fromBytes(data[offset...offset+4])
84
- offset = offset + 4
85
- @refs = []
86
- (1..refsLen).each{
87
- @refs.push(fromBytes(data[offset...offset+4]))
88
- offset = offset + 4
89
- }
90
- end
91
- def serialize()
92
- result = [].concat(@index)
93
- result.concat(@timestamp)
94
- result.concat([@ttlType])
95
- result.concat(@ttl)
96
- result.concat([@perm])
97
- result.concat(asBytes(@type.length))
98
- result.concat(@type)
99
- result.concat(asBytes(@data.length))
100
- result.concat(@data)
101
- result.concat(asBytes(@refs.length))
102
- if(@refs.length > 0)
103
- @refs.each{ | ref|
104
- result.concat(asBytes(ref))
105
- }
106
- end
107
- return result
108
- end
109
- def handle
110
- @handle
111
- end
112
- def index=(val)
113
- @index= val
114
- end
115
- def index
116
- fromBytes(@index)
117
- end
118
- def timestamp=(val)
119
- @timestamp=val
120
- end
121
- def ttlType=(val)
122
- @ttlType = val
123
- end
124
- def ttl=(val)
125
- @ttl = val
126
- end
127
- def perm=(val)
128
- @perm = val
129
- end
130
- def adminRead
131
- @perm & PERM_ADMIN_READ
132
- end
133
- def adminWrite
134
- @perm & PERM_ADMIN_WRITE
135
- end
136
- def publicRead
137
- @perm & PERM_PUBLIC_READ
138
- end
139
- def publicWrite
140
- @perm & PERM_PUBLIC_WRITE
141
- end
142
- def type=(val)
143
- @type=val
144
- end
145
- def type
146
- return @type.pack('U*')
147
- end
148
- def data=(val)
149
- @data=val
150
- end
151
- def data
152
- @data.pack('U*')
153
- end
154
- def refs=(val)
155
- @refs = val
156
- end
157
- def to_s
158
- if (type == "HS_ADMIN")
159
- return "admin handle data: ttl= " + fromBytes(@ttl).to_s + " ; ttlType= " + @ttlType.to_s + "; index = " + index.to_s + "; " + decodeAdminData(@data).to_s + "; permissions = " + @perm.to_s
160
- end
161
- return "type: " + type + "; index=" + index.to_s + "; data.length: " + @data.length.to_s + " ; data: " + data + "; data(hex): " + @data.collect { |element| "%02x" % element }.join+ "; permissions = " + @perm.to_s
162
- end
163
-
164
-
165
-
166
47
  end
167
48
  end
168
49
  end
@@ -64,63 +64,7 @@ module Cul
64
64
  end
65
65
  def credentialDigestAlg()
66
66
  return []
67
- end
68
-
69
- end
70
- class DH
71
- include Hdl
72
- attr_reader :prime, :generator, :maxrand, :publickey
73
- # def DH.miller_rabin(a, n)
74
- #
75
- # end
76
- # def DH.prime
77
- #
78
- # end
79
- def DH.mod_exp start, e, m
80
- result = 1
81
- b = start
82
- while e > 0
83
- result = (result * b) % m if e[0] == 1
84
- e = e >> 1
85
- b = (b*b) %m
86
- end
87
- return result
88
- end
89
- def initialize(prime, generator, maxrand)
90
- @prime = prime
91
- @generator = generator
92
- @maxrand = maxrand
93
- @publickey = 0 #public key
94
- @key = 0 #shared secret
95
- @private = 0 #private key
96
- end
97
- def generate tries=16 # shared key
98
- tries.times do
99
- @private = rand(@maxrand)
100
- @publickey = DH.mod_exp(@generator, @private, @prime)
101
- return @publickey if self.valid?
102
- end
103
- end
104
- def secret f # private key
105
- @key = DH.mod_exp(f,@private,@prime)
106
- @key
107
- end
108
- def valid? _e = self.publickey
109
- _e and _e.between?(2,self.prime-2) and _e != 0
110
- end
111
- def encodeKeyParms
112
- result = []
113
- publicBytes = asBytes(@publickey)
114
- result.concat(asBytes(publicBytes.length))
115
- result.concat(publicBytes)
116
- primeBytes = asBytes(@prime)
117
- result.concat(asBytes(primeBytes.length))
118
- result.concat(primeBytes)
119
- genBytes = asBytes(@generator)
120
- result.concat(asBytes(genBytes.length))
121
- result.concat(genBytes)
122
- result
123
- end
67
+ end
124
68
  end
125
69
  end
126
70
  end
@@ -3,6 +3,13 @@ require 'test/unit'
3
3
  require 'shoulda'
4
4
  require 'yaml'
5
5
 
6
+ require 'simplecov'
7
+ SimpleCov.start do
8
+ coverage_dir 'tmp/coverage'
9
+ add_group "Library", "lib"
10
+ add_filter "test"
11
+ end
12
+
6
13
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
14
  $LOAD_PATH.unshift(File.dirname(__FILE__))
8
15
 
@@ -10,4 +17,4 @@ require 'cul-handles'
10
17
 
11
18
  class Test::Unit::TestCase
12
19
 
13
- end
20
+ end
@@ -1,3 +1,5 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'test_helper'
1
3
  module Cul
2
4
  module Handles
3
5
  class DHTest < Test::Unit::TestCase
@@ -1,3 +1,4 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require 'test_helper'
2
3
  module Cul
3
4
  module Handles
metadata CHANGED
@@ -1,45 +1,86 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cul-handles
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - James Stuart
8
+ - Ben Armintor
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2009-11-11 00:00:00 -05:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2009-11-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
16
29
  name: thoughtbot-shoulda
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: test-unit
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: simplecov-rcov
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
17
63
  type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
21
67
  - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
25
70
  description: Columbia client to deal with handle server
26
- email: tastyhat@jamesstuart.org
71
+ email: tastyhat@jamesstuart.org armintor@gmail.com
27
72
  executables: []
28
-
29
73
  extensions: []
30
-
31
- extra_rdoc_files:
74
+ extra_rdoc_files:
32
75
  - LICENSE
33
76
  - README.rdoc
34
- files:
35
- - .document
36
- - .gitignore
77
+ files:
37
78
  - LICENSE
38
79
  - README.rdoc
39
80
  - Rakefile
40
81
  - VERSION
41
- - cul-handles.gemspec
42
82
  - lib/cul-handles.rb
83
+ - lib/cul/handles/add_value_request.rb
43
84
  - lib/cul/handles/base_message.rb
44
85
  - lib/cul/handles/base_request.rb
45
86
  - lib/cul/handles/base_response.rb
@@ -49,52 +90,50 @@ files:
49
90
  - lib/cul/handles/create_handle_request.rb
50
91
  - lib/cul/handles/delete_handle_request.rb
51
92
  - lib/cul/handles/delete_value_request.rb
93
+ - lib/cul/handles/dh.rb
94
+ - lib/cul/handles/handle_value.rb
52
95
  - lib/cul/handles/handle_value_request.rb
53
96
  - lib/cul/handles/hdl.rb
54
97
  - lib/cul/handles/modify_value_request.rb
55
98
  - lib/cul/handles/resolution_request.rb
56
99
  - lib/cul/handles/resolution_response.rb
57
- - lib/cul/handles/session_request.rb
100
+ - lib/cul/handles/session_setup_request.rb
58
101
  - lib/cul/handles/session_setup_response.rb
59
102
  - lib/cul/handles/set_value_request.rb
60
- - test/authn_test.rb
61
103
  - test/cul-handles_test.rb
62
- - test/dh_test.rb
63
- - test/resolution_test.rb
104
+ - test/system/authn_test.rb
105
+ - test/system/resolution_test.rb
64
106
  - test/test_helper.rb
65
- - test/unsigned_integer_test.rb
66
- has_rdoc: true
67
- homepage: http://github.com/tastyhat/cul-handles
107
+ - test/unit/dh_test.rb
108
+ - test/unit/unsigned_integer_test.rb
109
+ homepage: http://github.com/cul/cul-handles
68
110
  licenses: []
69
-
111
+ metadata: {}
70
112
  post_install_message:
71
- rdoc_options:
72
- - --charset=UTF-8
73
- require_paths:
113
+ rdoc_options:
114
+ - "--charset=UTF-8"
115
+ require_paths:
74
116
  - lib
75
- required_ruby_version: !ruby/object:Gem::Requirement
76
- requirements:
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ requirements:
77
119
  - - ">="
78
- - !ruby/object:Gem::Version
79
- version: "0"
80
- version:
81
- required_rubygems_version: !ruby/object:Gem::Requirement
82
- requirements:
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ requirements:
83
124
  - - ">="
84
- - !ruby/object:Gem::Version
85
- version: "0"
86
- version:
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
87
127
  requirements: []
88
-
89
128
  rubyforge_project:
90
- rubygems_version: 1.3.5
129
+ rubygems_version: 2.4.6
91
130
  signing_key:
92
- specification_version: 3
131
+ specification_version: 4
93
132
  summary: CUL Handle Client
94
- test_files:
95
- - test/authn_test.rb
133
+ test_files:
96
134
  - test/cul-handles_test.rb
97
- - test/dh_test.rb
98
- - test/resolution_test.rb
135
+ - test/system/authn_test.rb
136
+ - test/system/resolution_test.rb
99
137
  - test/test_helper.rb
100
- - test/unsigned_integer_test.rb
138
+ - test/unit/dh_test.rb
139
+ - test/unit/unsigned_integer_test.rb
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- *.sw?
2
- private
3
- .DS_Store
4
- coverage
5
- rdoc
6
- pkg
@@ -1,79 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{cul-handles}
8
- s.version = "0.2.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["James Stuart"]
12
- s.date = %q{2009-11-11}
13
- s.description = %q{Columbia client to deal with handle server}
14
- s.email = %q{tastyhat@jamesstuart.org}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "cul-handles.gemspec",
27
- "lib/cul-handles.rb",
28
- "lib/cul/handles/base_message.rb",
29
- "lib/cul/handles/base_request.rb",
30
- "lib/cul/handles/base_response.rb",
31
- "lib/cul/handles/challenge_answer_request.rb",
32
- "lib/cul/handles/challenge_response.rb",
33
- "lib/cul/handles/client.rb",
34
- "lib/cul/handles/create_handle_request.rb",
35
- "lib/cul/handles/delete_handle_request.rb",
36
- "lib/cul/handles/delete_value_request.rb",
37
- "lib/cul/handles/handle_value_request.rb",
38
- "lib/cul/handles/hdl.rb",
39
- "lib/cul/handles/modify_value_request.rb",
40
- "lib/cul/handles/resolution_request.rb",
41
- "lib/cul/handles/resolution_response.rb",
42
- "lib/cul/handles/session_request.rb",
43
- "lib/cul/handles/session_setup_response.rb",
44
- "lib/cul/handles/set_value_request.rb",
45
- "test/authn_test.rb",
46
- "test/cul-handles_test.rb",
47
- "test/dh_test.rb",
48
- "test/resolution_test.rb",
49
- "test/test_helper.rb",
50
- "test/unsigned_integer_test.rb"
51
- ]
52
- s.homepage = %q{http://github.com/tastyhat/cul-handles}
53
- s.rdoc_options = ["--charset=UTF-8"]
54
- s.require_paths = ["lib"]
55
- s.rubygems_version = %q{1.3.5}
56
- s.summary = %q{CUL Handle Client}
57
- s.test_files = [
58
- "test/authn_test.rb",
59
- "test/cul-handles_test.rb",
60
- "test/dh_test.rb",
61
- "test/resolution_test.rb",
62
- "test/test_helper.rb",
63
- "test/unsigned_integer_test.rb"
64
- ]
65
-
66
- if s.respond_to? :specification_version then
67
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
68
- s.specification_version = 3
69
-
70
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
71
- s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
72
- else
73
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
74
- end
75
- else
76
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
77
- end
78
- end
79
-