pkcs11 0.2.6 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -32,11 +32,11 @@ class TestPkcs11Session < Minitest::Test
32
32
  end
33
33
 
34
34
  def test_find_objects
35
- obj = session.find_objects(:CLASS => CKO_CERTIFICATE)
35
+ obj = session.find_objects(CLASS: CKO_CERTIFICATE)
36
36
  assert obj.length>2, 'There should be some certificates in the test database'
37
37
  assert_equal PKCS11::Object, obj.first.class, 'Retuned objects should be class Object'
38
38
 
39
- session.find_objects(:CLASS => CKO_CERTIFICATE) do |obj2|
39
+ session.find_objects(CLASS: CKO_CERTIFICATE) do |obj2|
40
40
  assert obj2[:SUBJECT], 'A certificate should have a subject'
41
41
  assert OpenSSL::X509::Name.new(obj2[:SUBJECT]).to_s =~ /\/CN=/i, 'Every certificate should have a CN in the subject'
42
42
  end
@@ -57,25 +57,25 @@ class TestPkcs11Session < Minitest::Test
57
57
  end
58
58
 
59
59
  def test_create_data_object
60
- obj = session.create_object(
61
- :CLASS=>CKO_DATA,
62
- :TOKEN=>false,
63
- :APPLICATION=>'My Application',
64
- :VALUE=>'value')
60
+ _obj = session.create_object(
61
+ CLASS: CKO_DATA,
62
+ TOKEN: false,
63
+ APPLICATION: 'My Application',
64
+ VALUE: 'value')
65
65
  end
66
66
 
67
67
  def test_create_certificate_object
68
- obj1 = session.find_objects(:CLASS => CKO_CERTIFICATE, :ID=>TestCert_ID).first
68
+ obj1 = session.find_objects(CLASS: CKO_CERTIFICATE, ID: TestCert_ID).first
69
69
 
70
70
  obj = session.create_object(
71
- :CLASS=>CKO_CERTIFICATE,
72
- :SUBJECT=>obj1[:SUBJECT],
73
- :TOKEN=>false,
74
- :LABEL=>'test_create_object',
75
- :CERTIFICATE_TYPE=>CKC_X_509,
76
- :ISSUER=>obj1[:ISSUER],
77
- :VALUE=>obj1[:VALUE],
78
- :SERIAL_NUMBER=>'12345'
71
+ CLASS: CKO_CERTIFICATE,
72
+ SUBJECT: obj1[:SUBJECT],
73
+ TOKEN: false,
74
+ LABEL: 'test_create_object',
75
+ CERTIFICATE_TYPE: CKC_X_509,
76
+ ISSUER: obj1[:ISSUER],
77
+ VALUE: obj1[:VALUE],
78
+ SERIAL_NUMBER: '12345'
79
79
  )
80
80
 
81
81
  assert_equal '12345', obj[:SERIAL_NUMBER], 'Value as created'
@@ -85,12 +85,12 @@ class TestPkcs11Session < Minitest::Test
85
85
  rsa = OpenSSL::PKey::RSA.generate(512)
86
86
 
87
87
  obj = session.create_object(
88
- :CLASS=>CKO_PUBLIC_KEY,
89
- :KEY_TYPE=>CKK_RSA,
90
- :TOKEN=>false,
91
- :MODULUS=>rsa.n.to_s(2),
92
- :PUBLIC_EXPONENT=>rsa.e.to_s(2),
93
- :LABEL=>'test_create_public_key_object')
88
+ CLASS: CKO_PUBLIC_KEY,
89
+ KEY_TYPE: CKK_RSA,
90
+ TOKEN: false,
91
+ MODULUS: rsa.n.to_s(2),
92
+ PUBLIC_EXPONENT: rsa.e.to_s(2),
93
+ LABEL: 'test_create_public_key_object')
94
94
 
95
95
  assert_equal 'test_create_public_key_object', obj[:LABEL], 'Value as created'
96
96
  end
@@ -26,13 +26,13 @@ class TestPkcs11Slot < Minitest::Test
26
26
 
27
27
  assert sinfo.inspect =~ /manufacturerID=/, 'Slot info should tell about manufacturerID'
28
28
 
29
- assert_equal Fixnum, sinfo.flags.class
29
+ assert_kind_of Integer, sinfo.flags
30
30
  assert sinfo.manufacturerID =~ /Mozilla/i, "It's the mozilla libaray we test against"
