smartcard 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "smartcard"
5
- s.version = "0.5.4"
5
+ s.version = "0.5.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Victor Costan"]
9
- s.date = "2012-02-09"
9
+ s.date = "2012-12-18"
10
10
  s.description = "Interface with ISO 7816 smart cards."
11
11
  s.email = "victor@costan.us"
12
12
  s.extra_rdoc_files = ["BUILD", "CHANGELOG", "LICENSE", "README", "lib/smartcard.rb", "lib/smartcard/gp/asn1_ber.rb", "lib/smartcard/gp/cap_loader.rb", "lib/smartcard/gp/des.rb", "lib/smartcard/gp/gp_card_mixin.rb", "lib/smartcard/iso/apdu_error.rb", "lib/smartcard/iso/auto_configurator.rb", "lib/smartcard/iso/iso_card_mixin.rb", "lib/smartcard/iso/jcop_remote_protocol.rb", "lib/smartcard/iso/jcop_remote_server.rb", "lib/smartcard/iso/jcop_remote_transport.rb", "lib/smartcard/iso/pcsc_transport.rb", "lib/smartcard/iso/transport.rb", "lib/smartcard/pcsc/card.rb", "lib/smartcard/pcsc/context.rb", "lib/smartcard/pcsc/exception.rb", "lib/smartcard/pcsc/ffi_autogen.rb", "lib/smartcard/pcsc/ffi_functions.rb", "lib/smartcard/pcsc/ffi_lib.rb", "lib/smartcard/pcsc/ffi_structs.rb", "lib/smartcard/pcsc/reader_state_queries.rb", "tasks/ffi_codegen.rb"]
@@ -15,31 +15,31 @@ Gem::Specification.new do |s|
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Smartcard", "--main", "README"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = "smartcard"
18
- s.rubygems_version = "1.8.15"
18
+ s.rubygems_version = "1.8.24"
19
19
  s.summary = "Interface with ISO 7816 smart cards."
20
- s.test_files = ["test/gp/asn1_ber_test.rb", "test/gp/cap_loader_test.rb", "test/gp/des_test.rb", "test/gp/gp_card_mixin_compat_test.rb", "test/gp/gp_card_mixin_test.rb", "test/iso/auto_configurator_test.rb", "test/iso/iso_card_mixin_test.rb", "test/iso/iso_exception_test.rb", "test/iso/jcop_remote_test.rb", "test/pcsc/card_test.rb", "test/pcsc/context_test.rb", "test/pcsc/exception_test.rb", "test/pcsc/reader_state_queries_test.rb"]
20
+ s.test_files = ["test/iso/jcop_remote_test.rb", "test/iso/auto_configurator_test.rb", "test/iso/iso_card_mixin_test.rb", "test/iso/iso_exception_test.rb", "test/gp/des_test.rb", "test/gp/gp_card_mixin_compat_test.rb", "test/gp/gp_card_mixin_test.rb", "test/gp/asn1_ber_test.rb", "test/gp/cap_loader_test.rb", "test/pcsc/card_test.rb", "test/pcsc/exception_test.rb", "test/pcsc/reader_state_queries_test.rb", "test/pcsc/context_test.rb"]
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 3
24
24
 
25
25
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- s.add_runtime_dependency(%q<ffi>, [">= 0.5.3"])
27
- s.add_runtime_dependency(%q<rubyzip>, [">= 0.9.1"])
28
- s.add_runtime_dependency(%q<zerg_support>, [">= 0.1.5"])
29
- s.add_development_dependency(%q<echoe>, [">= 3.2"])
30
- s.add_development_dependency(%q<flexmock>, [">= 0.8.6"])
26
+ s.add_runtime_dependency(%q<ffi>, [">= 1.2.0"])
27
+ s.add_runtime_dependency(%q<rubyzip>, [">= 0.9.9"])
28
+ s.add_runtime_dependency(%q<zerg_support>, [">= 0.1.6"])
29
+ s.add_development_dependency(%q<echoe>, [">= 4.6.3"])
30
+ s.add_development_dependency(%q<flexmock>, [">= 1.2.0"])
31
31
  else
