EnvelopedCmsで使える証明書をmakecertで生成する

System.Security.Cryptography.Pkcsなんて初めて調べましたよ。
WindowsSDKコマンドプロンプトを開いて

> makecert -n "CN=azunyan" -sky exchange -r -pe -ss my

"-sky exchange"が重要らしい。これないとDecryptするとき怒られる。
ファイルに出力したかったら

> makecert -n "CN=katanashi" -sky exchange -r -pe -sv katanashi.pvk katanashi.cer
> pvk2pfx -pvk katanashi.pvk -spc katanashi.cer

おまけ

格好つけてCA作りたい人は

> makecert -n "CN=Roots" -cy authority -r -ss root
> makecert -n "CN=GEORGIA" -is root -in Roots -pe -ss my

とか

> makecert -n "CN=Roots" -cy authority -r -sv roots.pvk roots.cer
> pvk2pfx -pvk roots.pvk -spc roots.cer -pfx roots.pfx
> certmgr -add roots.pfx -s root
> makecert -n "CN=GEORGIA" -is root -in Roots -pe -ss my

とかすると楽しいかもしれませんが、EnvelopedCmsには一切関係ないようです。
pvk2pfxの-pfx省略したり、certmgrの代わりにインポートウィザード使った方が、色々できるかもしれない。