@@ -53,4 +53,90 @@ def test_load_empty_pkcs7
5353 p7 = OpenSSL ::PKCS7 . new ( EMPTY_PEM )
5454 assert_equal ( EMPTY_PEM , p7 . to_pem )
5555 end
56+
57+ PKCS7_ENCODED = <<END
58+ MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEH
59+ AaCAJIAEggNDMIAGCSqGSIb3DQEHA6CAMIACAQAxge8wgewCAQAwVTBPMQ0w
60+ CwYDVQQKDAROb25lMT4wPAYDVQQDDDVtaGF1Y2sgUm9vdCBDQSAoMjc3YWYy
61+ YjMtYWMzZC00YjUzLTg4YzItOGMxOWYzZTY5YWE3KQICAgkwDQYJKoZIhvcN
62+ AQEBBQAEgYBO/v799CxX01nBuOE0HbQlJeZY9DD0dcpyss8C7rqLwuAbNf5F
63+ Ctb63amW/If8MgCFYTZoQgbleDugJBEGDa6+9t/VYivPX4E4Gy8lwn5giQsC
64+ E4O17Xj2w9Dnina5YlaSWFX16rCRXFJcGnRtAh37luM8hBVlhvtTEIGzO7pG
65+ mzCABgkqhkiG9w0BBwEwFAYIKoZIhvcNAwcECBwGOYbO/8iyoIAEggIAE5fd
66+ HnQILZOp1jOg0lU3ycXNew+6O75htpilXT7WsMXWR/veFbN+FfC1QjzjC5jj
67+ Ze7JqJ5cCP7jYQJ5sUFED6xU+m2iB4Tp8akCW4solC7bn3tbqVLYZeIGeP1Y
68+ lCAswysgFNX+SQixkXYRi6Hpjr3VsNcqBPgtSxMF1thPJDJH0IctIWPjsY1y
69+ YU75vsNpW5H4XdaPyhb7L9PH8EFwjZGHs13SjRI2QHN2jv818+0jMisEfRV0
70+ NOKZC7GAc2fiZEfnOclfs0CByS5TbkfRXSIXffDevGrf6xDldCnSlj5/BrxV
71+ vKpWmsIaZBzOMlVYOLbGdNKCiWabX4tEN2ZI3G5Cl9HXkvsJD0Yyfws9Hm+k
72+ S8bieL89AsgOkcraF1/ovvYFb+j1LggsyGggvc8g8sChOMyaej/GHzdF+ITe
73+ Q4JSKP2ULVkgnZw3BAsQkgKYSfX9vX2QGGkIdu4B/RUkT4/zLEzpsrPr6YI2
74+ NO+pz19Ye4ixQHEjAq1A2/d3JAlPK7ilm1LsyoMxte0Z3YT3UL1x/I7eukeo
75+ RZWfVTK6eWEOvI2y/Lb4TH9LCTWG9yzohC/I27FyDU2WO/DbuxNxHSisSAe8
76+ nRn/qu7lAa4i9hQhM9yCAzfCDcape1q7KAGMmDfEsHHl4dPgEStD9BD+kjRk
77+ 9/7VwesBGk1REenz/1gECLNU/weFEqHDAAAAAAAAAAAAAAAAAAAAAKCCAeow
78+ ggHmMIIBT6ADAgECAgEBMA0GCSqGSIb3DQEBBQUAMC8xLTArBgNVBAMTJDE4
79+ Q0I2RUM0LUVEMzItNEI1MS1CNjhCLUYxMTc2M0YxQUIzQTAeFw0xMjA1MDEw
80+ NzExMzVaFw0xMzA1MDEwNzExMzVaMC8xLTArBgNVBAMTJDE4Q0I2RUM0LUVE
81+ MzItNEI1MS1CNjhCLUYxMTc2M0YxQUIzQTCBnzANBgkqhkiG9w0BAQEFAAOB
82+ jQAwgYkCgYEAtsSbSGPJ66FAPKXpeTloXZ2Et0y5HqfbBsckq/7ZYyYXYH0e
83+ kSHcq1AXb80d4Os7fUg2g+v8JWOJ5/glauHX16LELZu+n69DnHmf7zKMBMl9
84+ ZpmfDPKPId2vc9uhJZrztmx7oR7c/3o3VzxwiXJYuOrzG0MFoq1tjDQV8F/w
85+ mikCAwEAAaMSMBAwDgYDVR0PAQH/BAQDAgWgMA0GCSqGSIb3DQEBBQUAA4GB
86+ AGfsA2uxZnMEl1UDSFP3hX+Y+71AxYqYbOMbuXIKyO7T2OCUBt1UdP5tmMN4
87+ LTpaTk1BrbXVoDxxNnjCGIWvEkafSK4b4yr9DPrBVF1n9CgtR4W0qkpLG1jP
88+ AcCKN6uBxDqyr7VCQXzVlYeKgj8TtO4B7xWQ+2dZ7E6E+QlxNePIMYIBqjCC
89+ AaYCAQEwNDAvMS0wKwYDVQQDEyQxOENCNkVDNC1FRDMyLTRCNTEtQjY4Qi1G
90+ MTE3NjNGMUFCM0ECAQEwCQYFKw4DAhoFAKCBzTASBgpghkgBhvhFAQkCMQQT
91+ AjE5MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
92+ DTEyMDUwMTA3MTEzNVowIAYKYIZIAYb4RQEJBTESBBCjDtiprW/z/yhpXTez
93+ P3j7MCMGCSqGSIb3DQEJBDEWBBTRqZ0CJJnkCJNn148ZdfBYS1u0dDA4Bgpg
94+ hkgBhvhFAQkHMSoTKEE1NEQ3NTdDQjhEOTA0M0IxQzFFOTJDNzc3NUU1ODU3
95+ QjRGQ0E0MzIwDQYJKoZIhvcNAQEBBQAEgYBEmCQpweH01WUzed+GIN93+Rfc
96+ c1QT8j+w/m0UzCOtZwHs9PcxZeabNXgGXd9tfP5UqTna1Rpq4byyYBsyYXca
97+ DsYHCOlb0vH4UqfXJxt2P/ZsA2Oab/RR6in8YnpkJfvy+iaXK9U7Czkfv7q3
98+ NV1hYCfOJGunDqHTNx8dMwWkWgAAAAAAAA==
99+ END
100+
101+ PKCS7_DECODED = <<END
102+ -----BEGIN PKCS7-----
103+ MIIDOQYJKoZIhvcNAQcDoIIDKjCCAyYCAQAxge8wgewCAQAwVTBPMQ0wCwYDVQQK
104+ DAROb25lMT4wPAYDVQQDDDVtaGF1Y2sgUm9vdCBDQSAoMjc3YWYyYjMtYWMzZC00
105+ YjUzLTg4YzItOGMxOWYzZTY5YWE3KQICAgkwDQYJKoZIhvcNAQEBBQAEgYBO/v79
106+ 9CxX01nBuOE0HbQlJeZY9DD0dcpyss8C7rqLwuAbNf5FCtb63amW/If8MgCFYTZo
107+ QgbleDugJBEGDa6+9t/VYivPX4E4Gy8lwn5giQsCE4O17Xj2w9Dnina5YlaSWFX1
108+ 6rCRXFJcGnRtAh37luM8hBVlhvtTEIGzO7pGmzCCAi0GCSqGSIb3DQEHATAUBggq
109+ hkiG9w0DBwQIHAY5hs7/yLKAggIIE5fdHnQILZOp1jOg0lU3ycXNew+6O75htpil
110+ XT7WsMXWR/veFbN+FfC1QjzjC5jjZe7JqJ5cCP7jYQJ5sUFED6xU+m2iB4Tp8akC
111+ W4solC7bn3tbqVLYZeIGeP1YlCAswysgFNX+SQixkXYRi6Hpjr3VsNcqBPgtSxMF
112+ 1thPJDJH0IctIWPjsY1yYU75vsNpW5H4XdaPyhb7L9PH8EFwjZGHs13SjRI2QHN2
113+ jv818+0jMisEfRV0NOKZC7GAc2fiZEfnOclfs0CByS5TbkfRXSIXffDevGrf6xDl
114+ dCnSlj5/BrxVvKpWmsIaZBzOMlVYOLbGdNKCiWabX4tEN2ZI3G5Cl9HXkvsJD0Yy
115+ fws9Hm+kS8bieL89AsgOkcraF1/ovvYFb+j1LggsyGggvc8g8sChOMyaej/GHzdF
116+ +ITeQ4JSKP2ULVkgnZw3BAsQkgKYSfX9vX2QGGkIdu4B/RUkT4/zLEzpsrPr6YI2
117+ NO+pz19Ye4ixQHEjAq1A2/d3JAlPK7ilm1LsyoMxte0Z3YT3UL1x/I7eukeoRZWf
118+ VTK6eWEOvI2y/Lb4TH9LCTWG9yzohC/I27FyDU2WO/DbuxNxHSisSAe8nRn/qu7l
119+ Aa4i9hQhM9yCAzfCDcape1q7KAGMmDfEsHHl4dPgEStD9BD+kjRk9/7VwesBGk1R
120+ Eenz/1izVP8HhRKhww==
121+ -----END PKCS7-----
122+ END
123+
124+ def test_signed_pkcs7_octet_sequence
125+ p7signed = OpenSSL ::PKCS7 . new ( PKCS7_ENCODED . unpack ( 'm*' ) . first )
126+ p7signed . verify ( nil , OpenSSL ::X509 ::Store . new , nil , OpenSSL ::PKCS7 ::NOVERIFY )
127+
128+ p7 = OpenSSL ::PKCS7 . new ( p7signed . data )
129+
130+ assert_equal ( p7 . to_pem , PKCS7_DECODED )
131+ end
132+
133+ def test_degenerate_pkcs7_add_cert
134+ p7 = OpenSSL ::PKCS7 . new
135+ cert = OpenSSL ::X509 ::Certificate . new ( CERT_PEM )
136+ p7 . type = 'signed'
137+
138+ assert_nothing_raised do
139+ p7 . add_certificate ( cert )
140+ end
141+ end
56142end
0 commit comments