Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Asn1/X9/OtherInfo.cs
2025-10-09 09:57:24 +09:00

56 lines
1.4 KiB
C#

using System.Collections;
namespace Org.BouncyCastle.Asn1.X9;
public class OtherInfo : Asn1Encodable
{
private KeySpecificInfo keyInfo;
private Asn1OctetString partyAInfo;
private Asn1OctetString suppPubInfo;
public KeySpecificInfo KeyInfo => keyInfo;
public Asn1OctetString PartyAInfo => partyAInfo;
public Asn1OctetString SuppPubInfo => suppPubInfo;
public OtherInfo(KeySpecificInfo keyInfo, Asn1OctetString partyAInfo, Asn1OctetString suppPubInfo)
{
this.keyInfo = keyInfo;
this.partyAInfo = partyAInfo;
this.suppPubInfo = suppPubInfo;
}
public OtherInfo(Asn1Sequence seq)
{
IEnumerator enumerator = seq.GetEnumerator();
enumerator.MoveNext();
keyInfo = new KeySpecificInfo((Asn1Sequence)enumerator.Current);
while (enumerator.MoveNext())
{
DerTaggedObject derTaggedObject = (DerTaggedObject)enumerator.Current;
if (derTaggedObject.TagNo == 0)
{
partyAInfo = (Asn1OctetString)derTaggedObject.GetObject();
}
else if (derTaggedObject.TagNo == 2)
{
suppPubInfo = (Asn1OctetString)derTaggedObject.GetObject();
}
}
}
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(keyInfo);
if (partyAInfo != null)
{
asn1EncodableVector.Add(new DerTaggedObject(0, partyAInfo));
}
asn1EncodableVector.Add(new DerTaggedObject(2, suppPubInfo));
return new DerSequence(asn1EncodableVector);
}
}