C# BouncyCastle-将X509CrlEntry.SerialNumber转换为;“CAPI风格”;十六进制字符
我正在尝试使用Org.BouncyCastle.X509转储证书吊销列表(CRL)的内容。在这个用例中,我需要获取证书序列号的“十六进制”字符串表示形式的列表,正如它们出现在证书MMC管理单元中一样(示例值为16a03c2c000000000594) 我能够得到一个X509CRLEntry对象的集合进行迭代,但是SerialNumber属性的类型是Org.BouncyCastle.Math.BigInteger。此类型具有ToString()的实现,但是返回的值对我不可用:C# BouncyCastle-将X509CrlEntry.SerialNumber转换为;“CAPI风格”;十六进制字符,c#,bouncycastle,C#,Bouncycastle,我正在尝试使用Org.BouncyCastle.X509转储证书吊销列表(CRL)的内容。在这个用例中,我需要获取证书序列号的“十六进制”字符串表示形式的列表,正如它们出现在证书MMC管理单元中一样(示例值为16a03c2c000000000594) 我能够得到一个X509CRLEntry对象的集合进行迭代,但是SerialNumber属性的类型是Org.BouncyCastle.Math.BigInteger。此类型具有ToString()的实现,但是返回的值对我不可用: public CRL
public CRLProc(字符串CRLFile)
{
X509CrlParser Parser=新的X509CrlParser();
X509Crl-CRL=Parser.ReadCrl(File.ReadAllBytes(CRLFile));
NextUpdate=CRL.NextUpdate.Value;
var RevokedCerts=CRL.GetRevokedCertificates();
foreach(撤销证书中的X509CrlEntry条目)
{
//目标值(CRL中的第一个序列号):16a03c2c000000000594
string serialNumber=entry.serialNumber.ToString();
//serialNumber=“1068478775154646973906324”(不适用)
string serialFromBytes=Encoding.Default.GetString(entry.SerialNumber.ToByteArray());
//serialFromBytes=“\u0016如果您只想将序列号作为十六进制字符串,则BigInteger具有以基数为基数的ToString重载,例如:
string serialFromBigInt = entry.SerialNumber.ToString(16);
如果您只想将序列号作为十六进制字符串,BigInteger会有一个以基数为基数的ToString重载,例如:
string serialFromBigInt = entry.SerialNumber.ToString(16);