我已經使用BouncyCastle爲橢圓曲線DSA簽名創建了密鑰對,並使用XMLString根據RFC4050設法將公鑰導入ECDsaCng。現在我想要移動私鑰並且沒有設法找到解決方案。我得到的最接近的是使用CngKey.Import。從BouncyCastle導出EC私鑰並導入到CngKey或ECDsaCng中?
CngKey.Import支持PKCS#8格式,所以如果你可以把你的密鑰變成有效的pkcs8,那麼它應該可以工作。不幸的是,下面的代碼不起作用。
var privatekey = (ECPrivateKeyParameters) keyPair.Private;
var pkinfo = PrivateKeyInfoFactory.CreatePrivateKeyInfo(privatekey);
byte[] pkcs8Blob = pkinfo.GetDerEncoded();
var importedKey = CngKey.Import(pkcs8Blob, CngKeyBlobFormat.Pkcs8PrivateBlob);
這將引發異常:
System.Security.Cryptography.CryptographicException:滿足ASN1壞標記值。
GetDerEncoded應該返回一個有效的Pkcs8 blob,據我所知。
如何使用在ECDsaCng對象中使用BouncyCastle創建的私鑰?