jruby-openssl-maven 0.7.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. data/History.txt +171 -0
  2. data/License.txt +30 -0
  3. data/Manifest.txt +115 -0
  4. data/README.txt +13 -0
  5. data/Rakefile +79 -0
  6. data/lib/jopenssl.jar +0 -0
  7. data/lib/jopenssl/version.rb +5 -0
  8. data/lib/openssl.rb +76 -0
  9. data/lib/openssl/bn.rb +35 -0
  10. data/lib/openssl/buffering.rb +239 -0
  11. data/lib/openssl/cipher.rb +65 -0
  12. data/lib/openssl/config.rb +316 -0
  13. data/lib/openssl/digest.rb +61 -0
  14. data/lib/openssl/dummy.rb +33 -0
  15. data/lib/openssl/dummyssl.rb +14 -0
  16. data/lib/openssl/pkcs7.rb +25 -0
  17. data/lib/openssl/ssl.rb +179 -0
  18. data/lib/openssl/x509.rb +154 -0
  19. data/test/cert_with_ec_pk.cer +27 -0
  20. data/test/fixture/ca-bundle.crt +2794 -0
  21. data/test/fixture/ca_path/72fa7371.0 +19 -0
  22. data/test/fixture/ca_path/verisign.pem +19 -0
  23. data/test/fixture/cacert.pem +23 -0
  24. data/test/fixture/cert_localhost.pem +19 -0
  25. data/test/fixture/common.pem +48 -0
  26. data/test/fixture/imaps/cacert.pem +60 -0
  27. data/test/fixture/imaps/server.crt +61 -0
  28. data/test/fixture/imaps/server.key +15 -0
  29. data/test/fixture/key_then_cert.pem +34 -0
  30. data/test/fixture/keypair.pem +27 -0
  31. data/test/fixture/localhost_keypair.pem +18 -0
  32. data/test/fixture/max.pem +29 -0
  33. data/test/fixture/purpose/b70a5bc1.0 +24 -0
  34. data/test/fixture/purpose/ca/PASSWD_OF_CA_KEY_IS_1234 +0 -0
  35. data/test/fixture/purpose/ca/ca_config.rb +37 -0
  36. data/test/fixture/purpose/ca/cacert.pem +24 -0
  37. data/test/fixture/purpose/ca/newcerts/2_cert.pem +19 -0
  38. data/test/fixture/purpose/ca/newcerts/3_cert.pem +19 -0
  39. data/test/fixture/purpose/ca/private/cakeypair.pem +30 -0
  40. data/test/fixture/purpose/ca/serial +1 -0
  41. data/test/fixture/purpose/cacert.pem +24 -0
  42. data/test/fixture/purpose/scripts/gen_cert.rb +127 -0
  43. data/test/fixture/purpose/scripts/gen_csr.rb +50 -0
  44. data/test/fixture/purpose/scripts/init_ca.rb +66 -0
  45. data/test/fixture/purpose/sslclient.pem +19 -0
  46. data/test/fixture/purpose/sslclient/csr.pem +10 -0
  47. data/test/fixture/purpose/sslclient/keypair.pem +15 -0
  48. data/test/fixture/purpose/sslclient/sslclient.pem +19 -0
  49. data/test/fixture/purpose/sslserver.pem +19 -0
  50. data/test/fixture/purpose/sslserver/csr.pem +10 -0
  51. data/test/fixture/purpose/sslserver/keypair.pem +15 -0
  52. data/test/fixture/purpose/sslserver/sslserver.pem +19 -0
  53. data/test/fixture/selfcert.pem +23 -0
  54. data/test/fixture/verisign.pem +19 -0
  55. data/test/fixture/verisign_c3.pem +14 -0
  56. data/test/java/pkcs7_mime_enveloped.message +19 -0
  57. data/test/java/pkcs7_mime_signed.message +30 -0
  58. data/test/java/pkcs7_multipart_signed.message +45 -0
  59. data/test/java/test_java_attribute.rb +25 -0
  60. data/test/java/test_java_bio.rb +42 -0
  61. data/test/java/test_java_mime.rb +173 -0
  62. data/test/java/test_java_pkcs7.rb +772 -0
  63. data/test/java/test_java_smime.rb +177 -0
  64. data/test/openssl/ssl_server.rb +99 -0
  65. data/test/openssl/test_asn1.rb +197 -0
  66. data/test/openssl/test_cipher.rb +193 -0
  67. data/test/openssl/test_config.rb +290 -0
  68. data/test/openssl/test_digest.rb +88 -0
  69. data/test/openssl/test_ec.rb +128 -0
  70. data/test/openssl/test_hmac.rb +46 -0
  71. data/test/openssl/test_ns_spki.rb +59 -0
  72. data/test/openssl/test_pair.rb +141 -0
  73. data/test/openssl/test_pkcs7.rb +489 -0
  74. data/test/openssl/test_pkey_rsa.rb +49 -0
  75. data/test/openssl/test_ssl.rb +1035 -0
  76. data/test/openssl/test_x509cert.rb +277 -0
  77. data/test/openssl/test_x509crl.rb +253 -0
  78. data/test/openssl/test_x509ext.rb +99 -0
  79. data/test/openssl/test_x509name.rb +290 -0
  80. data/test/openssl/test_x509req.rb +195 -0
  81. data/test/openssl/test_x509store.rb +246 -0
  82. data/test/openssl/utils.rb +144 -0
  83. data/test/ref/a.out +0 -0
  84. data/test/ref/compile.rb +8 -0
  85. data/test/ref/pkcs1 +0 -0
  86. data/test/ref/pkcs1.c +21 -0
  87. data/test/test_all.rb +1 -0
  88. data/test/test_certificate.rb +123 -0
  89. data/test/test_cipher.rb +197 -0
  90. data/test/test_imaps.rb +107 -0
  91. data/test/test_integration.rb +144 -0
  92. data/test/test_java.rb +98 -0
  93. data/test/test_openssl.rb +4 -0
  94. data/test/test_parse_certificate.rb +27 -0
  95. data/test/test_pkcs7.rb +40 -0
  96. data/test/test_pkey.rb +204 -0
  97. data/test/test_ssl.rb +97 -0
  98. data/test/test_x509store.rb +160 -0
  99. data/test/ut_eof.rb +128 -0
  100. metadata +161 -0
