smartcard 0.5.4 → 0.5.5

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.
@@ -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