31
31
  assert sinfo.slotDescription =~ /Private Key/i, "It's the slot with users private keys"
32
- assert_equal Fixnum, sinfo.hardwareVersion.major.class, "Version should be a number"
33
- assert_equal Fixnum, sinfo.hardwareVersion.minor.class, "Version should be a number"
34
- assert_equal Fixnum, sinfo.firmwareVersion.major.class, "Version should be a number"
35
- assert_equal Fixnum, sinfo.firmwareVersion.minor.class, "Version should be a number"
32
+ assert_kind_of Integer, sinfo.hardwareVersion.major, "Version should be a number"
33
+ assert_kind_of Integer, sinfo.hardwareVersion.minor, "Version should be a number"
34
+ assert_kind_of Integer, sinfo.firmwareVersion.major, "Version should be a number"
35
+ assert_kind_of Integer, sinfo.firmwareVersion.minor, "Version should be a number"
36
36
  end
37
37
 
38
38
  def test_token_info
@@ -44,14 +44,14 @@ class TestPkcs11Slot < Minitest::Test
44
44
  assert_equal false, slot.mechanisms.empty?, 'There should be some mechanisms'
45
45
  slot.mechanisms.each do |m|
46
46
  info = slot.mechanism_info(m)
47
- assert_equal CK_MECHANISM_INFO, info.class, 'Mechanism info should get a CK_MECHANISM_INFO'
47
+ assert_kind_of CK_MECHANISM_INFO, info, 'Mechanism info should get a CK_MECHANISM_INFO'
48
48
  assert info.inspect =~ /ulMaxKeySize=/, 'Mechanism info should tell about max key size'
49
49
  end
50
50
  end
51
51
 
52
52
  def test_mechanism_info
53
53
  info1 = slot.mechanism_info(:DES3_CBC)
54
- assert_equal CK_MECHANISM_INFO, info1.class, 'Mechanism info should get a CK_MECHANISM_INFO'
54
+ assert_kind_of CK_MECHANISM_INFO, info1, 'Mechanism info should get a CK_MECHANISM_INFO'
55
55
  assert info1.inspect =~ /ulMinKeySize=/, 'Mechanism info should tell about min key size'
56
56
 
57
57
  info2 = slot.mechanism_info(CKM_DES3_CBC)
@@ -71,7 +71,7 @@ class TestPkcs11Slot < Minitest::Test
71
71
 
72
72
  def test_session2
73
73
  flags = CKF_SERIAL_SESSION #| CKF_RW_SESSION
74
- session = slot.open(flags)
74
+ _session = slot.open(flags)
75
75
  slot.close_all_sessions
76
76
  end
77
77
  end
@@ -11,9 +11,10 @@ class TestPkcs11Structs < Minitest::Test
11
11
  def teardown
12
12
  end
13
13
 
14
- def test_STRING_ACCESSOR
14
+ def test_STRING_ACCESSOR_ASCII
15
15
  s = CK_DATE.new
16
16
  assert_equal "\0\0", s.day
17
+ assert_equal Encoding::ASCII, s.day.encoding
17
18
  assert_equal "\0\0\0\0", s.year
18
19
  s.day = "12345"
19
20
  assert_equal "12", s.day
@@ -22,6 +23,20 @@ class TestPkcs11Structs < Minitest::Test
22
23
  assert_raises(TypeError){ s.day = nil }
23
24
  end
24
25
 
26
+ def test_STRING_ACCESSOR_UTF8
27
+ s = CK_INFO.new
28
+ s.manufacturerID = 'Müller'
29
+ assert_equal "Müller", s.manufacturerID.split("\0",2).first
30
+ assert_equal Encoding::UTF_8, s.manufacturerID.encoding
31
+ end
32
+
33
+ def test_STRING_ACCESSOR_BINARY
34
+ s = CK_DES_CBC_ENCRYPT_DATA_PARAMS.new
35
+ s.iv = "somedata"
36
+ assert_equal "somedata", s.iv
37
+ assert_equal Encoding::BINARY, s.iv.encoding
38
+ end
39
+
25
40
  def test_ULONG_ACCESSOR
26
41
  s = CK_SSL3_KEY_MAT_PARAMS.new
27
42
  assert_equal 0, s.ulIVSizeInBits