32
- s.add_dependency(%q<ffi>, [">= 0.5.3"])
33
- s.add_dependency(%q<rubyzip>, [">= 0.9.1"])
34
- s.add_dependency(%q<zerg_support>, [">= 0.1.5"])
35
- s.add_dependency(%q<echoe>, [">= 3.2"])
36
- s.add_dependency(%q<flexmock>, [">= 0.8.6"])
32
+ s.add_dependency(%q<ffi>, [">= 1.2.0"])
33
+ s.add_dependency(%q<rubyzip>, [">= 0.9.9"])
34
+ s.add_dependency(%q<zerg_support>, [">= 0.1.6"])
35
+ s.add_dependency(%q<echoe>, [">= 4.6.3"])
36
+ s.add_dependency(%q<flexmock>, [">= 1.2.0"])
37
37
  end
38
38
  else
39
- s.add_dependency(%q<ffi>, [">= 0.5.3"])
40
- s.add_dependency(%q<rubyzip>, [">= 0.9.1"])
41
- s.add_dependency(%q<zerg_support>, [">= 0.1.5"])
42
- s.add_dependency(%q<echoe>, [">= 3.2"])
43
- s.add_dependency(%q<flexmock>, [">= 0.8.6"])
39
+ s.add_dependency(%q<ffi>, [">= 1.2.0"])
40
+ s.add_dependency(%q<rubyzip>, [">= 0.9.9"])
41
+ s.add_dependency(%q<zerg_support>, [">= 0.1.6"])
42
+ s.add_dependency(%q<echoe>, [">= 4.6.3"])
43
+ s.add_dependency(%q<flexmock>, [">= 1.2.0"])
44
44
  end
45
45
  end
@@ -16,16 +16,16 @@ end
16
16
 
17
17
  # :nodoc: namespace
18
18
  module Smartcard
19
-
20
- module Tasks
21
- def self.resolve_constants(pattern, format)
19
+
20
+ module Tasks
21
+ def self.resolve_constants(pattern, format)
22
22
  if FFI::Platform.mac?
23
23
  header_path = '/System/Library/Frameworks/PCSC.framework/Headers/'
24
24
  else
25
25
  header_path = '/usr/include/PCSC/'
26
26
  end
27
27
  headers = Dir.glob(header_path + '*.h').map { |f| File.basename f }
28
-
28
+
29
29
  consts = Set.new
30
30
  headers.each do |header|
31
31
  File.read("#{header_path}#{header}").each_line do |line|
@@ -35,38 +35,39 @@ module Tasks
35
35
  consts << tokens[1] if pattern =~ tokens[1]
36
36
  end
37
37
  end
38
-
38
+ p consts
39
+
39
40
  const_gen = FFI::ConstGenerator.new(nil,
40
- :cppflags => "-w -I#{header_path}") do |g|
41
+ :cppflags => "-w -I#{header_path}") do |g|
41
42
  headers.each { |header| g.include header }
42
43
  consts.each { |const| g.const const, format }
43
44
  end
44
-
45
+
45
46
  const_gen.constants
46
47
  end
47
-
48
+
48
49
  def self.output_constants(constants, f)
49
50
  constants.each do |name, const|
50
51
  f.write " #{const.to_ruby}\n"
51
52
  end
52
53
  end
53
-
54
+
54
55
  def self.output_enum(enum_name, constants, name_regexp, f)
55
56
  f.write " #{enum_name} = enum [\n"
56
-
57
+
57
58
  re = Regexp.new('^' + name_regexp + '$')
58
59
  constants.each do |name, const|
59
60
  ruby_name = re.match(name)[1]
60
- f.write " :#{ruby_name.downcase}, Consts::#{name},\n"
61
+ f.write " :#{ruby_name.downcase}, Consts::#{name},\n"
61
62
  end
62
-
63
+
63
64
  f.write " ]\n"
64
65
  end
65
66
 
66
67
  def self.generate_ffi_header
67
68
  File.open('lib/smartcard/pcsc/ffi_autogen.rb', 'w') do |f|
68
69
  f.write "# Automatically generated by tasks/ffi_codegen.rb\n\n"
