cul-handles 0.2.0 → 0.3.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.
@@ -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
-