Skip to content

Commit

Permalink
Use generated auth-enveloped files
Browse files Browse the repository at this point in the history
  • Loading branch information
ocheron committed Jul 9, 2023
1 parent 8504709 commit 94a13b4
Show file tree
Hide file tree
Showing 6 changed files with 330 additions and 34 deletions.
80 changes: 61 additions & 19 deletions tests/CMS/Tests.hs
Original file line number Diff line number Diff line change
Expand Up @@ -230,28 +230,70 @@ encryptedDataTests =

authEnvelopedDataTests :: TestTree
authEnvelopedDataTests =
testCaseSteps "AuthEnvelopedData" $ \step -> do
cms <- readCMSFile path
assertEqual "unexpected parse count" count (length cms)
testGroup "AuthEnvelopedData"
[ testKT "KTRI" path3
, testKA "KARI" path4
, test "KEKRI" path1 withRecipientKey
]
where test caseName path f = testCaseSteps caseName $ \step -> do
cms <- readCMSFile path
assertEqual "unexpected parse count" (length keys) (length cms)

forM_ (zip [0..] cms) $ \(index, ci) -> do
step ("testing vector " ++ show (index :: Int))
forM_ (zip [0..] cms) $ \(index, ci) -> do
let (name, key) = keys !! index

step ("testing " ++ name)
ae <- getAuthEnveloppedAttached ci
result <- openAuthEnvelopedData (f key) ae
assertRight result (verifyInnerMessage message)
testKT caseName path = testCaseSteps caseName $ \step -> do
let rsaPath = testFile "rsa-unencrypted-pkcs8.pem"
[Unprotected priv] <- readKeyFile rsaPath

cms <- readCMSFile path
assertEqual "unexpected parse count" (length modes * length keys) (length cms)

let pairs = [ (c, m) | c <- map fst keys, m <- modes ]
forM_ (zip pairs cms) $ \((c, m), ci) -> do
step ("testing " ++ c ++ " with " ++ m)
ae <- getAuthEnveloppedAttached ci
result <- openAuthEnvelopedData (withRecipientKeyTrans priv) ae
assertRight result (verifyInnerMessage message)
testKA caseName path = testCaseSteps caseName $ \step -> do
let ecdsaKeyPath = testFile "ecdsa-p256-unencrypted-pkcs8.pem"
ecdsaCertPath = testFile "ecdsa-p256-self-signed-cert.pem"
[Unprotected priv] <- readKeyFile ecdsaKeyPath
[cert] <- readSignedObject ecdsaCertPath

cms <- readCMSFile path
assertEqual "unexpected parse count" (length mds * length keys) (length cms)

let pairs = [ (c, h) | c <- map fst keys, h <- mds ]
forM_ (zip pairs cms) $ \((c, h), ci) -> do
step ("testing " ++ c ++ " with " ++ h)
ae <- getAuthEnveloppedAttached ci
result <- openAuthEnvelopedData (withRecipientKeyAgree priv cert) ae
assertRight result (verifyInnerMessage message)
getAuthEnveloppedAttached ci = do
assertBool "unexpected type" (hasType AuthEnvelopedDataType ci)
let AuthEnvelopedDataCI aeEncap = ci
ae <- getAttached aeEncap
result <- openAuthEnvelopedData (withRecipientPassword pwd) ae
assertRight result (verifyInnerMessage msg)

