ProfessionInfo
using Org.BouncyCastle.Asn1.X500;
using System;
namespace Org.BouncyCastle.Asn1.IsisMtt.X509
{
public class ProfessionInfo : Asn1Encodable
{
public static readonly DerObjectIdentifier Rechtsanwltin = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("1");
public static readonly DerObjectIdentifier Rechtsanwalt = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("2");
public static readonly DerObjectIdentifier Rechtsbeistand = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("3");
public static readonly DerObjectIdentifier Steuerberaterin = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("4");
public static readonly DerObjectIdentifier Steuerberater = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("5");
public static readonly DerObjectIdentifier Steuerbevollmchtigte = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("6");
public static readonly DerObjectIdentifier Steuerbevollmchtigter = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("7");
public static readonly DerObjectIdentifier Notarin = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("8");
public static readonly DerObjectIdentifier Notar = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("9");
public static readonly DerObjectIdentifier Notarvertreterin = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("10");
public static readonly DerObjectIdentifier Notarvertreter = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("11");
public static readonly DerObjectIdentifier Notariatsverwalterin = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("12");
public static readonly DerObjectIdentifier Notariatsverwalter = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("13");
public static readonly DerObjectIdentifier Wirtschaftsprferin = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("14");
public static readonly DerObjectIdentifier Wirtschaftsprfer = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("15");
public static readonly DerObjectIdentifier VereidigteBuchprferin = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("16");
public static readonly DerObjectIdentifier VereidigterBuchprfer = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("17");
public static readonly DerObjectIdentifier Patentanwltin = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("18");
public static readonly DerObjectIdentifier Patentanwalt = NamingAuthority.IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern.Branch("19");
private readonly NamingAuthority m_namingAuthority;
private readonly Asn1Sequence m_professionItems;
private readonly Asn1Sequence m_professionOids;
private readonly DerPrintableString m_registrationNumber;
private readonly Asn1OctetString m_addProfessionInfo;
public virtual Asn1OctetString AddProfessionInfo => m_addProfessionInfo;
public virtual NamingAuthority NamingAuthority => m_namingAuthority;
public virtual string RegistrationNumber => m_registrationNumber?.GetString();
public static ProfessionInfo GetInstance(object obj)
{
if (obj == null)
return null;
ProfessionInfo professionInfo = obj as ProfessionInfo;
if (professionInfo != null)
return professionInfo;
return new ProfessionInfo(Asn1Sequence.GetInstance(obj));
}
public static ProfessionInfo GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new ProfessionInfo(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
}
public static ProfessionInfo GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new ProfessionInfo(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
}
private ProfessionInfo(Asn1Sequence seq)
{
int count = seq.Count;
int sequencePosition = 0;
if (count < 1 || count > 5)
throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq");
m_namingAuthority = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, true, NamingAuthority.GetTagged);
m_professionItems = Asn1Sequence.GetInstance(seq[sequencePosition++]);
m_professionOids = Asn1Utilities.ReadOptional(seq, ref sequencePosition, Asn1Sequence.GetOptional);
m_registrationNumber = Asn1Utilities.ReadOptional(seq, ref sequencePosition, DerPrintableString.GetOptional);
m_addProfessionInfo = Asn1Utilities.ReadOptional(seq, ref sequencePosition, Asn1OctetString.GetOptional);
if (sequencePosition != count)
throw new ArgumentException("Unexpected elements in sequence", "seq");
}
public ProfessionInfo(NamingAuthority namingAuthority, DirectoryString[] professionItems, DerObjectIdentifier[] professionOids, string registrationNumber, Asn1OctetString addProfessionInfo)
{
m_namingAuthority = namingAuthority;
m_professionItems = DerSequence.FromElements(professionItems);
m_professionOids = DerSequence.FromElementsOptional(professionOids);
m_registrationNumber = ((registrationNumber == null) ? null : new DerPrintableString(registrationNumber, true));
m_addProfessionInfo = addProfessionInfo;
}
public virtual DirectoryString[] GetProfessionItems()
{
return m_professionItems.MapElements(DirectoryString.GetInstance);
}
public virtual DerObjectIdentifier[] GetProfessionOids()
{
return m_professionOids?.MapElements(DerObjectIdentifier.GetInstance) ?? new DerObjectIdentifier[0];
}
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(5);
asn1EncodableVector.AddOptionalTagged(true, 0, m_namingAuthority);
asn1EncodableVector.Add(m_professionItems);
asn1EncodableVector.AddOptional(m_professionOids);
asn1EncodableVector.AddOptional(m_registrationNumber);
asn1EncodableVector.AddOptional(m_addProfessionInfo);
return new DerSequence(asn1EncodableVector);
}
}
}