69
-
70
+
70
71
  # Return codes.
71
72
  stat_consts = resolve_constants(/^SCARD_(E|S|W)_.*$/, '0x%08X')
72
73
  # Context scopes.
@@ -85,12 +86,12 @@ module Tasks
85
86
  reader_state_consts = resolve_constants(/^SCARD_[^_]*$/, '0x%08X')
86
87
  # Misc constants.
87
88
  misc_consts = resolve_constants(/^MAX_ATR_SIZE|INFINITE$/, '0x%08X')
88
-
89
+
89
90
  f.write "# :nodoc: namespace\n"
90
91
  f.write "module Smartcard::PCSC\n\n"
91
92
  f.write "# :nodoc: auto-generated\n"
92
93
  f.write "module FFILib\n"
93
-
94
+
94
95
  f.write " # Constant values extracted from headers.\n"
95
96
  f.write " module Consts\n"
96
97
  output_constants stat_consts, f
@@ -103,40 +104,40 @@ module Tasks
103
104
  output_constants reader_state_consts, f
104
105
  output_constants misc_consts, f
105
106
  f.write " end # module Smartcard::PCSC::FFILib::Consts\n\n"
106
-
107
+
107
108
  f.write " # Error codes returned by the PCSC functions.\n"
108
109
  output_enum 'Status', stat_consts, 'SCARD_._(.*)', f
109
110
  f.write "\n"
110
-
111
+
111
112
  f.write " # Values for the context's scope.\n"
112
113
  output_enum 'Scope', scope_consts, 'SCARD_SCOPE_(.*)', f
113
114
  f.write "\n"
114
-
115
+
115
116
  f.write " # Smart-card communication protocols.\n"
116
117
  output_enum 'Protocol', proto_consts, 'SCARD_PROTOCOL_(.*)', f
117
118
  f.write "\n"
118
-
119
+
119
120
  f.write " # Smart-card sharing modes.\n"
120
121
  output_enum 'Share', share_consts, 'SCARD_SHARE_(.*)', f
121
122
  f.write "\n"
122
-
123
+
123
124
  f.write " # Smart-card dispositions.\n"
124
125
  output_enum 'Disposition', disp_consts, 'SCARD_(.*)_CARD', f
125
126
  f.write "\n"
126
-
127
+
127
128
  f.write " # Smart-card reader attributes.\n"
128
129
  output_enum 'Attribute', attr_consts, 'SCARD_ATTR_(.*)', f
129
130
  f.write "\n"
130
-
131
+
131
132
  f.write " # Smart-card states.\n"
132
133
  output_enum 'CardState', card_state_consts, 'SCARD_STATE_(.*)', f
133
134
  f.write "\n"
134
-
135
+
135
136
  f.write " # Smart-card reader states.\n"
136
137
  output_enum 'State', reader_state_consts, 'SCARD_(.*)', f
137
138
  f.write "\n"
138
-
139
-
139
+
140
+
140
141
  f.write "end # module Smartcard::PCSC::FFILib\n"
141
142
  f.write "end # namespace Smartcard::PCSC\n"
142
143
  end
metadata CHANGED
@@ -1,108 +1,101 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: smartcard
3
- version: !ruby/object:Gem::Version
4
- hash: 3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.5
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 5
9
- - 4
10
- version: 0.5.4
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Victor Costan
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-02-09 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-12-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: ffi
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 13
29
- segments:
30
- - 0
31
- - 5
32
- - 3
33
- version: 0.5.3
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.2.0
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rubyzip
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: rubyzip
32
+ requirement: !ruby/object:Gem::Requirement
40
33
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 57
45
- segments:
46
- - 0
47
- - 9
48
- - 1
49
- version: 0.9.1
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 0.9.9
50
38
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: zerg_support
54
39
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.9.9
46
+ - !ruby/object:Gem::Dependency
47
+ name: zerg_support
48
+ requirement: !ruby/object:Gem::Requirement
56
49
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 17
61
- segments:
62
- - 0
63
- - 1
64
- - 5
65
- version: 0.1.5
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 0.1.6
66
54
  type: :runtime