step ("testing encoded vector " ++ show index)
let [Just ci'] = pemToContentInfo [] (contentInfoToPEM ci)
AuthEnvelopedDataCI aeEncap' = ci'
ae' <- getAttached aeEncap'
result' <- openAuthEnvelopedData (withRecipientPassword pwd) ae'
assertRight result' (verifyInnerMessage msg)
where path = testFile "cms-auth-enveloped-data-rfc6476.pem"
pwd = fromString "password"
msg = fromString "Some test data\NUL"
count = 2
getAttached aeEncap
path1 = testFile "cms-auth-enveloped-kekri-data.pem"
path3 = testFile "cms-auth-enveloped-ktri-data.pem"
path4 = testFile "cms-auth-enveloped-kari-data.pem"
keys = [ ("AES128_GCM", testKey 16)
, ("AES192_GCM", testKey 24)
, ("AES256_GCM", testKey 32)
]
modes = [ "RSAES-PKCS1"
, "RSAES-OAEP"
]
mds = [ "SHA1"
, "SHA224"
, "SHA256"
, "SHA384"
, "SHA512"
]

propertyTests :: TestTree
propertyTests = localOption (QuickCheckMaxSize 5) $ testGroup "properties"
Expand Down
15 changes: 0 additions & 15 deletions tests/files/cms-auth-enveloped-data-rfc6476.pem

This file was deleted.

135 changes: 135 additions & 0 deletions tests/files/cms-auth-enveloped-kari-data.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBwaGBvgIBA6BRoU8wCQYHKoZIzj0CAQNC
AARLFBy9/eI4x8mR5wpZ774i/LeS8/FzuGegHdAo19bTdzUlv9kd69/0GzRF5ntH
27ueue5YBRmFOKSRnLiU2mq3MBgGCSuBBRCGSD8AAjALBglghkgBZQMEAQUwTDBK
MC4wITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4A
BBjXV1HlxJT+Z8o6n5HC4RNRe7j4sP48HpIwgAYJKoZIhvcNAQcBMB4GCWCGSAFl
AwQBBjARBAypQxH70WFEpg8UWToCARCggAQO6V6dHzqpE6FXmRa7arIAAAAABBCl
bbL/+bic+x2r79kZpLsSAAAAAAAA
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBvqGBuwIBA6BRoU8wCQYHKoZIzj0CAQNC
AASJYlJVbYCr1BOjZpCH5hjLV/2X23Xc0Z5eTI8FBqUXlYHH7d1S/jEGJDfCcvIx
TV9swOSRFK92I9kSVd9XCN1eMBUGBiuBBAELADALBglghkgBZQMEAQUwTDBKMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABBgE
Xp5V6/AbK9bFcwjRJ3fm20YWgQ2nBowwgAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQB
BjARBAyFVoCkD/eJA9YqjI8CARCggAQOpQwAlrBtnityfLYqU2sAAAAABBDLM+53
Uk0Pn3Y7MZ+Mbn5eAAAAAAAA
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBvqGBuwIBA6BRoU8wCQYHKoZIzj0CAQNC
AASufl1PpqFUZDuTCXzKMaGerIO5843VUFSwBudjyvovjAHTcGwPJjvS+3EH4NEn
7o/W7P09hwTSZ/rsBbBJPu+QMBUGBiuBBAELATALBglghkgBZQMEAQUwTDBKMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABBie
ykbOXeqVMmbDWw3Ehn/QTjMlNs1uCL4wgAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQB
BjARBAxEc1PrzckaDXBkWjgCARCggAQOuyUnmFAV/xahqSadwG8AAAAABBBi++VJ
NnU5UVDQ6q1zMRqfAAAAAAAA
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBvqGBuwIBA6BRoU8wCQYHKoZIzj0CAQNC
AATX8MYoU25w7qYU/CFl+JZdFQ1ePZP2yL+FUJeV76Etegb+eeTl0dG70MIpVP3c
uABRryMgV3jAniwgDnLDcLCrMBUGBiuBBAELAjALBglghkgBZQMEAQUwTDBKMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABBhe
7wfppjJXy8UnxeR3KYGpjqhss/Vdb/4wgAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQB
BjARBAyS8HZXcf5oDpq7XSYCARCggAQON5pXJ2YeE3u0Tu/JggsAAAAABBCDUZMb
f9iObxa0nURyr2uNAAAAAAAA
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBvqGBuwIBA6BRoU8wCQYHKoZIzj0CAQNC
AAQ50l98gMx9YTsLyif3Aj6ypa+8auXV415+hA7bgI5aXrY+20tvGbUheWAdCUM/
DVLWcYhsWEwTEmL6Z5dMrQDCMBUGBiuBBAELAzALBglghkgBZQMEAQUwTDBKMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABBjI
vXtw3gmmAn/yORO1a/NTTGqgmpOQq+swgAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQB
BjARBAw/RTlPW3aoaAWpb4ACARCggAQO7kbgLubm2M+hoanfMdkAAAAABBAeQyvO
tOT7PWNiqKaFTu9HAAAAAAAA
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGByaGBxgIBA6BRoU8wCQYHKoZIzj0CAQNC
AAS/VBtw4zaTtkAb45PJ8cuAYshMXy/F1lKa3ZA4E6u3np+dfQ+kBT5VrxpegvFj
Q/NdOxV4CTatDnNo8iH5h2d4MBgGCSuBBRCGSD8AAjALBglghkgBZQMEARkwVDBS
MC4wITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4A
BCB5X3DkEOElcCL2KEOiVJKcQpTqQWynlMyWeLe805y4YDCABgkqhkiG9w0BBwEw
HgYJYIZIAWUDBAEaMBEEDPX7veh9yNKL511dCwIBEKCABA5/r2CzelEUDNFaJtk8
jQAAAAAEEOWvi2b2dguSk94AjnrFBSAAAAAAAAA=
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBxqGBwwIBA6BRoU8wCQYHKoZIzj0CAQNC
AAQA3+RNupbspd7hUIQg7vXkrzB01ofr/7s7WuASl0OdzgJ3mBt3a5xtW7IqTE+B
3Vw9J4mkAa9PLi3Iq9SEkZ5aMBUGBiuBBAELADALBglghkgBZQMEARkwVDBSMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABCDl
4XWpLmEPvdcqjhnf7xp8sDnDIVZ/eKXxzQ8YU7+avTCABgkqhkiG9w0BBwEwHgYJ
YIZIAWUDBAEaMBEEDIKxljwkGp/uATZNuQIBEKCABA4JT8FfOkbtIUd9TPivOgAA
AAAEEOTGxEy5JLrS0+nAg5HtSDEAAAAAAAA=
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBxqGBwwIBA6BRoU8wCQYHKoZIzj0CAQNC
AARJpGAQMIpwZgHJpg2o1wmxGYoNcgtHEhedsOFLpQdou3G69y0eDgX7nB0tvRt7
oYZEbgLPk7f4AECFVWSxnby9MBUGBiuBBAELATALBglghkgBZQMEARkwVDBSMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABCD0
HNfAnxgaNrlr1hC6M6O34Vyq1ZZ7MAInchQ6QjW8/TCABgkqhkiG9w0BBwEwHgYJ
YIZIAWUDBAEaMBEEDDj5sfWnIjCmTf1y9wIBEKCABA5k60PO+CFkHN/evabZmwAA
AAAEEJCwak43a0Ga4riBRKY9CNsAAAAAAAA=
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBxqGBwwIBA6BRoU8wCQYHKoZIzj0CAQNC
AAQj7fNzGeluKhvEL1t7QM9hnKiNItc4UEkHFzz3WJqepjx14l057XMAQoiyut9G
+W+Ddqx+ozVQOxu1RO5BHEY/MBUGBiuBBAELAjALBglghkgBZQMEARkwVDBSMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABCBO
XDmcoiudX6iCODyKyf+kj4ahTrVfH/kWYbocdvgrCzCABgkqhkiG9w0BBwEwHgYJ
YIZIAWUDBAEaMBEEDL9ZV62lILi166Kr/wIBEKCABA7ayB6TLDk4NOQYpj6kvAAA
AAAEEOiMHVSsVG7a7WcQp7DQmcgAAAAAAAA=
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBxqGBwwIBA6BRoU8wCQYHKoZIzj0CAQNC
AAQnuS9ANZe6b7GWHi5qQQozrTubhuGToeFZAdQtiz95z5OrgWkmiX6ERkwaN1xB
06M7crT9vuG0pX4GoboI4p4nMBUGBiuBBAELAzALBglghkgBZQMEARkwVDBSMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABCA0
PNagjdeo/KS1G+Y/lqmh3Rvz0T4rIVYChhNdvZWxbzCABgkqhkiG9w0BBwEwHgYJ
YIZIAWUDBAEaMBEEDInQ2rexl6MGVX7tsgIBEKCABA4yHXaDnnVGt09Ctn67lgAA
AAAEEGUG2rPiuRtGhTarSuS64uQAAAAAAAA=
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGB0aGBzgIBA6BRoU8wCQYHKoZIzj0CAQNC
AARnR8BsuxfZyGI8EufwUGDG+XuPF/1XzhhogH1DpHQy9XON4DUyLvlkWP+voIwE
uMApKF5ESL1IL8T6UnzoN55AMBgGCSuBBRCGSD8AAjALBglghkgBZQMEAS0wXDBa
MC4wITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4A
BCgetPskb6M89OJ/Q6C9WwJYZrbT9Upvvktf8EHiRPWPri4BWOc8hcn8MIAGCSqG
SIb3DQEHATAeBglghkgBZQMEAS4wEQQMxjZlfwz1CXn6KQBeAgEQoIAEDq6U8zcr
EcjV5QDm7KA0AAAAAAQQruuKaBMv3S7igAIPPQp5jwAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBzqGBywIBA6BRoU8wCQYHKoZIzj0CAQNC
AAQEtpMiE4i41ln4lBfxorG/Mz7ENYFhI3FFjzvphl+/n58x3AhZHsKdJQfiBgwQ
NbRjVoSg6gqA1NgwlJfMdC5yMBUGBiuBBAELADALBglghkgBZQMEAS0wXDBaMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABCie
fGtGheoPu9MlqzfxIkshaxv58mwcvnrO7Zjztbr/Y8iu+mQc6UVHMIAGCSqGSIb3
DQEHATAeBglghkgBZQMEAS4wEQQMRnxKZZFpluuCvzMUAgEQoIAEDgbHkpLneCpj
J3kFkjUHAAAAAAQQiRN5pWovrd3DmXkxUfScsgAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBzqGBywIBA6BRoU8wCQYHKoZIzj0CAQNC
AARK9880f2VoFvmoN8xEHSn68EplcakaakOQgEqIJqYhQtk+jzWcONqFH13Tydf0
twC6i18Ip33oM4qNO5baDw+/MBUGBiuBBAELATALBglghkgBZQMEAS0wXDBaMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABCgU
SlctsM4RmvAM189y5SF74X37M5v7amwj7Q2NxcwdqYq/T2Spvjh0MIAGCSqGSIb3
DQEHATAeBglghkgBZQMEAS4wEQQMMaNatdENR6VvbGKnAgEQoIAEDmuLMPNqEAZV
4G5072SbAAAAAAQQZil2/HiSIzjZEhj2xQjSCgAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBzqGBywIBA6BRoU8wCQYHKoZIzj0CAQNC
AASbBeETneRZ79Q5cGBu17gZFZM++ZWzsMvcmx6Z1gYztIKYWtndW+INxVvrln4D
Of8maq6/IfumffkvZpfqBnKPMBUGBiuBBAELAjALBglghkgBZQMEAS0wXDBaMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABCho
nDmmA4NRBHpBGIGI0SwDPTw6CO1Adwjz6uhtcKd99duC7o50kQZgMIAGCSqGSIb3
DQEHATAeBglghkgBZQMEAS4wEQQMJjonwKRKw6ThEDRlAgEQoIAEDs/bEIQQtKP9
EZOmpMsFAAAAAAQQxCZqg6Ec63VcVAJgsVofaAAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGBzqGBywIBA6BRoU8wCQYHKoZIzj0CAQNC
AAT0yC7d8EmBaHZecCKf8SOdDqm/o2CJteAk7ICcqbMjBhJc93ckpyE4o1Z/gB1Y
1zwgerWFeaZXfObcRxh2CxZGMBUGBiuBBAELAzALBglghkgBZQMEAS0wXDBaMC4w
ITEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJAJf6ZvHS4D4ABChH
RQJ5OmptF0ap3vq7lknTscDMjwld7FhuDlxurwXb61f/Ubv8RsGAMIAGCSqGSIb3
DQEHATAeBglghkgBZQMEAS4wEQQMEy1/SaOMEMJCYYB/AgEQoIAEDiDXAvTAGTTP
4RN37jTOAAAAAAQQEJHRPVxSAJBdZ//YdeM1LQAAAAAAAA==
-----END CMS-----
18 changes: 18 additions & 0 deletions tests/files/cms-auth-enveloped-kekri-data.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADExoi8CAQQwAwQBMDALBglghkgBZQMEAQUE
GKdm3FAAb+cJzRlmBNrIxZJR/lO7Hl9I9TCABgkqhkiG9w0BBwEwHgYJYIZIAWUD
BAEGMBEEDBy96EqGGAX5GsRkvgIBEKCABA4/POyH35OvITLf81WHwQAAAAAEEKuM
jJcreoQAUFYD+Y3HRCkAAAAAAAA=
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADE5ojcCAQQwAwQBMDALBglghkgBZQMEARkE
IKEh8evpAq55aqYZa5EcwTXkGGFsx9Xljf5YWzLOVzPJMIAGCSqGSIb3DQEHATAe
BglghkgBZQMEARowEQQM2qmxxSb4nQshdsBZAgEQoIAEDj/eccFTdRRtFS59ge54
AAAAAAQQlv+TpgF6XXZsjdVzg5uV7wAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADFBoj8CAQQwAwQBMDALBglghkgBZQMEAS0E
KCp5RYkgCzU42HF7XXOaFQOEsk9bUFFxgV9NDlyVAo+2RrIPgVXXkMEwgAYJKoZI
hvcNAQcBMB4GCWCGSAFlAwQBLjARBAx/18iNa9gajkGa3qYCARCggAQOZ0Hn+848
qApi912KpsQAAAAABBBpz1K5ojGHJznVxTUAWfD9AAAAAAAA
-----END CMS-----
54 changes: 54 additions & 0 deletions tests/files/cms-auth-enveloped-ktri-data.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGByDCBxQIBADAuMCExHzAdBgkqhkiG9w0B
CQEWEHRlc3RAZXhhbXBsZS5jb20CCQD3DetZLCk3mzANBgkqhkiG9w0BAQEFAASB
gA/maH0B5EK0DLU5rfbTGet4uBklSW9TkEfAskjNJ6C1KfePfy20oNfnsKMS5Mp1
q/3Bz77LgH8+TWBZ5LKbgOT6AiMpWlUuUqzuchxmC9nx5P/ew0WJPQME5igMaV0z
1rstr7dMZtIMa8aTQMzJ+LgguRNOYBuBLvB1w1vaxrc+MIAGCSqGSIb3DQEHATAe
BglghkgBZQMEAQYwEQQMlYZ0LFrSPPCSCobkAgEQoIAEDpNaDCywbuuvs15vS6S7
AAAAAAQQGLodMaocucmqaveg0fT5xQAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGByDCBxQIBADAuMCExHzAdBgkqhkiG9w0B
CQEWEHRlc3RAZXhhbXBsZS5jb20CCQD3DetZLCk3mzANBgkqhkiG9w0BAQcwAASB
gFrnvmHQe5ja0uvf6ni5ea0Jkss11cJ62lpyq41AYD52AwaoCC+FFdykgQBxgpO+
1Byj0cUzzpxFoV354aZg2xUKu7RrN2ogUlei8TdEctfe5imOHPaD+W94xSipT46+
VEXs+k7LsrJMtqBHmNvSZGIz/r6PpJMB0+Q5m1dqJQ8gMIAGCSqGSIb3DQEHATAe
BglghkgBZQMEAQYwEQQM44g5NAyvNtg1f7IhAgEQoIAEDvxH9L2wJAxh02F+yTgv
AAAAAAQQa+rmrc/5NDP5/kB9FDvnkwAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGByDCBxQIBADAuMCExHzAdBgkqhkiG9w0B
CQEWEHRlc3RAZXhhbXBsZS5jb20CCQD3DetZLCk3mzANBgkqhkiG9w0BAQEFAASB
gBiKzwAxQcgNfC5I/jsSWn559jU2f/ndZE4he3ojQua1HHrVVJUFVbwUC7bYs3Vf
nHjo5AHi0i408asv4l2BgH3JWVkhnaUtHEajnipWkBEF2Bipb5u2i5NpeCMATdnX
vUuUL6UAarWQttcWu+/J+73ZtV0ecrd8ybTIlcOx0QrtMIAGCSqGSIb3DQEHATAe
BglghkgBZQMEARowEQQM+TWtLNHBl3EU+JUdAgEQoIAEDtXaoIj5rEJLWljHXk0e
AAAAAAQQjXRzifuEu8tEWisIQkPk6QAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGByDCBxQIBADAuMCExHzAdBgkqhkiG9w0B
CQEWEHRlc3RAZXhhbXBsZS5jb20CCQD3DetZLCk3mzANBgkqhkiG9w0BAQcwAASB
gDBMbmVbY3ghH4Pc9N/kDCoYVb6Mp93oUOjLhVpx71Bqxv8xoWXzT4NV2Z3ssE/F
k3RG1Y7LMYfv2I0QVZetuWJIehRBqouY/uW4RM7WWemuLT46M7Qszoi3vMnZ7Tuj
8tbxQUeie4dBO0+MMluNYj4hc/gzaCxsy0nqISG6ERGFMIAGCSqGSIb3DQEHATAe
BglghkgBZQMEARowEQQM8zQfTdCgHG5KfkebAgEQoIAEDoJVmSUFhPA5dLsML5F9
AAAAAAQQE3SXLSthb+rnxYrwohzIvQAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGByDCBxQIBADAuMCExHzAdBgkqhkiG9w0B
CQEWEHRlc3RAZXhhbXBsZS5jb20CCQD3DetZLCk3mzANBgkqhkiG9w0BAQEFAASB
gIIv6EsKwGSUU0M4EHjI8mgYF1mm32nPIHf4xwYuKcgE9Klu8/Dob2k+Q5705aAc
0mQvGiA8iaguiveGzvXegyuv/LVjl7bz1aTYkXwo22+5J3YstFJPrum+S1FbBdvI
cKPzkUjaJDus1R0j36Zej2wYnTUJNSo4SE1lolcyAUj/MIAGCSqGSIb3DQEHATAe
BglghkgBZQMEAS4wEQQMtwUSL7+j+tyKBlp3AgEQoIAEDp3QpaI+/etoalZIMW+G
AAAAAAQQ99WOo5xvNPX1CYu/2b9LoQAAAAAAAA==
-----END CMS-----
-----BEGIN CMS-----
MIAGCyqGSIb3DQEJEAEXoIAwgAIBADGByDCBxQIBADAuMCExHzAdBgkqhkiG9w0B
CQEWEHRlc3RAZXhhbXBsZS5jb20CCQD3DetZLCk3mzANBgkqhkiG9w0BAQcwAASB
gC5UFYfqMeb1SoHKS3G2dr+ofYwU4+JzVrqCJnE6WKSQI3a50MN63TTpjuiOxnWU
TCzo7QUIFCUms+NIFNR1FGmV58SycQqs/9gQcR0Xp9mnL0LkGte6pIIEnro+dHES
aY+6eRViwFOZ6GO0qOODUgLHfYdotcqnuKEs8oV3IJb1MIAGCSqGSIb3DQEHATAe
BglghkgBZQMEAS4wEQQMnJh28SAHjbT8F2U3AgEQoIAEDkcXXJq6tkKrY3tI5ecW
AAAAAAQQK2+jlHbQwEjmeP0vQxBRZwAAAAAAAA==
-----END CMS-----
62 changes: 62 additions & 0 deletions tests/files/generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ CIPHER_KEYS_ENCRYPTED=" \
-aes-256-ecb:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f \
-camellia-128-ecb:000102030405060708090a0b0c0d0e0f"

CIPHER_KEYS_AUTH_ENVELOPED=" \
-aes-128-gcm:000102030405060708090a0b0c0d0e0f \
-aes-192-gcm:000102030405060708090a0b0c0d0e0f1011121314151617 \
-aes-256-gcm:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"

PKCS12_INTEGRITY="sha1 sha256 sha384"

PKCS12_PRIVACY=" \
Expand Down Expand Up @@ -398,3 +403,60 @@ echo "$MESSAGE" | "$OPENSSL" cms -data_create \
$PROVIDERS
done
) > "$DEST_DIR"/cms-encrypted-data.pem


