我使用以下代码获得私钥使用"Org.BouncyCastle。.Net
FileStream keyFileStream = File.OpenRead(FileName);
char[] pwd = Password.ToCharArray();
Org.BouncyCastle.Pkcs.Pkcs12Store store = new Org.BouncyCastle.Pkcs.Pkcs12Store(keyFileStream, pwd);
System.Collections.IEnumerator h = store.Aliases.GetEnumerator();
h.MoveNext();
object o = h.Current;
string alias = o.ToString();
Org.BouncyCastle.Pkcs.AsymmetricKeyEntry privAsymKey = store.GetKey(alias);// as RsaKeyParameters;
RsaKeyParameters privRSAKey = (RsaKeyParameters)privAsymKey.Key;
但是我得到"privAsymKey"为null
我尝试了使用OpenSSl手动获取私钥的方法,我可以获得私钥,这意味着。p12文件是正确的。
谁能帮我解决我到底在哪里出错从。p12文件获得私钥
经过太多的谷歌搜索,我发现以下代码可以帮助我使用Org.BouncyCastle.Crypto从。p12文件中获得私钥
//This is the function call
AsymmetricKeyParameter privateKey = TransformRSAPrivateKey(Certi.PrivateKey);
//这是返回私钥的函数定义
RSACryptoServiceProvider prov = privateKey as RSACryptoServiceProvider;
RSAParameters parameters = prov.ExportParameters(true);
return new RsaPrivateCrtKeyParameters(
new BigInteger(1, parameters.Modulus),
new BigInteger(1, parameters.Exponent),
new BigInteger(1, parameters.D),
new BigInteger(1, parameters.P),
new BigInteger(1, parameters.Q),
new BigInteger(1, parameters.DP),
new BigInteger(1, parameters.DQ),
new BigInteger(1, parameters.InverseQ));