67
- version_requirements: *id003
68
- - !ruby/object:Gem::Dependency
69
- name: echoe
70
55
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
72
57
  none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 3
77
- segments:
78
- - 3
79
- - 2
80
- version: "3.2"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.1.6
62
+ - !ruby/object:Gem::Dependency
63
+ name: echoe
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 4.6.3
81
70
  type: :development
82
- version_requirements: *id004
83
- - !ruby/object:Gem::Dependency
84
- name: flexmock
85
71
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
87
73
  none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- hash: 51
92
- segments:
93
- - 0
94
- - 8
95
- - 6
96
- version: 0.8.6
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 4.6.3
78
+ - !ruby/object:Gem::Dependency
79
+ name: flexmock
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: 1.2.0
97
86
  type: :development
98
- version_requirements: *id005
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 1.2.0
99
94
  description: Interface with ISO 7816 smart cards.
100
95
  email: victor@costan.us
101
96
  executables: []
102
-
103
97
  extensions: []
104
-
105
- extra_rdoc_files:
98
+ extra_rdoc_files:
106
99
  - BUILD
107
100
  - CHANGELOG
108
101
  - LICENSE
@@ -129,7 +122,7 @@ extra_rdoc_files:
129
122
  - lib/smartcard/pcsc/ffi_structs.rb
130
123
  - lib/smartcard/pcsc/reader_state_queries.rb
131
124
  - tasks/ffi_codegen.rb
132
- files:
125
+ files:
133
126
  - BUILD
134
127
  - CHANGELOG
135
128
  - LICENSE
@@ -176,54 +169,45 @@ files:
176
169
  - smartcard.gemspec
177
170
  homepage: http://www.costan.us/smartcard
178
171
  licenses: []
179
-
180
172
  post_install_message:
181
- rdoc_options:
173
+ rdoc_options:
182
174
  - --line-numbers
183
175
  - --inline-source
184
176
  - --title
185
177
  - Smartcard
186
178
  - --main
187
179
  - README
188
- require_paths:
180
+ require_paths:
189
181
  - lib
190
- required_ruby_version: !ruby/object:Gem::Requirement
182
+ required_ruby_version: !ruby/object:Gem::Requirement
191
183
  none: false
192
- requirements:
193
- - - ">="
194
- - !ruby/object:Gem::Version
195
- hash: 3
196
- segments:
197
- - 0
198
- version: "0"
199
- required_rubygems_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
200
189
  none: false
201
- requirements:
202
- - - ">="
203
- - !ruby/object:Gem::Version
204
- hash: 11
205
- segments:
206
- - 1
207
- - 2
208
- version: "1.2"
190
+ requirements:
191
+ - - ! '>='
192
+ - !ruby/object:Gem::Version
193
+ version: '1.2'
209
194
  requirements: []
210
-
211
195
  rubyforge_project: smartcard
212
- rubygems_version: 1.8.15
196
+ rubygems_version: 1.8.24
213
197
  signing_key:
214
198
  specification_version: 3
215
199
  summary: Interface with ISO 7816 smart cards.
216
- test_files:
217
- - test/gp/asn1_ber_test.rb
218
- - test/gp/cap_loader_test.rb
219
- - test/gp/des_test.rb
220
- - test/gp/gp_card_mixin_compat_test.rb
221
- - test/gp/gp_card_mixin_test.rb
200
+ test_files:
201
+ - test/iso/jcop_remote_test.rb
222
202
  - test/iso/auto_configurator_test.rb
223
203
  - test/iso/iso_card_mixin_test.rb
224
204
  - test/iso/iso_exception_test.rb
225
- - test/iso/jcop_remote_test.rb
205
+ - test/gp/des_test.rb
206
+ - test/gp/gp_card_mixin_compat_test.rb
207
+ - test/gp/gp_card_mixin_test.rb
208
+ - test/gp/asn1_ber_test.rb
209
+ - test/gp/cap_loader_test.rb
226
210
  - test/pcsc/card_test.rb
227
- - test/pcsc/context_test.rb
228
211
  - test/pcsc/exception_test.rb
229
212
  - test/pcsc/reader_state_queries_test.rb
213
+ - test/pcsc/context_test.rb