@@ -42,13 +57,24 @@ class TestPkcs11Structs < Minitest::Test
42
57
  assert_raises(ArgumentError){ s.bIsExport = nil }
43
58
  end
44
59
 
45
- def test_STRING_PTR_ACCESSOR
46
- s = CK_WTLS_MASTER_KEY_DERIVE_PARAMS.new
47
- assert_nil s.pVersion
48
- s.pVersion = "1.2.3"
49
- assert_equal "1.2.3", s.pVersion
50
- s.pVersion = nil
51
- assert_nil s.pVersion
60
+ def test_STRING_PTR_ACCESSOR_UTF8
61
+ s = CK_PBE_PARAMS.new
62
+ assert_nil s.pPassword
63
+ s.pPassword = "secret"
64
+ assert_equal "secret", s.pPassword
65
+ assert_equal Encoding::UTF_8, s.pPassword.encoding
66
+ s.pPassword = nil
67
+ assert_nil s.pPassword
68
+ end
69
+
70
+ def test_STRING_PTR_ACCESSOR_BINARY
71
+ s = CK_DES_CBC_ENCRYPT_DATA_PARAMS.new
72
+ assert_nil s.pData
73
+ s.pData = "some data"
74
+ assert_equal "some data", s.pData
75
+ assert_equal Encoding::BINARY, s.pData.encoding
76
+ s.pData = nil
77
+ assert_nil s.pData
52
78
  end
53
79
 
54
80
  def test_STRUCT_ACCESSOR
@@ -148,7 +174,7 @@ class TestPkcs11Structs < Minitest::Test
148
174
  assert s.inspect =~ /year="2010"/, 'There should be a year in CK_DATE'
149
175
  assert_equal ["year", "month", "day"], s.members, 'CK_DATE should contain some attributes'
150
176
  assert_equal ["2010", "12", "31"], s.values, 'values of CK_DATE'
151
- assert_equal( {:day=>"31", :month=>"12", :year=>"2010"}, s.to_hash, 'CK_DATE as hash' )
177
+ assert_equal( {day: "31", month: "12", year: "2010"}, s.to_hash, 'CK_DATE as hash' )
152
178
  end
153
179
 
154
180
  def test_bignum_attribute
@@ -33,8 +33,8 @@ class TestPkcs11Thread < Minitest::Test
33
33
  end
34
34
  }
35
35
  # This should take some seconds:
