pkcs11 0.2.6 → 0.3.3

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