jruby-openssl 0.6 → 0.7

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.
Files changed (54) hide show
  1. data/History.txt +45 -0
  2. data/Manifest.txt +19 -11
  3. data/README.txt +1 -12
  4. data/Rakefile +12 -5
  5. data/lib/bcmail-jdk15-144.jar +0 -0
  6. data/lib/bcprov-jdk15-144.jar +0 -0
  7. data/lib/jopenssl/version.rb +1 -1
  8. data/lib/jopenssl.jar +0 -0
  9. data/lib/openssl/bn.rb +5 -3
  10. data/lib/openssl/buffering.rb +2 -2
  11. data/lib/openssl/cipher.rb +27 -18
  12. data/lib/openssl/digest.rb +19 -4
  13. data/lib/openssl/dummy.rb +11 -11
  14. data/lib/openssl/dummyssl.rb +2 -1
  15. data/lib/openssl/pkcs7.rb +25 -0
  16. data/lib/openssl/ssl.rb +70 -26
  17. data/lib/openssl/x509.rb +2 -2
  18. data/lib/openssl.rb +47 -2
  19. data/test/fixture/ca-bundle.crt +2794 -0
  20. data/test/fixture/keypair.pem +27 -0
  21. data/test/fixture/selfcert.pem +23 -0
  22. data/test/{pkcs7_mime_enveloped.message → java/pkcs7_mime_enveloped.message} +0 -0
  23. data/test/{pkcs7_mime_signed.message → java/pkcs7_mime_signed.message} +0 -0
  24. data/test/{pkcs7_multipart_signed.message → java/pkcs7_multipart_signed.message} +0 -0
  25. data/test/{test_java_attribute.rb → java/test_java_attribute.rb} +2 -2
  26. data/test/{test_java_bio.rb → java/test_java_bio.rb} +0 -0
  27. data/test/{test_java_mime.rb → java/test_java_mime.rb} +0 -0
  28. data/test/{test_java_pkcs7.rb → java/test_java_pkcs7.rb} +35 -32
  29. data/test/{test_java_smime.rb → java/test_java_smime.rb} +0 -0
  30. data/test/openssl/test_asn1.rb +1 -3
  31. data/test/openssl/test_cipher.rb +7 -10
  32. data/test/openssl/test_ec.rb +113 -0
  33. data/test/openssl/test_pair.rb +3 -8
  34. data/test/openssl/test_pkcs7.rb +339 -11
  35. data/test/openssl/test_ssl.rb +728 -100
  36. data/test/openssl/test_x509cert.rb +5 -5
  37. data/test/openssl/test_x509crl.rb +1 -2
  38. data/test/openssl/test_x509ext.rb +3 -3
  39. data/test/openssl/test_x509name.rb +1 -0
  40. data/test/openssl/test_x509req.rb +5 -7
  41. data/test/openssl/test_x509store.rb +3 -2
  42. data/test/test_all.rb +1 -0
  43. data/test/{test_openssl_x509.rb → test_certificate.rb} +33 -3
  44. data/test/test_cipher.rb +85 -7
  45. data/test/test_integration.rb +7 -8
  46. data/test/test_java.rb +9 -9
  47. data/test/test_openssl.rb +3 -33
  48. data/test/test_parse_certificate.rb +8 -1
  49. data/test/test_pkcs7.rb +40 -0
  50. data/test/test_pkey.rb +165 -7
  51. data/test/test_x509store.rb +8 -7
  52. metadata +31 -30
  53. data/lib/bcmail-jdk14-139.jar +0 -0
  54. data/lib/bcprov-jdk14-139.jar +0 -0
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpAIBAAKCAQEAoMKQs2G2GLpdHCp07ZR7fYAim3BcHhx1PM3cscrYLXaVCGqH
3
+ PtZLJQDDseuvQur1VMGjHOneUJzsfdXJcRN8WfH9AD5KXJbTpzt134BpqrMhJcov
4
+ G4e54oVNzvlQ1P2xwZt7QXYg2hyCIqH6r7wBtaW8g8e5dUGb3vuZW4OC2s/KSKue
5
+ 71LnqsolKuINt9OTs0R6+4oxyLRIBU/8gG/PD+bnjXB3JUm9/JYOxh4mN3goRhbZ
6
+ 61kTu6vHI9DcWI3I81rS4hzbvArnBsbmKkQOZRc8YkNqAQtyC+V/0xyv/w5jJXpT
7
+ xlT4ZJaUfcO3KtGHvP9JkxT3F4whN5whwdcRxwIDAQABAoIBAQCR7o00iWqoH+UO
8
+ AGyMjtFbJ8pCmEjG/MZgH/BLZPvAqXi4XxvOqvEj8gGzrWM3t9pkyjKruJEbVJhJ
9
+ 0pw+jZXAgK9OXT1bt38CvDNQZF2Hm3xntZX1w8u2GZR8Yk5CStnmCqJk1jsUQ/TO
10
+ Q4QxqtVSc9UhO1jbXGeGj5azQDq1LaLDOePfH4XtM/GcoPKtu+Lghx+5JfOVMI+/
11
+ cOcm65cK+APPObySe0x7r6Q45UhFW5q0UMFGaMFfkMauYyzhuliD8BS5XV9gDSGH
12
+ Ozr8GDEroGuJr3oTKSMKZg+S8N/8SQ1g4RL9IEZZ6MIIJZrWkqhY7jwY5v1ywrSY
13
+ OBE4pNxBAoGBANI30R3WthH/iWq1xyQVQCD1XwxYO66iWk2U0fxhhn/3lSkNTq/a
14
+ cIs+2IY9vnXT7yJSY4xHejbmgJmdfNXnjwaKwDvyh/M8fesFNQLPWKufl0l4LPwH
15
+ qWlxgcmff1VxtP4xrGSEBG51oo60heqWgRACL+xan98PNUiB113UE9M5AoGBAMPF
16
+ VwXMo8RIA+wLPOSUjdWXPusZfzzKCm+NdTYDdoc7F6hVjxzNeU/44bJs5XVxM9JV
17
+ EsGjWG9KprgAhzw1gy6UJg8OErF2zf0j/czg8FIB5Cm+ecNsH8pzfBfcRursvGAt
18
+ HHVIUyyvODN/kus3dta6CqOj4kd6yKhdcu5wuQz/AoGAaRnbBW4Z7XmzPJTRkarG
19
+ OzQyZzud6zvkpjEno2UnF8ey3al3k9hEuHmdS9CG7uYdAy3p83KxGc24shTZGyEA
20
+ kya/4bjqW6P82Inr7RG5pWTPAL6CzycNflhvqVyDDzcgZI51QHP4uzk5ItwCsDy7
21
+ HkPZrfPJRn6WB0BTaufjWZECgYEAvIxATu6Tv4QYeusr336Px+neCDHLULHKMTwN
22
+ alMVghLQqyiUKAphTzuFrAGjUWQQo/+Zi/OVRcKhJVAk70EeseqvaQqFyHOC2s4i
23
+ L4NpEaKOrAGuZh+p0qM9HgHiL3qHxx1Lbk2VBdFQEJFK383QX+hYPNinI27G+Rjf
24
+ i3P3VeMCgYBhXO1Tgge4J7UPYRCT7WOsvpXdcZdwOx75fBAR9g7FrPSjiXgYPZlK
25
+ TZ1/Gv0c1WGeW4sJ+XdnFexWENh+mdJGmWsMkyPnkRNaAbRqz5Isq+eZcVNSXNEz
26
+ QBCT+THNIIPCjkZCdjwXNClVkGfePJ3i3ON43ioyrouex9D5kvU7uA==
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,23 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIID0DCCArigAwIBAgIJAKKAqEyofo5/MA0GCSqGSIb3DQEBBQUAME4xCzAJBgNV
3
+ BAYTAkpQMRowGAYDVQQKExF3d3cucnVieS1sYW5nLm9yZzEUMBIGA1UECxMLZGV2
4
+ ZWxvcG1lbnQxDTALBgNVBAMTBHNlbGYwHhcNMTAwMTEyMDkyNDU4WhcNMzAwMTA3
5
+ MDkyNDU4WjBOMQswCQYDVQQGEwJKUDEaMBgGA1UEChMRd3d3LnJ1YnktbGFuZy5v
6
+ cmcxFDASBgNVBAsTC2RldmVsb3BtZW50MQ0wCwYDVQQDEwRzZWxmMIIBIjANBgkq
7
+ hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoMKQs2G2GLpdHCp07ZR7fYAim3BcHhx1
8
+ PM3cscrYLXaVCGqHPtZLJQDDseuvQur1VMGjHOneUJzsfdXJcRN8WfH9AD5KXJbT
9
+ pzt134BpqrMhJcovG4e54oVNzvlQ1P2xwZt7QXYg2hyCIqH6r7wBtaW8g8e5dUGb
10
+ 3vuZW4OC2s/KSKue71LnqsolKuINt9OTs0R6+4oxyLRIBU/8gG/PD+bnjXB3JUm9
11
+ /JYOxh4mN3goRhbZ61kTu6vHI9DcWI3I81rS4hzbvArnBsbmKkQOZRc8YkNqAQty
12
+ C+V/0xyv/w5jJXpTxlT4ZJaUfcO3KtGHvP9JkxT3F4whN5whwdcRxwIDAQABo4Gw
13
+ MIGtMB0GA1UdDgQWBBQT5CcsdalzWhSsCgkMqtDVRUHVGjB+BgNVHSMEdzB1gBQT
14
+ 5CcsdalzWhSsCgkMqtDVRUHVGqFSpFAwTjELMAkGA1UEBhMCSlAxGjAYBgNVBAoT
15
+ EXd3dy5ydWJ5LWxhbmcub3JnMRQwEgYDVQQLEwtkZXZlbG9wbWVudDENMAsGA1UE
16
+ AxMEc2VsZoIJAKKAqEyofo5/MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
17
+ ggEBACSpZcF7xYei4cGVQM4As6tOneR2F5Yk4OVljsH1+5Zm4UO60l/Q8o9t0KPg
18
+ xjv3H0Y3lqe9VJOmGqyl66JllTNCaIuBnIrmbDsj++NQ+1ietkq8vDu5SKKy7/OY
19
+ MMyko6iKRbs/GmigRA4XZsqFXGsNlwyO0Oq1Cr83JYb5PGRB5k9/ThGWUi8wd6lk
20
+ ODN34nC+mVT65AQM4t5HfZhYnXdrBcOje0If+HuKPPbwr+55xUEtkBmShbfXow4m
21
+ 6OE+5iZXUzdGo/+G/fLx4JNMPufSD7GmeDIazm9crhZojElxa5ylpMNqGN22UEyZ
22
+ wYN6dtBOG81wMKfuRfKI6DW/lU0=
23
+ -----END CERTIFICATE-----
@@ -4,10 +4,10 @@ module PKCS7Test
4
4
  val = ASN1::OctetString.new("foo".to_java_bytes)