# CMS auth-enveloped data (key transport)

(
for cipher_key in $CIPHER_KEYS_AUTH_ENVELOPED; do
cipher=`expr "$cipher_key" : '\([^:]*\):[^:]*'`

for TYPE in rsa; do
echo "$MESSAGE" | "$OPENSSL" cms -encrypt -outform PEM \
-stream -indef $cipher \
-recip "$DEST_DIR"/"$TYPE"-self-signed-cert.pem \
$PROVIDERS
done

for MODE in oaep; do
echo "$MESSAGE" | "$OPENSSL" cms -encrypt -outform PEM \
-stream -indef $cipher \
-recip "$DEST_DIR"/rsa-self-signed-cert.pem \
-keyopt rsa_padding_mode:"$MODE" \
$PROVIDERS
done
done
) > "$DEST_DIR"/cms-auth-enveloped-ktri-data.pem


# CMS auth-enveloped data (key agreement)

(
for cipher_key in $CIPHER_KEYS_AUTH_ENVELOPED; do
cipher=`expr "$cipher_key" : '\([^:]*\):[^:]*'`

for TYPE in ecdsa-p256; do
for MD in sha1 sha224 sha256 sha384 sha512; do
echo "$MESSAGE" | "$OPENSSL" cms -encrypt -outform PEM \
-stream -indef $cipher \
-recip "$DEST_DIR"/"$TYPE"-self-signed-cert.pem \
-keyopt ecdh_kdf_md:"$MD" -keyopt ecdh_cofactor_mode:0 \
$PROVIDERS
done
done
done
) > "$DEST_DIR"/cms-auth-enveloped-kari-data.pem


# CMS auth-enveloped data (key encryption key)

(
for cipher_key in $CIPHER_KEYS_AUTH_ENVELOPED; do
cipher=`expr "$cipher_key" : '\([^:]*\):[^:]*'`
key=`expr "$cipher_key" : '[^:]*:\([^:]*\)'`

echo "$MESSAGE" | "$OPENSSL" cms -encrypt -outform PEM \
-stream -indef $cipher -secretkey $key -secretkeyid 30 \
$PROVIDERS
done
) > "$DEST_DIR"/cms-auth-enveloped-kekri-data.pem

0 comments on commit 94a13b4

Please sign in to comment.