36
- pub_key, priv_key = session.generate_key_pair(:RSA_PKCS_KEY_PAIR_GEN,
37
- {:MODULUS_BITS=>2048, :PUBLIC_EXPONENT=>[3].pack("N"), :TOKEN=>false},
36
+ _pub_key, _priv_key = session.generate_key_pair(:RSA_PKCS_KEY_PAIR_GEN,
37
+ {MODULUS_BITS: 2048, PUBLIC_EXPONENT: [65537].pack("N"), TOKEN: false},
38
38
  {})
39
39
  th.kill
40
40
  assert_operator count, :>, 100000, "The second thread should count further concurrent to the key generation"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pkcs11
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryosuke Kutsuna
@@ -9,21 +9,42 @@ authors:
9
9
  - Lars Kanis
10
10
  autorequire:
11
11
  bindir: bin
12
- cert_chain: []
13
- date: 2017-06-07 00:00:00.000000000 Z
12
+ cert_chain:
13
+ - |
14
+ -----BEGIN CERTIFICATE-----
15
+ MIIDPDCCAiSgAwIBAgIBATANBgkqhkiG9w0BAQsFADAkMSIwIAYDVQQDDBl0cmF2
16
+ aXMtY2kvREM9ZHVtbXkvREM9b3JnMB4XDTIwMDQwODExMDA0MFoXDTIxMDQwODEx
17
+ MDA0MFowJDEiMCAGA1UEAwwZdHJhdmlzLWNpL0RDPWR1bW15L0RDPW9yZzCCASIw
18
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK+5uh+zqCXKho0zXIaLmJD6YDpa
19
+ l07nJ+PQFcMBYgsKA2ip01THj3DVYwP/va6hYgqPmxEJB3tsEthKnHVHm0dgqqg/
20
+ gfyDFU0ZfbSYKeNlZQRIdddKPc6dNbmtY2gBWFt6YOZnBccsgJmSUAbh0a9xhVbm
21
+ qAStn/q7eq9iW9+12AB9HM+QCWrsCAXEHGGNENDAK9HtHwBs4KsneiIQY5rd/Mzs
22
+ Ii25XXnDUa1NjC4u/mMuJXBpWLw2rEAQkzEFQBZR0W0ehm9Mi4TokhLy/QH8GRaH
23
+ 0KADzpk1cxuOrEBIhy6ISQs7g/tI6YTePAmDMTsodov02FZCcMpoxOifpFkCAwEA
24
+ AaN5MHcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFOTn5ek+QtcI
25
+ g+ZglIvRPAPGoXvLMB4GA1UdEQQXMBWBE3RyYXZpcy1jaUBkdW1teS5vcmcwHgYD
26
+ VR0SBBcwFYETdHJhdmlzLWNpQGR1bW15Lm9yZzANBgkqhkiG9w0BAQsFAAOCAQEA
27
+ Xuaj6r4QXrQwDdrmT2sPgWiS5/CRRiSwyWsE1jfM0q5spzuKRIy+vSfmj6isScGf
28
+ vT7nwXus+3IcISSdfUddGqf/L54z6U9dVc+V5SH+QuptDRPgQ+fPJFKn8uFARJDU
29
+ 9qNNSKpyoXXHksouuRV4dXVYRChfhLiavXaR0jNmi6qgTsSSvyKD2aObyVdVUzxr
30
+ Umpavc3v5BbquwF9DlKeHZwU/qP0ynCZg/Z9CFa18e5JfyBSFXHXDA0YXE6+b4Dh
31
+ +QvsIa+rEKMYbn0IActnL2SCNlGcttHDcH0AkctmwmAN2r6LTInUBCJoahaIeIXU
32
+ RE1H1QyCW3SV93CTTKaR2A==
33
+ -----END CERTIFICATE-----
34
+ date: 2020-11-07 00:00:00.000000000 Z
14
35
  dependencies:
15
36
  - !ruby/object:Gem::Dependency
16
37
  name: yard
17
38
  requirement: !ruby/object:Gem::Requirement
18
39
  requirements:
19
- - - ">="
40
+ - - "~>"
20
41
  - !ruby/object:Gem::Version
21
42
  version: '0.6'
22
43
  type: :development
23
44
  prerelease: false
24
45
  version_requirements: !ruby/object:Gem::Requirement
25
46
  requirements:
26
- - - ">="
47
+ - - "~>"
27
48
  - !ruby/object:Gem::Version
28
49
  version: '0.6'
29
50
  - !ruby/object:Gem::Dependency
@@ -46,14 +67,14 @@ dependencies:
46
67
  requirements:
47
68
  - - "~>"
48
69
  - !ruby/object:Gem::Version
49
- version: 0.6.0
70
+ version: 0.6.2
50
71
  type: :development
51
72
  prerelease: false
52
73
  version_requirements: !ruby/object:Gem::Requirement
53
74
  requirements:
54
75
  - - "~>"
55
76
  - !ruby/object:Gem::Version
56
- version: 0.6.0
77
+ version: 0.6.2
57
78
  - !ruby/object:Gem::Dependency
58
79
  name: minitest
59
80
  requirement: !ruby/object:Gem::Requirement
@@ -86,30 +107,36 @@ dependencies:
86
107
  name: rdoc
87
108
  requirement: !ruby/object:Gem::Requirement
88
109
  requirements:
89
- - - "~>"
110
+ - - ">="
90
111
  - !ruby/object:Gem::Version
91
112
  version: '4.0'
113
+ - - "<"
114
+ - !ruby/object:Gem::Version
115
+ version: '7'
92
116
  type: :development
93
117
  prerelease: false
94
118
  version_requirements: !ruby/object:Gem::Requirement
95
119
  requirements:
96
- - - "~>"
120
+ - - ">="
97
121
  - !ruby/object:Gem::Version
98
122
  version: '4.0'
123
+ - - "<"
124
+ - !ruby/object:Gem::Version
125
+ version: '7'
99
126
  - !ruby/object:Gem::Dependency
100
127
  name: hoe
101
128
  requirement: !ruby/object:Gem::Requirement
102
129
  requirements:
103
130
  - - "~>"
104
131
  - !ruby/object:Gem::Version
105
- version: '3.16'
132
+ version: '3.22'
106
133
  type: :development
107
134
  prerelease: false
108
135
  version_requirements: !ruby/object:Gem::Requirement
109
136
  requirements:
110
137
  - - "~>"
111
138
  - !ruby/object:Gem::Version
112
- version: '3.16'
139
+ version: '3.22'
113
140
  description: 'This module allows Ruby programs to interface with "RSA Security Inc.
114
141
  PKCS #11 Cryptographic Token Interface (Cryptoki)".'
115
142
  email:
@@ -128,8 +155,10 @@ extra_rdoc_files:
128
155
  - pkcs11_protect_server/README_PROTECT_SERVER.rdoc
129
156
  - ext/pk11.c
130
157
  files:
158
+ - ".appveyor.yml"
131
159
  - ".autotest"
132
160
  - ".gemtest"
161
+ - ".gitignore"
133
162
  - ".travis.yml"
134
163
  - ".yardopts"
135
164
  - Gemfile
@@ -137,7 +166,6 @@ files:
137
166
  - MIT-LICENSE
138
167
  - README.rdoc
139
168
  - Rakefile
140
- - appveyor.yml
141
169
  - ext/extconf.rb
142
170
  - ext/generate_constants.rb
143
171
  - ext/generate_structs.rb
@@ -186,7 +214,8 @@ files:
186
214
  homepage: http://github.com/larskanis/pkcs11
187
215
  licenses:
188
216
  - MIT
189
- metadata: {}
217
+ metadata:
218
+ homepage_uri: http://github.com/larskanis/pkcs11
190
219
  post_install_message:
191
220
  rdoc_options:
192
221
  - "--main"
@@ -197,15 +226,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
197
226
  requirements:
198
227
  - - ">="
199
228
  - !ruby/object:Gem::Version
200
- version: '0'
229
+ version: 2.2.0
201
230
  required_rubygems_version: !ruby/object:Gem::Requirement
202
231
  requirements:
203
232
  - - ">="
204
233
  - !ruby/object:Gem::Version
205
234
  version: '0'
206
235
  requirements: []
207
- rubyforge_project:
208
- rubygems_version: 2.6.12
236
+ rubygems_version: 3.1.4
209
237
  signing_key:
210
238
  specification_version: 4
211
239
  summary: PKCS#11 binding for Ruby
@@ -0,0 +1,3 @@
1
+ 0�u-��]yeP*���՛$[���=�?�
2
+ ��������*�+{}Woҽ R@C`����Fq�W��F���=��|L�6/
3
+ SX��r��tn;^*k�+����K@|�\R�A��
@@ -1,38 +0,0 @@
1
- install:
2
- - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
3
- - SET PATH=C:\MinGW\msys\1.0\bin;%PATH%
4
- - SET RAKEOPT=-rdevkit
5
- - ruby --version
6
- - gem --version
7
- - bundle install
8
-
9
- # When running ruby-x86, we make use of the softokn3.dll that is part of the
10
- # pre-installed firefox. The test helper will find it automatically.
11
- # When running ruby-x64, we equally need a 64 bit softokn3.dll to test against.
12
- # However it is not part of any installed software on appveyor, nor is it
13
- # officially released as a windows binary, so we download and install a 64 bit
14
- # firefox version and use it's softokn3.dll.
15
- - ps: |
16
- if ($env:isx64 -eq "1")
17
- {
18
- $(new-object net.webclient).DownloadFile('http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/40.0b4/win64/en-US/Firefox%20Setup%2040.0b4.exe', 'C:\firefox-setup.exe')
19
- cmd /c C:\firefox-setup.exe -ms
20
- $env:SOFTOKN_PATH = 'C:\Program Files\Mozilla Firefox\softokn3.dll'
21
- $env:PATH = 'C:\Program Files\Mozilla Firefox;' + $env:PATH
22
- }
23
-
24
- build: off
25
-
26
- test_script:
27
- - bundle exec rake compile test gem
28
-
29
- environment:
30
- matrix:
31
- - ruby_version: "193"
32
- #- ruby_version: "200"
33
- #- ruby_version: "200-x64"
34
- #- ruby_version: "21"
35
- #- ruby_version: "21-x64"
36
- - ruby_version: "22"
37
- - ruby_version: "22-x64"
38
- isx64: "1"