博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解析数字签名的Substring结构
阅读量:5119 次
发布时间:2019-06-13

本文共 4060 字,大约阅读时间需要 13 分钟。

解析的结构和代码:

 

X509CertificateSubstring
#region 文件描述// 描述:数字签名的Substring结构类// 作者:鲍昊晟// 时间:2012-7-2#endregion#region 类修改记录 : 每次修改一组描述// 修改描述:// 修 改 人:// 修改时间:#endregionusing System;using System.Security.Cryptography.X509Certificates;namespace DTLEntAdministration.Common{    ///     /// 数字签名的Substring结构    ///     public class X509CertificateSubstring    {        //CN=Shenzhen DriveTheLife Software Technology Co.Ltd, OU=Digital ID Class 3 - Microsoft Software Validation v2, O=Shenzhen DriveTheLife Software Technology Co.Ltd, L=Shenzhen, S=Guangdong, C=CN        #region 私有字段        private string _CN = string.Empty;        private string _OU = string.Empty;        private string _O = string.Empty;        private string _L = string.Empty;        private string _S = string.Empty;        private string _C = string.Empty;        #endregion        #region 公共只读属性        public string CN { get { return _CN; } }        public string OU { get { return _OU; } }        public string O { get { return _O; } }        public string L { get { return _L; } }        public string S { get { return _S; } }        public string C { get { return _C; } }        #endregion        public X509CertificateSubstring() { }        ///         /// 将Substring字符串解析成结构体        ///         /// Substring字符串        /// 
X509CertificateSubstring
public static X509CertificateSubstring Parse(string substring) { X509CertificateSubstring xcs = new X509CertificateSubstring(); string[] items = substring.Split(','); foreach (var item in items) { if (item.Trim().StartsWith("CN=")) { xcs._CN = item.Trim().Substring(3); continue; } if (item.Trim().StartsWith("OU=")) { xcs._OU = item.Trim().Substring(3); continue; } if (item.Trim().StartsWith("O=")) { xcs._O = item.Trim().Substring(2); continue; } if (item.Trim().StartsWith("L=")) { xcs._L = item.Trim().Substring(2); continue; } if (item.Trim().StartsWith("S=")) { xcs._S = item.Trim().Substring(2); continue; } if (item.Trim().StartsWith("C=")) { xcs._C = item.Trim().Substring(2); continue; } } return xcs; } /// /// 将Substring字符串解析成结构体,并返回数字签名存在与否 /// /// 读取数字签名的文件的物理路径 /// X509CertificateSubstring ///
bool
public static bool TryParse(string pyFile, out X509CertificateSubstring xcs) { bool result = true; xcs = new X509CertificateSubstring(); string SubstringCN = string.Empty; X509Certificate cert = null; try { cert = X509Certificate2.CreateFromSignedFile(pyFile); } catch (System.Security.Cryptography.CryptographicException ce) { //没有数字签名,忽略此异常. result = false; } catch (Exception ex) { result = false; throw ex; } if (cert != null) { xcs = X509CertificateSubstring.Parse(cert.Subject); } return result; } }}

 

调用的示例代码:

 

获取数字签名的名称
///         /// 获取数字签名的名称        ///         /// 读取数字签名的文件的物理路径        /// 
数字签名,如果没有数字签名则返回空字符串
public static string GetX509CertificateSubstringCN(string pyFile) { string SubstringCN = string.Empty; X509CertificateSubstring xcs; if (X509CertificateSubstring.TryParse(pyFile, out xcs)) { SubstringCN = xcs.CN; } return SubstringCN; }

转载于:https://www.cnblogs.com/lucienbao/archive/2012/07/02/X509Certificate_Substring.html

你可能感兴趣的文章
博弈论 从懵逼到入门 详解
查看>>
永远的动漫,梦想在,就有远方
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
慵懒中长大的人,只会挨生活留下的耳光
查看>>
"远程桌面连接--“发生身份验证错误。要求的函数不受支持
查看>>
【BZOJ1565】 植物大战僵尸
查看>>
VALSE2019总结(4)-主题报告
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
python常用函数
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>