5
5
  val2 = ASN1::OctetString.new("bar".to_java_bytes)
6
6
  attr = Attribute.create(123, 444, val)
7
- assert_raises NoMethodError do
7
+ assert_raise NoMethodError do
8
8
  attr.type = 12
9
9
  end
10
- assert_raises NoMethodError do
10
+ assert_raise NoMethodError do
11
11
  attr.value = val2
12
12
  end
13
13
 
File without changes
File without changes
@@ -136,7 +136,7 @@ module PKCS7Test
136
136
  end
137
137
 
138
138
  def test_set_type_throws_exception_on_wrong_argument
139
- assert_raises NativeException do
139
+ assert_raise NativeException do
140
140
  # 42 is a value that is not one of the valid NID's for type
141
141
  PKCS7.new.type = 42
142
142
  end
@@ -239,25 +239,25 @@ module PKCS7Test
239
239
  p7 = PKCS7.new
240
240
  p7.type = ASN1Registry::NID_pkcs7_digest
241
241
 
242
- assert_raises NativeException do
242
+ assert_raise NativeException do
243
243
  p7.cipher = nil
244
244
  end
245
245
 
246
246
  p7.type = ASN1Registry::NID_pkcs7_encrypted
247
247
 
248
- assert_raises NativeException do
248
+ assert_raise NativeException do
249
249
  p7.cipher = nil
