jruby-openssl-maven 0.7.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +171 -0
- data/License.txt +30 -0
- data/Manifest.txt +115 -0
- data/README.txt +13 -0
- data/Rakefile +79 -0
- data/lib/jopenssl.jar +0 -0
- data/lib/jopenssl/version.rb +5 -0
- data/lib/openssl.rb +76 -0
- data/lib/openssl/bn.rb +35 -0
- data/lib/openssl/buffering.rb +239 -0
- data/lib/openssl/cipher.rb +65 -0
- data/lib/openssl/config.rb +316 -0
- data/lib/openssl/digest.rb +61 -0
- data/lib/openssl/dummy.rb +33 -0
- data/lib/openssl/dummyssl.rb +14 -0
- data/lib/openssl/pkcs7.rb +25 -0
- data/lib/openssl/ssl.rb +179 -0
- data/lib/openssl/x509.rb +154 -0
- data/test/cert_with_ec_pk.cer +27 -0
- data/test/fixture/ca-bundle.crt +2794 -0
- data/test/fixture/ca_path/72fa7371.0 +19 -0
- data/test/fixture/ca_path/verisign.pem +19 -0
- data/test/fixture/cacert.pem +23 -0
- data/test/fixture/cert_localhost.pem +19 -0
- data/test/fixture/common.pem +48 -0
- data/test/fixture/imaps/cacert.pem +60 -0
- data/test/fixture/imaps/server.crt +61 -0
- data/test/fixture/imaps/server.key +15 -0
- data/test/fixture/key_then_cert.pem +34 -0
- data/test/fixture/keypair.pem +27 -0
- data/test/fixture/localhost_keypair.pem +18 -0
- data/test/fixture/max.pem +29 -0
- data/test/fixture/purpose/b70a5bc1.0 +24 -0
- data/test/fixture/purpose/ca/PASSWD_OF_CA_KEY_IS_1234 +0 -0
- data/test/fixture/purpose/ca/ca_config.rb +37 -0
- data/test/fixture/purpose/ca/cacert.pem +24 -0
- data/test/fixture/purpose/ca/newcerts/2_cert.pem +19 -0
- data/test/fixture/purpose/ca/newcerts/3_cert.pem +19 -0
- data/test/fixture/purpose/ca/private/cakeypair.pem +30 -0
- data/test/fixture/purpose/ca/serial +1 -0
- data/test/fixture/purpose/cacert.pem +24 -0
- data/test/fixture/purpose/scripts/gen_cert.rb +127 -0
- data/test/fixture/purpose/scripts/gen_csr.rb +50 -0
- data/test/fixture/purpose/scripts/init_ca.rb +66 -0
- data/test/fixture/purpose/sslclient.pem +19 -0
- data/test/fixture/purpose/sslclient/csr.pem +10 -0
- data/test/fixture/purpose/sslclient/keypair.pem +15 -0
- data/test/fixture/purpose/sslclient/sslclient.pem +19 -0
- data/test/fixture/purpose/sslserver.pem +19 -0
- data/test/fixture/purpose/sslserver/csr.pem +10 -0
- data/test/fixture/purpose/sslserver/keypair.pem +15 -0
- data/test/fixture/purpose/sslserver/sslserver.pem +19 -0
- data/test/fixture/selfcert.pem +23 -0
- data/test/fixture/verisign.pem +19 -0
- data/test/fixture/verisign_c3.pem +14 -0
- data/test/java/pkcs7_mime_enveloped.message +19 -0
- data/test/java/pkcs7_mime_signed.message +30 -0
- data/test/java/pkcs7_multipart_signed.message +45 -0
- data/test/java/test_java_attribute.rb +25 -0
- data/test/java/test_java_bio.rb +42 -0
- data/test/java/test_java_mime.rb +173 -0
- data/test/java/test_java_pkcs7.rb +772 -0
- data/test/java/test_java_smime.rb +177 -0
- data/test/openssl/ssl_server.rb +99 -0
- data/test/openssl/test_asn1.rb +197 -0
- data/test/openssl/test_cipher.rb +193 -0
- data/test/openssl/test_config.rb +290 -0
- data/test/openssl/test_digest.rb +88 -0
- data/test/openssl/test_ec.rb +128 -0
- data/test/openssl/test_hmac.rb +46 -0
- data/test/openssl/test_ns_spki.rb +59 -0
- data/test/openssl/test_pair.rb +141 -0
- data/test/openssl/test_pkcs7.rb +489 -0
- data/test/openssl/test_pkey_rsa.rb +49 -0
- data/test/openssl/test_ssl.rb +1035 -0
- data/test/openssl/test_x509cert.rb +277 -0
- data/test/openssl/test_x509crl.rb +253 -0
- data/test/openssl/test_x509ext.rb +99 -0
- data/test/openssl/test_x509name.rb +290 -0
- data/test/openssl/test_x509req.rb +195 -0
- data/test/openssl/test_x509store.rb +246 -0
- data/test/openssl/utils.rb +144 -0
- data/test/ref/a.out +0 -0
- data/test/ref/compile.rb +8 -0
- data/test/ref/pkcs1 +0 -0
- data/test/ref/pkcs1.c +21 -0
- data/test/test_all.rb +1 -0
- data/test/test_certificate.rb +123 -0
- data/test/test_cipher.rb +197 -0
- data/test/test_imaps.rb +107 -0
- data/test/test_integration.rb +144 -0
- data/test/test_java.rb +98 -0
- data/test/test_openssl.rb +4 -0
- data/test/test_parse_certificate.rb +27 -0
- data/test/test_pkcs7.rb +40 -0
- data/test/test_pkey.rb +204 -0
- data/test/test_ssl.rb +97 -0
- data/test/test_x509store.rb +160 -0
- data/test/ut_eof.rb +128 -0
- 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
|