public static string ExportToXml(RSAParameters csp, bool includePrivateParameters)
{
var sb = StringBuilderCache.Allocate();
sb.Append("<RSAKeyValue>");
sb.Append("<Modulus>").Append(Convert.ToBase64String(csp.Modulus)).Append("</Modulus>");
sb.Append("<Exponent>").Append(Convert.ToBase64String(csp.Exponent)).Append("</Exponent>");
if (includePrivateParameters)
{
sb.Append("<P>").Append(Convert.ToBase64String(csp.P)).Append("</P>");
sb.Append("<Q>").Append(Convert.ToBase64String(csp.Q)).Append("</Q>");
sb.Append("<DP>").Append(Convert.ToBase64String(csp.DP)).Append("</DP>");
sb.Append("<DQ>").Append(Convert.ToBase64String(csp.DQ)).Append("</DQ>");
sb.Append("<InverseQ>").Append(Convert.ToBase64String(csp.Modulus)).Append("</InverseQ>");
sb.Append("<D>").Append(Convert.ToBase64String(csp.Modulus)).Append("</D>");
}
sb.Append("</RSAKeyValue>");
var xml = StringBuilderCache.ReturnAndFree(sb);
return xml;
}
}