250
250
  end
251
251
 
252
252
  p7.type = ASN1Registry::NID_pkcs7_data
253
253
 
254
- assert_raises NativeException do
254
+ assert_raise NativeException do
255
255
  p7.cipher = nil
256
256
  end
257
257
 
258
258
  p7.type = ASN1Registry::NID_pkcs7_signed
259
259
 
260
- assert_raises NativeException do
260
+ assert_raise NativeException do
261
261
  p7.cipher = nil
262
262
  end
263
263
  end
@@ -266,7 +266,8 @@ module PKCS7Test
266
266
  p7 = PKCS7.new
267
267
  p7.type = ASN1Registry::NID_pkcs7_enveloped
268
268
 
269
- cipher = javax.crypto.Cipher.getInstance("RSA")
269
+ c = javax.crypto.Cipher.getInstance("RSA")
270
+ cipher = CipherSpec.new(c, "RSA", 128)
270
271
 
271
272
  p7.cipher = cipher
272
273
 
@@ -278,7 +279,8 @@ module PKCS7Test
278
279
  p7 = PKCS7.new
279
280
  p7.type = ASN1Registry::NID_pkcs7_signedAndEnveloped
280
281
 
281
- cipher = javax.crypto.Cipher.getInstance("RSA")
282
+ c = javax.crypto.Cipher.getInstance("RSA")
283
+ cipher = CipherSpec.new(c, "RSA", 128)
282
284
 
