@@ -53,4 +53,90 @@ def test_load_empty_pkcs7
53
53
p7 = OpenSSL ::PKCS7 . new ( EMPTY_PEM )
54
54
assert_equal ( EMPTY_PEM , p7 . to_pem )
55
55
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
56
142
end
0 commit comments