.NET使用OpenSSL生成的pem密钥文件(增加size为2048的密钥转换)(2)
Array.Copy(keyData, (keySize1024? 29:33), pemModulus, 0,(keySize1024? 128:256));
Array.Copy(keyData, (keySize1024? 159:291), pemPublicExponent, 0, 3);
RSAParameters para = new RSAParameters();
para.Modulus = pemModulus;
para.Exponent = pemPublicExponent;
return para;
}
/// <summary>
/// 将pem格式私钥(1024 or 2048)转换为RSAParameters
/// </summary>
/// <param name="pemFileConent">pem私钥内容</param>
/// <returns>转换得到的RSAParamenters</returns>
public static RSAParameters ConvertFromPemPrivateKey(string pemFileConent)
{
if (string.IsNullOrEmpty(pemFileConent))
{
throw new ArgumentNullException("pemFileConent", "This arg cann't be empty.");
}
pemFileConent = pemFileConent.Replace("-----BEGIN RSA PRIVATE KEY-----", "").Replace("-----END RSA PRIVATE KEY-----", "").Replace("\n", "").Replace("\r","");
byte[] keyData = Convert.FromBase64String(pemFileConent);
bool keySize1024 = (keyData.Length == 609 || keyData.Length == 610);
bool keySize2048 = (keyData.Length == 1190 || keyData.Length == 1192);
if (!(keySize1024 || keySize2048))
{
throw new ArgumentException("pem file content is incorrect, Only support the key size is 1024 or 2048");
}
相关新闻>>
- 发表评论
-
- 最新评论 更多>>
今日头条
更多>>您可能感兴趣的文章
- 最简单的Web服务器事例分析
- 在ASP.net 中从sqlserver检索(retrieve)图片
- asp.net 使用System.Net.Mail 发送邮件的实现代码
- 关于ASP.NET网站部署 --- "aspnet_client"文
- MVC3+Entity Framework 实现投票系统(一)
- ADO.NET的记忆碎片(四)
- ASP.NET MVC 与 WebForm 三层架构 区
- asp.net Execl的添加,更新操作实现代码
- 在ASP.NET环境下解决类文件的智能提示问题
- 利用C++Builder 开发Web Service应用——基于Web Service技术的