283
285
  p7.cipher = cipher
284
286
 
@@ -288,25 +290,25 @@ module PKCS7Test
288
290
  def test_add_recipient_info_to_something_that_cant_have_recipients
289
291
  p7 = PKCS7.new
290
292
  p7.type = ASN1Registry::NID_pkcs7_signed
291
- assert_raises NativeException do
293
+ assert_raise NativeException do
292
294
  p7.add_recipient(X509Cert)
293
295
  end
294
296
 
295
297
  p7 = PKCS7.new
296
298
  p7.type = ASN1Registry::NID_pkcs7_data
297
- assert_raises NativeException do
299
+ assert_raise NativeException do
298
300
  p7.add_recipient(X509Cert)
299
301
  end
300
302
 
301
303
  p7 = PKCS7.new
302
304
  p7.type = ASN1Registry::NID_pkcs7_encrypted
303
- assert_raises NativeException do
305
+ assert_raise NativeException do
304
306
  p7.add_recipient(X509Cert)
305
307
  end
306
308
 
307
309
  p7 = PKCS7.new
308
310
  p7.type = ASN1Registry::NID_pkcs7_digest
309
- assert_raises NativeException do
311
+ assert_raise NativeException do
310
312
  p7.add_recipient(X509Cert)
311
313
  end
312
314
  end
@@ -335,25 +337,25 @@ module PKCS7Test
335
337
  def test_add_signer_to_something_that_cant_have_signers
336
338
  p7 = PKCS7.new
337
339
  p7.type = ASN1Registry::NID_pkcs7_enveloped
338
- assert_raises NativeException do
340
+ assert_raise NativeException do
339
341
  p7.add_signer(SignerInfoWithPkey.new(nil, nil, nil, nil, nil, nil, nil))
340
342
  end
341
343
 
342
344
  p7 = PKCS7.new
343
345
  p7.type = ASN1Registry::NID_pkcs7_data
344
- assert_raises NativeException do
346
+ assert_raise NativeException do
345
347
  p7.add_signer(SignerInfoWithPkey.new(nil, nil, nil, nil, nil, nil, nil))
346
348
  end
347
349
 
348
350
  p7 = PKCS7.new
349
351
  p7.type = ASN1Registry::NID_pkcs7_encrypted
350
- assert_raises NativeException do
352
+ assert_raise NativeException do
351
353
  p7.add_signer(SignerInfoWithPkey.new(nil, nil, nil, nil, nil, nil, nil))
352
354
  end
353
355
 
354
356
  p7 = PKCS7.new
355
357
  p7.type = ASN1Registry::NID_pkcs7_digest
356
- assert_raises NativeException do
358
+ assert_raise NativeException do
357
359
  p7.add_signer(SignerInfoWithPkey.new(nil, nil, nil, nil, nil, nil, nil))
358
360
  end
359
361
  end
@@ -452,7 +454,7 @@ module PKCS7Test
452
454
  def test_set_content_on_data_throws_exception
453
455
  p7 = PKCS7.new
454
456
  p7.type = ASN1Registry::NID_pkcs7_data
455
- assert_raises NativeException do
457
+ assert_raise NativeException do
456
458
  p7.setContent(PKCS7.new)
457
459
  end
458
460
  end
@@ -460,7 +462,7 @@ module PKCS7Test
460
462
  def test_set_content_on_enveloped_throws_exception
461
463
  p7 = PKCS7.new
462
464
  p7.type = ASN1Registry::NID_pkcs7_enveloped
