2011-04-14 25 views
1

我需要在.NET應用程序編程創建equivalant鍵...我如何代碼makecert在C# 「-sky交換」 和 「-sky簽名」

makecert -r -pe -a sha1 -n "CN=MyName" -ss my -sr CurrentUser -sky exchange

makecert -r -pe -a sha1 -n "CN=MyName" -ss my -sr CurrentUser -sky signature

輸出最終會像這樣使用:

RSACryptoServiceProvider privateKey = new RSACryptoServiceProvider();   
privateKey.FromXmlString("<RSAKeyValue> 
<Modulus>wL8s+C8SnnlaaqR+VsyijmxOJOARNa4o7ZNsqfy3+9J9Ol2JNSjjMfQWoUnFtClzJBlZhU5KtuazQe8ZKXTX9YvKoJdRhlsonZkC04qiTMdO/FZIH00GrCRxeQ7XDnQnvPB9Bdsvs//7zrY3f7eLIkpIyK9cQHU+5jjJd5IT0eE=</Modulus> 
<Exponent>AQAB</Exponent> 
<P>83xxN7jvpg5z16pxz2tIQIdqd/EfmikR9Q2TjG2tosWkUSvtyx0xHZ9EqdTUbSGZZ+jgrabzkafYc7Mplylwew==</P> 
<Q>yqcnYSZEXHwJvRWi2V09PNEENTozQZywcFptUUGar9TciaQvoNv3lpnfzUKNBRdhzq4lImxkamajZlTWE5buUw==</Q> 
<DP>37HqilkbwyHwB6mOGhPkM3S1ujAK6qTk3JB2iEOTjMGrru9+7maJYz+Z47Wm3ARMXgyzrpZ9m8nqsJFfmoL11Q==</DP> 
<DQ>v285tv8kMs2FkZYfuP/oOkwkkneBNejjj68Md2bmzlThZDCyQV2pvB1tmgPVHUsiPNCrCaKlFRISJzfa5rR8Ow==</DQ> 
<InverseQ>fgJE2TRe/SS+YqW0/I+FtHrdfbbao0/R3pHD4r4oceZQUemlBgZ7DxOAetebHKthlOdjGkmfWYB8EU4XoWggqw==</InverseQ> 
<D>FMLCwjy3wbAKiCANp6XFAJgz1o7365NFv0k41BpvasViTa4TgFFWH2ROJ7M9g0lPqJy+YrhrHcY9mqV5TVjTheQp0JeckrgO2B39XngPMAMMdne3rWGpf0Pfbj3FLfchMk6XYDXSZzCS2CmSeRA4aBMb+4R3YurixyJLrnGRMH0=</D> 
</RSAKeyValue>");   
+0

'makecert'創建密鑰對和X509證書。它看起來像你只使用密鑰對。你需要證書嗎? – 2011-04-14 23:10:55

+0

@GregS我認爲X509是公共證書,而pks文件是一對(受密碼保護)。密鑰對這個詞讓我失望... – LamonteCristo 2011-04-14 23:53:18

回答

0

我知道你可能已經通過,現在找到了解決辦法,但這裏是代碼將是什麼樣子: (基於http://blogs.technet.com/b/jhoward/archive/2005/02/02/365323.aspx

Process.Start("makecert.exe", "-pe -n \"CN=MyCert Root Authority\" -ss my -sr LocalMachine -a sha1 -sky signature -r \"MyCert Root Authority.cer\"");

Process.Start("makecert.exe", "-pe -n \"CN=MyCert\" -ss my -sr LocalMachine -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -in \"MyCert Root Authority\" -is MY -ir LocalMachine -sp \"Microsoft RSA SChannel Cryptographic Provider\" -sy 12 \"MyCert.cer\"");

相關問題