我想簽署一個Visual Studio 2012 extension
打包爲VSIX
文件。數字簽名的Visual Studio 2012 VSIX擴展
我遵循http://www.jeff.wilcox.name/2010/03/vsixcodesigning/的指示;不過,我有興趣在不指定pfx文件和密碼的情況下執行簽名。
例如,如果我稱之爲「signtool.exe」,我的命令行是:
"signtool.exe" sign /n MySubjectName /t 'http://timestamp.verisign.com/scripts/timstamp.dll' /d "MyDescription" MyPackage.vsix
據我所知,這個命令不VSIX
文件的工作,但它確實工作的MSI
存檔。
使用此命令,調用signtool時不需要指定密碼或pfx文件。使用指定主題MySubjectName
選擇安裝的最佳證書。
繼Jeff's Blog代碼,簽約步驟需要進行定義,以創建簽名使用的X509Certificate2
PFX文件名和密碼:
private static void SignAllParts(Package package, string pfx, string password, string timestamp){
var signatureManager = new PackageDigitalSignatureManager(package);
signatureManager.CertificateOption = CertificateEmbeddingOption.InSignaturePart;
/*...*/
signatureManager.Sign(toSign, new System.Security.Cryptography.X509Certificates.X509Certificate2(pfx, password));
}
是否有涉及PackageDigitalSignatureManager
任何的API,可以讓我找到一個X509Certificate
基於MySubjectName
,這樣我可以簽署反對呢?
這可能包含我要尋找的答案:HTTP: //msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate2collection.find.aspx –
沒有這樣的API,通過使用者名稱獲取證書。但是你可以看看X509Certificate2類的Import方法。 – Sasha