463
- assert_raises NativeException do
465
+ assert_raise NativeException do
464
466
  p7.setContent(PKCS7.new)
465
467
  end
466
468
  end
@@ -468,7 +470,7 @@ module PKCS7Test
468
470
  def test_set_content_on_signedAndEnveloped_throws_exception
469
471
  p7 = PKCS7.new
470
472
  p7.type = ASN1Registry::NID_pkcs7_signedAndEnveloped
471
- assert_raises NativeException do
473
+ assert_raise NativeException do
472
474
  p7.setContent(PKCS7.new)
473
475
  end
474
476
  end
@@ -476,7 +478,7 @@ module PKCS7Test
476
478
  def test_set_content_on_encrypted_throws_exception
477
479
  p7 = PKCS7.new
478
480
  p7.type = ASN1Registry::NID_pkcs7_encrypted
479
- assert_raises NativeException do
481
+ assert_raise NativeException do
480
482
  p7.setContent(PKCS7.new)
481
483
  end
482
484
  end
@@ -538,7 +540,7 @@ module PKCS7Test
538
540
  def test_content_new_on_data_raises_exception
539
541
  p7 = PKCS7.new
540
542
  p7.type = ASN1Registry::NID_pkcs7_data
541
- assert_raises NativeException do
543
+ assert_raise NativeException do
542
544
  p7.content_new(ASN1Registry::NID_pkcs7_data)
543
545
  end
544
546
  end
@@ -546,7 +548,7 @@ module PKCS7Test
546
548
  def test_content_new_on_encrypted_raises_exception
547
549
  p7 = PKCS7.new
548
550
  p7.type = ASN1Registry::NID_pkcs7_encrypted
549
- assert_raises NativeException do
551
+ assert_raise NativeException do
550
552
  p7.content_new(ASN1Registry::NID_pkcs7_data)
551
553
  end
552
554
  end
@@ -554,7 +556,7 @@ module PKCS7Test
554
556
  def test_content_new_on_enveloped_raises_exception
555
557
  p7 = PKCS7.new
556
558
  p7.type = ASN1Registry::NID_pkcs7_enveloped
557
- assert_raises NativeException do
559
+ assert_raise NativeException do
558
560
  p7.content_new(ASN1Registry::NID_pkcs7_data)
559
561
  end
560
562
  end
@@ -562,7 +564,7 @@ module PKCS7Test
562
564
  def test_content_new_on_signedAndEnveloped_raises_exception
563
565
  p7 = PKCS7.new
564
566
  p7.type = ASN1Registry::NID_pkcs7_signedAndEnveloped
565
- assert_raises NativeException do
567
+ assert_raise NativeException do
566
568
  p7.content_new(ASN1Registry::NID_pkcs7_data)
567
569
  end
568
570
  end
@@ -591,7 +593,7 @@ module PKCS7Test
591
593
  def test_add_certificate_on_data_throws_exception
592
594
  p7 = PKCS7.new
593
595
  p7.type = ASN1Registry::NID_pkcs7_data
594
- assert_raises NativeException do
596
+ assert_raise NativeException do
595
597
  p7.add_certificate(X509Cert)
596
598
  end
597
599
  end
@@ -599,7 +601,7 @@ module PKCS7Test
599
601
  def test_add_certificate_on_enveloped_throws_exception
600
602
  p7 = PKCS7.new
601
603
  p7.type = ASN1Registry::NID_pkcs7_enveloped
602
- assert_raises NativeException do
604
+ assert_raise NativeException do
603
605
  p7.add_certificate(X509Cert)
604
606
  end
605
607
  end
@@ -607,7 +609,7 @@ module PKCS7Test
607
609
  def test_add_certificate_on_encrypted_throws_exception
608
610
  p7 = PKCS7.new
609
611
  p7.type = ASN1Registry::NID_pkcs7_encrypted
610
- assert_raises NativeException do
612
+ assert_raise NativeException do
611
613
  p7.add_certificate(X509Cert)
612
614
  end
613
615
  end
@@ -615,7 +617,7 @@ module PKCS7Test
615
617
  def test_add_certificate_on_digest_throws_exception
616
618
  p7 = PKCS7.new
617
619
  p7.type = ASN1Registry::NID_pkcs7_digest
618
- assert_raises NativeException do
620
+ assert_raise NativeException do
619
621
  p7.add_certificate(X509Cert)
