40 lines
948 B
C#
40 lines
948 B
C#
using System;
|
|
using System.IO;
|
|
|
|
namespace Org.BouncyCastle.Asn1.X509;
|
|
|
|
public class X509DefaultEntryConverter : X509NameEntryConverter
|
|
{
|
|
public override Asn1Object GetConvertedValue(DerObjectIdentifier oid, string value)
|
|
{
|
|
if (value.Length != 0 && value[0] == '#')
|
|
{
|
|
try
|
|
{
|
|
return ConvertHexEncoded(value, 1);
|
|
}
|
|
catch (IOException)
|
|
{
|
|
throw new Exception("can't recode value for oid " + oid.Id);
|
|
}
|
|
}
|
|
if (value.Length != 0 && value[0] == '\\')
|
|
{
|
|
value = value.Substring(1);
|
|
}
|
|
if (oid.Equals(X509Name.EmailAddress) || oid.Equals(X509Name.DC))
|
|
{
|
|
return new DerIA5String(value);
|
|
}
|
|
if (oid.Equals(X509Name.DateOfBirth))
|
|
{
|
|
return new DerGeneralizedTime(value);
|
|
}
|
|
if (oid.Equals(X509Name.C) || oid.Equals(X509Name.SerialNumber) || oid.Equals(X509Name.DnQualifier) || oid.Equals(X509Name.TelephoneNumber))
|
|
{
|
|
return new DerPrintableString(value);
|
|
}
|
|
return new DerUtf8String(value);
|
|
}
|
|
}
|