EdiPartyName
using Org.BouncyCastle.Asn1.X500;
using System;
namespace Org.BouncyCastle.Asn1.X509
{
public class EdiPartyName : Asn1Encodable
{
private readonly DirectoryString m_nameAssigner;
private readonly DirectoryString m_partyName;
public DirectoryString NameAssigner => m_nameAssigner;
public DirectoryString PartyName => m_partyName;
public static EdiPartyName GetInstance(object obj)
{
if (obj == null)
return null;
EdiPartyName ediPartyName = obj as EdiPartyName;
if (ediPartyName != null)
return ediPartyName;
return new EdiPartyName(Asn1Sequence.GetInstance(obj));
}
public static EdiPartyName GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new EdiPartyName(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
}
private EdiPartyName(Asn1Sequence seq)
{
int count = seq.Count;
int sequencePosition = 0;
if (count < 1 || count > 2)
throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq");
m_nameAssigner = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, true, DirectoryString.GetTagged);
m_partyName = Asn1Utilities.ReadContextTagged(seq, ref sequencePosition, 1, true, DirectoryString.GetTagged);
if (sequencePosition != count)
throw new ArgumentException("Unexpected elements in sequence", "seq");
}
public EdiPartyName(DirectoryString nameAssigner, DirectoryString partyName)
{
m_nameAssigner = nameAssigner;
if (partyName == null)
throw new ArgumentNullException("partyName");
m_partyName = partyName;
}
public override Asn1Object ToAsn1Object()
{
if (m_nameAssigner != null)
return new DerSequence(m_nameAssigner, m_partyName);
return new DerSequence(m_partyName);
}
}
}