620
622
  end
621
623
  end
@@ -639,7 +641,7 @@ module PKCS7Test
639
641
  def test_add_crl_on_data_throws_exception
640
642
  p7 = PKCS7.new
641
643
  p7.type = ASN1Registry::NID_pkcs7_data
642
- assert_raises NativeException do
644
+ assert_raise NativeException do
643
645
  p7.add_crl(X509CRL)
644
646
  end
645
647
  end
@@ -647,7 +649,7 @@ module PKCS7Test
647
649
  def test_add_crl_on_enveloped_throws_exception
648
650
  p7 = PKCS7.new
649
651
  p7.type = ASN1Registry::NID_pkcs7_enveloped
650
- assert_raises NativeException do
652
+ assert_raise NativeException do
651
653
  p7.add_crl(X509CRL)
652
654
  end
653
655
  end
@@ -655,7 +657,7 @@ module PKCS7Test
655
657
  def test_add_crl_on_encrypted_throws_exception
656
658
  p7 = PKCS7.new
657
659
  p7.type = ASN1Registry::NID_pkcs7_encrypted
658
- assert_raises NativeException do
660
+ assert_raise NativeException do
659
661
  p7.add_crl(X509CRL)
660
662
  end
661
663
  end
@@ -663,7 +665,7 @@ module PKCS7Test
663
665
  def test_add_crl_on_digest_throws_exception
664
666
  p7 = PKCS7.new
665
667
  p7.type = ASN1Registry::NID_pkcs7_digest
666
- assert_raises NativeException do
668
+ assert_raise NativeException do
667
669
  p7.add_crl(X509CRL)
668
670
  end
669
671
  end
@@ -690,7 +692,8 @@ module PKCS7Test
690
692
 
691
693
  def test_encrypt_integration_test
692
694
  certs = [X509Cert]
693
- cipher = Cipher.get_instance("AES", BCP.new)
695
+ c = Cipher.get_instance("AES", BCP.new)
696
+ cipher = CipherSpec.new(c, "AES-128-CBC", 128)
694
697
  data = "aaaaa\nbbbbb\nccccc\n".to_java_bytes
695
698
  PKCS7::encrypt(certs, data, cipher, PKCS7::BINARY)
696
699
  # puts
@@ -10,7 +10,6 @@ class OpenSSL::TestASN1 < Test::Unit::TestCase
10
10
  subj = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=TestCA")
11
11
  key = OpenSSL::TestUtils::TEST_KEY_RSA1024
12
12
  now = Time.at(Time.now.to_i) # suppress usec
13
- # now = Time.utc(2006,04,03,22,15,13)
14
13
  s = 0xdeadbeafdeadbeafdeadbeafdeadbeaf
