Hello, I have a question. For example, I have: P: 5 Q: 17 phiN: 64 N: 85 e:5 d: 13 How can I generate the following from these values: PublicKey.xml and PrivateKey.xml ? In the source code below, the parameters are created automatically. How can I insert my own parameters here, e.g. from above?
public ICommand GenerateNewKey
{
get
{
return generateNewKey ?? (generateNewKey = new DelegateCommand(a =>
{
var rsaCryptoServiceProvider = new RSACryptoServiceProvider();
XmlRsaPublic = rsaCryptoServiceProvider.ToXmlString(false);
XmlRsaPrivate = rsaCryptoServiceProvider.ToXmlString(true);
var rsaPrivateKey = new OpenSSL.Crypto.RSA
{
SecretPrimeFactorP = BigNumber.FromArray(rsaCryptoServiceProvider.ExportParameters(true).P),
SecretPrimeFactorQ = BigNumber.FromArray(rsaCryptoServiceProvider.ExportParameters(true).Q),
DmodP1 = BigNumber.FromArray(rsaCryptoServiceProvider.ExportParameters(true).DP),
DmodQ1 = BigNumber.FromArray(rsaCryptoServiceProvider.ExportParameters(true).DQ),
IQmodP = BigNumber.FromArray(rsaCryptoServiceProvider.ExportParameters(true).InverseQ),
PrivateExponent = BigNumber.FromArray(rsaCryptoServiceProvider.ExportParameters(true).D),
PublicExponent = BigNumber.FromArray(rsaCryptoServiceProvider.ExportParameters(true).Exponent),
PublicModulus = BigNumber.FromArray(rsaCryptoServiceProvider.ExportParameters(true).Modulus)
};
PemRsaPrivate = rsaPrivateKey.PrivateKeyAsPEM;
PemRsaPublic = rsaPrivateKey.PublicKeyAsPEM;
DerRsaPrivate = BitConverter.ToString(Convert.FromBase64String(PemRsaPrivate.Trim().Substring(31, PemRsaPrivate.Length - 61).Trim()));
DerRsaPublic = BitConverter.ToString(Convert.FromBase64String(PemRsaPublic.Trim().Substring(26, PemRsaPublic.Length - 51).Trim()));
}));
}
}