@@ -0,0 +1,10 @@
1
+ -----BEGIN CERTIFICATE REQUEST-----
2
+ MIIBfDCB5gIBADA9MQswCQYDVQQGEwJKUDEaMBgGA1UECgwRd3d3LnJ1YnktbGFu
3
+ Zy5vcmcxEjAQBgNVBAMMCXNzbHNlcnZlcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
4
+ gYkCgYEA4GLGs2r30Wu9siuKn5yIzqw0/VL9k6C+LMGxPOj12OTfmL1IoN31ZjSa
5
+ O9q0+SZQDg7PjLSSVGifB7HM5Rna4Y01sk/9H8qGP6wuJouVBQEgQm2qGr4gz4G4
6
+ SOnoQWOnebxGEDlu/Xy/eSiGvjshs1DWMvhJEsSZr7f/BCWLaiMCAwEAAaAAMA0G
7
+ CSqGSIb3DQEBBAUAA4GBAFpQTo9v0rOmfP/m9WSfUMEXsWUl/NP8c7slM4M0wNOX
8
+ iI/e2XiyywgOSJlmCdvmrMeSmrhHbLZvIsQUj7CR9fZ4pxz0eX/JwclmlhS+StH8
9
+ C3HHxlLUOZpnLVl4R3PXoDTCHLuSiQod3WNNiqEdzaRn4jrNv8LgzJtgSseikwDA
10
+ -----END CERTIFICATE REQUEST-----
@@ -0,0 +1,15 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIICXwIBAAKBgQDgYsazavfRa72yK4qfnIjOrDT9Uv2ToL4swbE86PXY5N+YvUig
3
+ 3fVmNJo72rT5JlAODs+MtJJUaJ8HsczlGdrhjTWyT/0fyoY/rC4mi5UFASBCbaoa
4
+ viDPgbhI6ehBY6d5vEYQOW79fL95KIa+OyGzUNYy+EkSxJmvt/8EJYtqIwIDAQAB
5
+ AoGBAJy/o/s2YIRldZD/pck2esOVvTayQP5eLjvp2zynqQapbCGxKQlnxMRvPsdN
6
+ U1sxjn8jjY3HnulkZKPlazMoSqQy+7JIOzgG8UelDk/4OuuJWQZ26P/Qzza0k5we
7
+ Sisc8/3xkCzv9RoRIm2VvAAuuSHiZwQTHBP0M6yg9R2+sSpxAkEA+RL48KB9tCyx
8
+ wo8Tn1WKK2GUoGj+pJJ16uq5taUlRKBwvasHNEu96TlrAHNeq+YnFCeLTbvCkU5P
9
+ 2GaauRV8TQJBAOagD5u+duKB3go+YywRHVcFrv+u9ejS9onfhvwhgciVpCrNR5RX
10
+ YqhJ3K4ciHEs5OQGsDLPY+dtl1b4AP5r+C8CQQCpyLcNQDmwEi9yUpmrqWGwRKpN
11
+ 1oSOpo/e/PZuzg5jg4KWp/kXOvJQAyXffsVwJElLQdGBwZXV+y4Oc5LQy8aZAkEA
12
+ 3dsaSMO3z/wIYqhTdL/eDqncCAECdQAExOswCnodRJ2XeMlTU4Og161+SkwOgXkj
13
+ k6xPcgGJ5MbLMJGROy8YZwJBAK+wq+c/x/BeqtnOIqQnDpgxH7Ox1VA0bbaGPq++
14
+ l24EYVsaJpPty7w7M+B7N5XD5GDVDSeG9Xdf/uyCDX7isFc=
15
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDBjCCAe6gAwIBAgIBAjANBgkqhkiG9w0BAQUFADBMMQswCQYDVQQGEwJKUDEa
3
+ MBgGA1UECgwRd3d3LnJ1YnktbGFuZy5vcmcxFDASBgNVBAsMC2RldmVsb3BtZW50
4
+ MQswCQYDVQQDDAJDQTAeFw0wOTExMTkxMDMwMTdaFw0yODExMTQxMDMwMTdaMD0x
5
+ CzAJBgNVBAYTAkpQMRowGAYDVQQKDBF3d3cucnVieS1sYW5nLm9yZzESMBAGA1UE
6
+ AwwJc3Nsc2VydmVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgYsazavfR
7
+ a72yK4qfnIjOrDT9Uv2ToL4swbE86PXY5N+YvUig3fVmNJo72rT5JlAODs+MtJJU
8
+ aJ8HsczlGdrhjTWyT/0fyoY/rC4mi5UFASBCbaoaviDPgbhI6ehBY6d5vEYQOW79
9
+ fL95KIa+OyGzUNYy+EkSxJmvt/8EJYtqIwIDAQABo4GFMIGCMAwGA1UdEwEB/wQC
10
+ MAAwMQYJYIZIAYb4QgENBCQWIlJ1YnkvT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlm
11
+ aWNhdGUwHQYDVR0OBBYEFJsUyGU/R4muSKVIeckJElcBNbipMAsGA1UdDwQEAwIF
12
+ oDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAQEAAc49qdDC
13
+ TzFoWy794TYEx/uSAFQPMxp/dktYuMvtMSqhOfkDAaX7YFAD40R9tQljm6Vb7uEB
14
+ afAecveSyBN2EPZas8NdohJJcTT/pu39E9iMuvAoxz+R8RV7S/RikFOtoet79owa
15
+ 6lnD3893tz5RR5BloRX7yRii87U5LUdxd3CvEmA7ycNTO8ZEaAuLDitsTMxhPiIJ
16
+ DeGW5L8DCyiWuDt9K6S13XdnDxTvYUmafVPU59BncdSoY/3BebappMzDM8QM0yCZ
17
+ GWh7ItY4sncMur1fc9ZuSsyplT3d3jysmVXolz2khxboMPVBoRSTtgBOn1PSsVma
18
+ FWULbrbYBK5Cqg==
19
+ -----END CERTIFICATE-----
@@ -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-----
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
3
+ BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
4
+ c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
5
+ MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
6
+ emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
7
+ DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
8
+ FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
9
+ UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
10
+ YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
11
+ MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
12
+ AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
13
+ pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
14
+ 13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
15
+ AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
16
+ U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
17
+ F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
18
+ oJ2daZH9
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,14 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
3
+ A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
4
+ cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
5
+ MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
6
+ BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
7
+ YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
8
+ ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
9
+ BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
10
+ I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
11
+ CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
12
+ lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
13
+ AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
14
+ -----END CERTIFICATE-----
@@ -0,0 +1,19 @@
1
+ MIME-Version: 1.0
2
+ Message-Id: <00103112005203.00349@amyemily.ig.com>
3
+ Date: Tue, 31 Oct 2000 12:00:52 -0600 (Central Standard Time)
4
+ From: User1
5
+ To: User2
6
+ Subject: Example 5.3
7
+ Content-Type: application/pkcs7-mime;
8
+ name=smime.p7m;
9
+ smime-type=enveloped-data
10
+ Content-Transfer-Encoding: base64
11
+ Content-Disposition: attachment; filename=smime.p7m
12
+
13
+
14
+ MIIBHgYJKoZIhvcNAQcDoIIBDzCCAQsCAQAxgcAwgb0CAQAwJjASMRAwDgYDVQQDEwdDYXJ
15
+ sUlNBAhBGNGvHgABWvBHTbi7NXXHQMA0GCSqGSIb3DQEBAQUABIGAC3EN5nGIiJi2lsGPcP
16
+ 2iJ97a4e8kbKQz36zg6Z2i0yx6zYC4mZ7mX7FBs3IWg+f6KgCLx3M1eCbWx8+MDFbbpXadC
17
+ DgO8/nUkUNYeNxJtuzubGgzoyEd8Ch4H/dd9gdzTd+taTEgS0ipdSJuNnkVY4/M652jKKHR
18
+ LFf02hosdR8wQwYJKoZIhvcNAQcBMBQGCCqGSIb3DQMHBAgtaMXpRwZRNYAgDsiSf8Z9P43
19
+ LrY4OxUk660cu1lXeCSFOSOpOJ7FuVyU=
@@ -0,0 +1,30 @@
1
+ MIME-Version: 1.0
2
+ To: User2@examples.com
3
+ From: aliceDss@examples.com
4
+ Subject: Example 4.9
5
+ Message-Id: <021031164540300.304@examples.com>
6
+ Date: Thu, 31 Oct 2002 16:45:14 -0300
7
+ Content-Type: application/pkcs7-mime; smime-type=signed-data;
8
+ name=smime.p7m
9
+ Content-Transfer-Encoding: base64
10
+ Content-Disposition: attachment; filename=smime.p7m
11
+
12
+
13
+ MIIDmQYJKoZIhvcNAQcCoIIDijCCA4YCAQExCTAHBgUrDgMCGjAtBgkqhkiG9w0BBwGgIAQ
14
+ eDQpUaGlzIGlzIHNvbWUgc2FtcGxlIGNvbnRlbnQuoIIC4DCCAtwwggKboAMCAQICAgDIMA
15
+ kGByqGSM44BAMwEjEQMA4GA1UEAxMHQ2FybERTUzAeFw05OTA4MTcwMTEwNDlaFw0zOTEyM
16
+ zEyMzU5NTlaMBMxETAPBgNVBAMTCEFsaWNlRFNTMIIBtjCCASsGByqGSM44BAEwggEeAoGB
17
+ AIGNze2D6gqeOT7CSCij5EeT3Q7XqA7sU8WrhAhP/5Thc0h+DNbzREjR/p+vpKGJL+HZMMg
18
+ 23j+bv7dM3F9piuR10DcMkQiVm96nXvn89J8v3UOoi1TxP7AHCEdNXYjDw7Wz41UIddU5dh
19
+ DEeL3/nbCElzfy5FEbteQJllzzflvbAhUA4kemGkVmuBPG2o+4NyErYov3k80CgYAmONAUi
20
+ TKqOfs+bdlLWWpMdiM5BAI1XPLLGjDDHlBd3ZtZ4s2qBT1YwHuiNrhuB699ikIlp/R1z0oI
21
+ Xks+kPht6pzJIYo7dhTpzi5dowfNI4W4LzABfG1JiRGJNkS9+MiVSlNWteL5c+waYTYfEX/
22
+ Cve3RUP+YdMLRgUpgObo2OQOBhAACgYBc47ladRSWC6l63eM/qeysXty9txMRNKYWiSgRI9
23
+ k0hmd1dRMSPUNbb+VRv/qJ8qIbPiR9PQeNW2PIu0WloErjhdbOBoA/6CN+GvIkq1MauCcNH
24
+ u8Iv2YUgFxirGX6FYvxuzTU0pY39mFHssQyhPB+QUD9RqdjTjPypeL08oPluKOBgTB/MAwG
25
+ A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgbAMB8GA1UdIwQYMBaAFHBEPoIub4feStN14z0
26
+ gvEMrk/EfMB0GA1UdDgQWBBS+bKGz48H37UNwpM4TAeL945f+zTAfBgNVHREEGDAWgRRBbG
27
+ ljZURTU0BleGFtcGxlLmNvbTAJBgcqhkjOOAQDAzAAMC0CFFUMpBkfQiuJcSIzjYNqtT1na
28
+ 79FAhUAn2FTUlQLXLLd2ud2HeIQUltDXr0xYzBhAgEBMBgwEjEQMA4GA1UEAxMHQ2FybERT
29
+ UwICAMgwBwYFKw4DAhowCQYHKoZIzjgEAwQuMCwCFD1cSW6LIUFzeXle3YI5SKSBer/sAhQ
30
+ mCq7s/CTFHOEjgASeUjbMpx5g6A==
@@ -0,0 +1,45 @@
1
+ MIME-Version: 1.0
2
+ To: User2@examples.com
3
+ From: aliceDss@examples.com
4
+ Subject: Example 4.8
5
+ Message-Id: <020906002550300.249@examples.com>
6
+ Date: Fri, 06 Sep 2002 00:25:21 -0300
7
+ Content-Type: multipart/signed;
8
+ micalg=SHA1;
9
+ boundary="----=_NextBoundry____Fri,_06_Sep_2002_00:25:21";
10
+ protocol="application/pkcs7-signature"
11
+
12
+
13
+ This is a multi-part message in MIME format.
14
+
15
+
16
+ ------=_NextBoundry____Fri,_06_Sep_2002_00:25:21
17
+
18
+ This is some sample content.
19
+
20
+ ------=_NextBoundry____Fri,_06_Sep_2002_00:25:21
21
+ Content-Type: application/pkcs7-mime; name=smime.p7s
22
+ Content-Transfer-Encoding: base64
23
+ Content-Disposition: attachment; filename=smime.p7s
24
+
25
+
26
+ MIIDdwYJKoZIhvcNAQcCoIIDaDCCA2QCAQExCTAHBgUrDgMCGjALBgkqhkiG9w0BBwGgggL
27
+ gMIIC3DCCApugAwIBAgICAMgwCQYHKoZIzjgEAzASMRAwDgYDVQQDEwdDYXJsRFNTMB4XDT
28
+ k5MDgxNzAxMTA0OVoXDTM5MTIzMTIzNTk1OVowEzERMA8GA1UEAxMIQWxpY2VEU1MwggG2M
29
+ IIBKwYHKoZIzjgEATCCAR4CgYEAgY3N7YPqCp45PsJIKKPkR5PdDteoDuxTxauECE//lOFz
30
+ SH4M1vNESNH+n6+koYkv4dkwyDbeP5u/t0zcX2mK5HXQNwyRCJWb3qde+fz0ny/dQ6iLVPE
31
+ /sAcIR01diMPDtbPjVQh11Tl2EMR4vf+dsISXN/LkURu15AmWXPN+W9sCFQDiR6YaRWa4E8
32
+ baj7g3IStii/eTzQKBgCY40BSJMqo5+z5t2UtZakx2IzkEAjVc8ssaMMMeUF3dm1nizaoFP
33
+ VjAe6I2uG4Hr32KQiWn9HXPSgheSz6Q+G3qnMkhijt2FOnOLl2jB80jhbgvMAF8bUmJEYk2
34
+ RL34yJVKU1a14vlz7BphNh8Rf8K97dFQ/5h0wtGBSmA5ujY5A4GEAAKBgFzjuVp1FJYLqXr
35
+ d4z+p7Kxe3L23ExE0phaJKBEj2TSGZ3V1ExI9Q1tv5VG/+onyohs+JH09B41bY8i7RaWgSu
36
+ OF1s4GgD/oI34a8iSrUxq4Jw0e7wi/ZhSAXGKsZfoVi/G7NNTSljf2YUeyxDKE8H5BQP1Gp
37
+ 2NOM/Kl4vTyg+W4o4GBMH8wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBsAwHwYDVR0j
38
+ BBgwFoAUcEQ+gi5vh95K03XjPSC8QyuT8R8wHQYDVR0OBBYEFL5sobPjwfftQ3CkzhMB4v3
39
+ jl/7NMB8GA1UdEQQYMBaBFEFsaWNlRFNTQGV4YW1wbGUuY29tMAkGByqGSM44BAMDMAAwLQ
40
+ IUVQykGR9CK4lxIjONg2q1PWdrv0UCFQCfYVNSVAtcst3a53Yd4hBSW0NevTFjMGECAQEwG
41
+ DASMRAwDgYDVQQDEwdDYXJsRFNTAgIAyDAHBgUrDgMCGjAJBgcqhkjOOAQDBC4wLAIUM/mG
42
+ f6gkgp9Z0XtRdGimJeB/BxUCFGFFJqwYRt1WYcIOQoGiaowqGzVI
43
+
44
+
45
+ ------=_NextBoundry____Fri,_06_Sep_2002_00:25:21--
@@ -0,0 +1,25 @@
1
+ module PKCS7Test
2
+ class TestJavaAttribute < Test::Unit::TestCase
3
+ def test_attributes
4
+ val = ASN1::OctetString.new("foo".to_java_bytes)
5
+ val2 = ASN1::OctetString.new("bar".to_java_bytes)
6
+ attr = Attribute.create(123, 444, val)
7
+ assert_raise NoMethodError do
8
+ attr.type = 12
9
+ end
10
+ assert_raise NoMethodError do
11
+ attr.value = val2
12
+ end
13
+
14
+ assert_equal 123, attr.type
15
+ assert_equal val, attr.set.get(0)
16
+
17
+ attr2 = Attribute.create(123, 444, val)
18
+
19
+ assert_equal attr, attr2
20
+
21
+ assert_not_equal Attribute.create(124, 444, val), attr
22
+ assert_not_equal Attribute.create(123, 444, val2), attr
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,42 @@
1
+ module PKCS7Test
2
+ class TestJavaBIO < Test::Unit::TestCase
3
+ def test_string_bio_simple
4
+ bio = BIO::from_string("abc")
5
+ arr = Java::byte[20].new
6
+ read = bio.gets(arr, 10)
7
+ assert_equal 3, read
8
+ assert_equal "abc".to_java_bytes.to_a, arr.to_a[0...read]
9
+ end
10
+
11
+ def test_string_bio_simple_with_newline
12
+ bio = BIO::from_string("abc\n")
13
+ arr = Java::byte[20].new
14
+ read = bio.gets(arr, 10)
15
+ assert_equal 4, read
16
+ assert_equal "abc\n".to_java_bytes.to_a, arr.to_a[0...read]
17
+ end
18
+
19
+ def test_string_bio_simple_with_newline_and_more_data
20
+ bio = BIO::from_string("abc\nfoo\n\nbar")
21
+ arr = Java::byte[20].new
22
+ read = bio.gets(arr, 10)
23
+ assert_equal 4, read
24
+ assert_equal "abc\n".to_java_bytes.to_a, arr.to_a[0...read]
25
+
26
+ read = bio.gets(arr, 10)
27
+ assert_equal 4, read
28
+ assert_equal "foo\n".to_java_bytes.to_a, arr.to_a[0...read]
29
+
30
+ read = bio.gets(arr, 10)
31
+ assert_equal 1, read
32
+ assert_equal "\n".to_java_bytes.to_a, arr.to_a[0...read]
33
+
34
+ read = bio.gets(arr, 10)
35
+ assert_equal 3, read
36
+ assert_equal "bar".to_java_bytes.to_a, arr.to_a[0...read]
37
+
38
+ read = bio.gets(arr, 10)
39
+ assert_equal 0, read
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,173 @@
1
+ module PKCS7Test
2
+ class TestJavaMime < Test::Unit::TestCase
3
+ def test_find_header_returns_null_on_nonexisting_header
4
+ headers = []
5
+ assert_nil Mime::DEFAULT.find_header(headers, "foo")
6
+
7
+ headers = [MimeHeader.new("blarg", "bluff")]
8
+ assert_nil Mime::DEFAULT.find_header(headers, "foo")
9
+ end
10
+
11
+ def test_find_header_returns_the_header_with_the_same_name
12
+ hdr = MimeHeader.new("one", "two")
13
+ assert_equal hdr, Mime::DEFAULT.find_header([hdr], "one")
14
+ end
15
+
16
+ def test_find_param_returns_null_on_nonexisting_param
17
+ assert_nil Mime::DEFAULT.find_param(MimeHeader.new("one", "two", []), "foo")
18
+ assert_nil Mime::DEFAULT.find_param(MimeHeader.new("one", "two", [MimeParam.new("hi", "ho")]), "foo")
19
+ end
20
+
21
+ def test_find_param_returns_the_param_with_the_same_name
22
+ par = MimeParam.new("hox", "box")
23
+ hdr = MimeHeader.new("one", "two", [par])
24
+ assert_equal par, Mime::DEFAULT.find_param(hdr, "hox")
25
+ end
26
+
27
+ def test_simple_parse_headers
28
+ bio = BIO::from_string("Foo: bar")
29
+ result = Mime::DEFAULT.parse_headers(bio)
30
+ assert_equal 1, result.size
31
+ assert_equal MimeHeader.new("Foo", "bar"), result[0]
32
+ assert_equal "foo", result[0].name
33
+ end
34
+
35
+ def test_simple_parse_headers2
36
+ bio = BIO::from_string("Foo:bar")
37
+ result = Mime::DEFAULT.parse_headers(bio)
38
+ assert_equal 1, result.size
39
+ assert_equal MimeHeader.new("Foo", "bar"), result[0]
40
+ assert_equal "foo", result[0].name
41
+ end
42
+
43
+ def test_simple_parse_headers3
44
+ bio = BIO::from_string("Foo: bar")
45
+ result = Mime::DEFAULT.parse_headers(bio)
46
+ assert_equal 1, result.size
47
+ assert_equal MimeHeader.new("Foo", "bar"), result[0]
48
+ assert_equal "foo", result[0].name
49
+ end
50
+
51
+ def test_simple_parse_headers4
52
+ bio = BIO::from_string("Foo: bar\n")
53
+ result = Mime::DEFAULT.parse_headers(bio)
54
+ assert_equal 1, result.size
55
+ assert_equal MimeHeader.new("Foo", "bar"), result[0]
56
+ assert_equal "foo", result[0].name
57
+ end
58
+
59
+ def test_simple_parse_headers5
60
+ bio = BIO::from_string(" Foo : bar \n")
61
+ result = Mime::DEFAULT.parse_headers(bio)
62
+ assert_equal 1, result.size
63
+ assert_equal MimeHeader.new("Foo", "bar"), result[0]
64
+ assert_equal "foo", result[0].name
65
+ end
66
+
67
+
68
+ def test_simple_parse_headers6
69
+ bio = BIO::from_string("Foo: bar;\n")
70
+ result = Mime::DEFAULT.parse_headers(bio)
71
+ assert_equal 1, result.size
72
+ assert_equal MimeHeader.new("Foo", "bar"), result[0]
73
+ assert_equal "foo", result[0].name
74
+ end
75
+
76
+ def test_simple_parse_headers7
77
+ bio = BIO::from_string("Foo: bar;\nFlurg: blarg")
78
+ result = Mime::DEFAULT.parse_headers(bio)
79
+ assert_equal 2, result.size
80
+ assert_equal MimeHeader.new("Foo", "bar"), result[0]
81
+ assert_equal MimeHeader.new("Flurg", "blarg"), result[1]
82
+ assert_equal "foo", result[0].name
83
+ assert_equal "flurg", result[1].name
84
+ end
85
+
86
+ def test_simple_parse_headers_quotes
87
+ bio = BIO::from_string("Foo: \"bar\"")
88
+ result = Mime::DEFAULT.parse_headers(bio)
89
+ assert_equal 1, result.size
90
+ assert_equal MimeHeader.new("Foo", "bar"), result[0]
91
+ assert_equal "foo", result[0].name
92
+ end
93
+
94
+ def test_simple_parse_headers_comment
95
+ bio = BIO::from_string("Foo: (this is the right thing)ba(and this is the wrong one)r")
96
+ result = Mime::DEFAULT.parse_headers(bio)
97
+ assert_equal 1, result.size
98
+ assert_equal MimeHeader.new("Foo", "(this is the right thing)ba(and this is the wrong one)r"), result[0]
99
+ assert_equal "foo", result[0].name
100
+ end
101
+
102
+ def test_parse_headers_with_param
103
+ bio = BIO::from_string("Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml")
104
+ result = Mime::DEFAULT.parse_headers(bio)
105
+ assert_equal 1, result.size
106
+ header = result[0]
107
+ assert_equal "content-type", header.name
108
+ assert_equal "multipart/related", header.value
109
+ assert_equal [MimeParam.new("boundary","MIME_boundary"),
110
+ MimeParam.new("type","text/xml")], header.params.to_a
111
+ end
112
+
113
+ def test_parse_headers_with_param_newline
114
+ bio = BIO::from_string("Content-Type: Multipart/Related\n boundary=MIME_boundary; type=text/xml")
115
+ result = Mime::DEFAULT.parse_headers(bio)
116
+ assert_equal 1, result.size
117
+ header = result[0]
118
+ assert_equal "content-type", header.name
119
+ assert_equal "multipart/related", header.value
120
+ assert_equal [MimeParam.new("boundary","MIME_boundary"),
121
+ MimeParam.new("type","text/xml")], header.params.to_a
122
+ end
123
+
124
+ def test_parse_headers_with_param_newline_and_semicolon
125
+ bio = BIO::from_string("Content-Type: Multipart/Related;\n boundary=MIME_boundary;\n Type=text/xml")
126
+ result = Mime::DEFAULT.parse_headers(bio)
127
+ assert_equal 1, result.size
128
+ header = result[0]
129
+ assert_equal "content-type", header.name
130
+ assert_equal "multipart/related", header.value
131
+ assert_equal [MimeParam.new("boundary","MIME_boundary"),
132
+ MimeParam.new("type","text/xml")], header.params.to_a
133
+ end
134
+
135
+ def test_advanced_mime_message
136
+ bio = BIO::from_string(MultipartSignedString)
137
+ result = Mime::DEFAULT.parse_headers(bio)
138
+
139
+ assert_equal "mime-version", result[0].name
140
+ assert_equal "1.0", result[0].value
141
+
142
+ assert_equal "to", result[1].name
143
+ assert_equal "user2@examples.com", result[1].value
144
+
145
+ assert_equal "from", result[2].name
146
+ assert_equal "alicedss@examples.com", result[2].value
147
+
148
+ assert_equal "subject", result[3].name
149
+ assert_equal "example 4.8", result[3].value
150
+
151
+ assert_equal "message-id", result[4].name
152
+ assert_equal "<020906002550300.249@examples.com>", result[4].value
153
+
154
+ assert_equal "date", result[5].name
155
+ assert_equal "fri, 06 sep 2002 00:25:21 -0300", result[5].value
156
+
157
+ assert_equal "content-type", result[6].name
158
+ assert_equal "multipart/signed", result[6].value
159
+
160
+ assert_equal "micalg", result[6].params[0].param_name
161
+ assert_equal "SHA1", result[6].params[0].param_value
162
+
163
+ assert_equal "boundary", result[6].params[1].param_name
164
+ assert_equal "----=_NextBoundry____Fri,_06_Sep_2002_00:25:21", result[6].params[1].param_value
165
+
166
+ assert_equal "protocol", result[6].params[2].param_name
167
+ assert_equal "application/pkcs7-signature", result[6].params[2].param_value
168
+
169
+ assert_equal 3, result[6].params.length
170
+ assert_equal 7, result.length
171
+ end
172
+ end
173
+ end