15
14
  exts = [
16
15
  ["basicConstraints","CA:TRUE,pathlen:1",true],
@@ -21,6 +20,7 @@ class OpenSSL::TestASN1 < Test::Unit::TestCase
21
20
  cert = OpenSSL::TestUtils.issue_cert(
22
21
  subj, key, s, now, now+3600, exts, nil, nil, dgst)
23
22
 
23
+
24
24
  asn1 = OpenSSL::ASN1.decode(cert)
25
25
  assert_equal(OpenSSL::ASN1::Sequence, asn1.class)
26
26
  assert_equal(3, asn1.value.size)
@@ -32,7 +32,6 @@ class OpenSSL::TestASN1 < Test::Unit::TestCase
32
32
  version = tbs_cert.value[0]
33
33
  assert_equal(:CONTEXT_SPECIFIC, version.tag_class)
34
34
  assert_equal(0, version.tag)
35
-
36
35
  assert_equal(1, version.value.size)
37
36
  assert_equal(OpenSSL::ASN1::Integer, version.value[0].class)
38
37
  assert_equal(2, version.value[0].value)
@@ -192,7 +191,6 @@ class OpenSSL::TestASN1 < Test::Unit::TestCase
192
191
  assert_equal(OpenSSL::ASN1::Null, pkey.value[0].value[1].class)
193
192
 
194
193
  assert_equal(OpenSSL::ASN1::BitString, sig_val.class)
195
-
196
194
  cululated_sig = key.sign(OpenSSL::Digest::SHA1.new, tbs_cert.to_der)
197
195
  assert_equal(cululated_sig, sig_val.value)
198
196
  end
@@ -1,10 +1,3 @@
1
- if defined?(JRUBY_VERSION)
2
- require "java"
3
- base = File.join(File.dirname(__FILE__), '..', '..')
4
- $CLASSPATH << File.join(base, 'pkg', 'classes')
5
- $CLASSPATH << File.join(base, 'lib', 'bcprov-jdk14-139.jar')
6
- end
7
-
8
1
  begin
9
2
  require "openssl"
10
3
  rescue LoadError
@@ -88,7 +81,7 @@ class OpenSSL::TestCipher < Test::Unit::TestCase
88
81
 
89
82
  def test_empty_data
90
83
  @c1.encrypt
91
- assert_raises(ArgumentError){ @c1.update("") }
84
+ assert_raise(ArgumentError){ @c1.update("") }
92
85
  end
93
86
 
94
87
  def test_disable_padding(padding=0)
@@ -159,7 +152,9 @@ class OpenSSL::TestCipher < Test::Unit::TestCase
159
152
  %w(ECB CBC CFB OFB).each{|mode|
160
153
  c1 = OpenSSL::Cipher::AES256.new(mode)
161
154
  c1.encrypt
162
- c1.pkcs5_keyivgen("passwd")
155
+ assert_nothing_raised('This test fails w/o Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files') do
156
+ c1.pkcs5_keyivgen("passwd")
157
+ end
163
158
  ct = c1.update(pt) + c1.final
164
159
 
165
160
  c2 = OpenSSL::Cipher::AES256.new(mode)
@@ -176,6 +171,7 @@ class OpenSSL::TestCipher < Test::Unit::TestCase
176
171
  data = "1234567890~5J96LC303C1D22DD~20090930005944~http%3A%2F%2Flocalhost%3A8080%2Flogin%3B0%3B1~http%3A%2F%2Fmix-stage.oracle.com%2F~00"
177
172
  c1 = OpenSSL::Cipher::Cipher.new("DES-CBC")
178
173
  c1.padding = 0
174
+ c1.iv = "0" * 8
179
175
  c1.encrypt
180
176
  c1.key = key
181
177
  e = c1.update data
@@ -183,12 +179,13 @@ class OpenSSL::TestCipher < Test::Unit::TestCase
183
179
 
184
180
  c2 = OpenSSL::Cipher::Cipher.new("DES-CBC")
185
181
  c2.padding = 0
182
+ c2.iv = "0" * 8
186
183
  c2.decrypt
187
184
  c2.key = key
188
185
  d = c2.update e
189
186
  d << c2.final
190
187
 
191
- assert_equal "]s\345F\251\250\223uO\315\220\255g\031\363c\006\205L\260G7\016`\265\377K5?\375\310\025\026\"\a\246N\270\234]\206\n\r\351\262\257\305\3632p_\205\257\026\226~-7\av#BZx\024\246'\f\216\005\201\r\372\201\316%W\250\210^\340{\371\245\374<~/YnV\277\311\230\250{\336\302W\353\032\321+\200pA\037\274\262\022*u\344\363\304\e\214J\353!\2352\267)s\360c\a", e
188
+ assert_equal "\342\320B.\300&X\310\344\253\025\215\017*\22015\344\024D\342\213\361\336\311\271\326\016\243\214\026\2545\002\237,\017s\202\316&Ew\323\221H\376\200\304\201\365\332Im\240\361\037\246\3536\001A2\341\324o0\350\364%=\325\330\240\324u\225\304h\277\272\361f\024\324\352\336\353N\002/]C\370!\003)\212oa\225\207\333\340\245\207\024\351\037\327[\212\001{\216\f\315\345\372\v\226\r\233?\002\vJK", e
192
189
  assert_equal data, d
193
190
  end
194
191
  end
@@ -0,0 +1,113 @@
1
+ begin
2
+ require "openssl"
3
+ require File.join(File.dirname(__FILE__), "utils.rb")
4
+ rescue LoadError
5
+ end
6
+ require "test/unit"
7
+
8
+ if defined?(OpenSSL::PKey::EC)
9
+
10
+ class OpenSSL::TestEC < Test::Unit::TestCase
11
+ def setup
12
+ @data1 = 'foo'
13
+ @data2 = 'bar' * 1000 # data too long for DSA sig
14
+
15
+ @group1 = OpenSSL::PKey::EC::Group.new('secp112r1')
16
+ @group2 = OpenSSL::PKey::EC::Group.new('sect163k1')
17
+
18
+ @key1 = OpenSSL::PKey::EC.new
19
+ @key1.group = @group1
20
+ @key1.generate_key
21
+
22
+ @key2 = OpenSSL::PKey::EC.new(@group2.curve_name)
23
+ @key2.generate_key
24
+
25
+ @groups = [@group1, @group2]
26
+ @keys = [@key1, @key2]
27
+ end
28
+
29
+ def compare_keys(k1, k2)
30
+ assert_equal(k1.to_pem, k2.to_pem)
31
+ end
32
+
33
+ def test_curve_names
34
+ @groups.each_with_index do |group, idx|
35
+ key = @keys[idx]
36
+ assert_equal(group.curve_name, key.group.curve_name)
37
+ end
38
+ end
39
+
40
+ def test_check_key
41
+ for key in @keys
42
+ assert_equal(key.check_key, true)
43
+ assert_equal(key.private_key?, true)
44
+ assert_equal(key.public_key?, true)
45
+ end
46
+ end
47
+
48
+ def test_encoding
49
+ for group in @groups
50
+ for meth in [:to_der, :to_pem]
51
+ txt = group.send(meth)
52
+ gr = OpenSSL::PKey::EC::Group.new(txt)
53
+ assert_equal(txt, gr.send(meth))
54
+
55
+ assert_equal(group.generator.to_bn, gr.generator.to_bn)
56
+ assert_equal(group.cofactor, gr.cofactor)
57
+ assert_equal(group.order, gr.order)
58
+ assert_equal(group.seed, gr.seed)
59
+ assert_equal(group.degree, gr.degree)
60
+ end
61
+ end
62
+
63
+ for key in @keys
64
+ group = key.group
65
+
66
+ for meth in [:to_der, :to_pem]
67
+ txt = key.send(meth)
68
+ assert_equal(txt, OpenSSL::PKey::EC.new(txt).send(meth))
69
+ end
70
+
71
+ bn = key.public_key.to_bn
72
+ assert_equal(bn, OpenSSL::PKey::EC::Point.new(group, bn).to_bn)
73
+ end
74
+ end
75
+
76
+ def test_set_keys
77
+ for key in @keys
78
+ k = OpenSSL::PKey::EC.new
79
+ k.group = key.group
80
+ k.private_key = key.private_key
81
+ k.public_key = key.public_key
82
+
83
+ compare_keys(key, k)
84
+ end
85
+ end
86
+
87
+ def test_dsa_sign_verify
88
+ for key in @keys
89
+ sig = key.dsa_sign_asn1(@data1)
90
+ assert_equal(key.dsa_verify_asn1(@data1, sig), true)
91
+
92
+ assert_raise(OpenSSL::PKey::ECError) { key.dsa_sign_asn1(@data2) }
93
+ end
94
+ end
95
+
96
+ def test_dh_compute_key
97
+ for key in @keys
98
+ k = OpenSSL::PKey::EC.new(key.group)
99
+ k.generate_key
100
+
101
+ puba = key.public_key
102
+ pubb = k.public_key
103
+ a = key.dh_compute_key(pubb)
104
+ b = k.dh_compute_key(puba)
105
+ assert_equal(a, b)
106
+ end
107
+ end
108
+
109
+ # test Group: asn1_flag, point_conversion
110
+
111
+ end
112
+
113
+ end
@@ -36,16 +36,14 @@ module SSLPair
36
36
 
37
37
  def ssl_pair
38
38
  ssls = server
39
- tv = nil
40
39
  th = Thread.new {
41
40
  ns = ssls.accept
42
41
  ssls.close
43
- tv = ns
42
+ ns
44
43
  }
45
44
  port = ssls.to_io.addr[1]
46
45
  c = client(port)
47
- th.join
48
- s = tv
46
+ s = th.value
49
47
  if block_given?
50
48
  begin
51
49
  yield c, s
@@ -65,10 +63,7 @@ class OpenSSL::TestEOF1 < Test::Unit::TestCase
65
63
 
66
64
  def open_file(content)
67
65
  s1, s2 = ssl_pair
68
- Thread.new {
69
- s2 << content;
70
- s2.close
71
- }
66
+ Thread.new { s2 << content; s2.close }
72
67
  yield s1
73
68
  end
74
69
  end