我們的確有一個構建服務器,它包含我們的私鑰,用於在密鑰容器中籤署延遲簽名的程序集。我們現在正在創建另一個構建服務器,似乎沒有人知道原始密鑰文件在哪裏,所以我們試圖從原始服務器導出密鑰並導入新服務器。從密鑰容器導出強名稱
做出口,我們使用的是這樣的:
RSACryptoServiceProvider key;
CspParameters cp = new CspParameters();
cp.KeyContainerName = "nameOfOurContainer";
cp.Flags = CspProviderFlags.UseMachineKeyStore;
key = new RSACryptoServiceProvider(cp);
var blob = key.ExportCspBlob(true);
using (var fs = new FileStream(filePath, FileMode.CreateNew))
{
fs.Write(blob, 0, blob.Length);
}
進口 - 這
CspParameters cp = new CspParameters();
cp.KeyContainerName = containerName;
cp.Flags = CspProviderFlags.UseMachineKeyStore;
cp.KeyNumber = (int)KeyNumber.Signature;
RSACryptoServiceProvider key = new RSACryptoServiceProvider(cp);
using (var fs = new FileStream(filePath, FileMode.Open))
{
var blob = new byte[fs.Length];
fs.Read(blob,0,(int)fs.Length);
key.ImportCspBlob(blob);
key.PersistKeyInCsp = true;
}
的按鍵被導出,導入成功,但新的服務器上的簽名是不是工作 - 我們越來越
Key pair does not match public key from assembly
所以,我懷疑,無論是我們的進口或出口過程我這是錯的。想法?
那麼,試圖與導出的旗幟屬性arround周圍 - 它是爲每個設置生成不同的鍵。一致,但不同。沒有一個是正確的。明天繼續調查。 – Hassan