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

72 lines
1.2 KiB
C#

using System;
using System.Collections;
namespace Org.BouncyCastle.Asn1;
public class BerSequence : DerSequence
{
public new static readonly BerSequence Empty = new BerSequence();
public new static BerSequence FromVector(Asn1EncodableVector v)
{
if (v.Count >= 1)
{
return new BerSequence(v);
}
return Empty;
}
public BerSequence()
{
}
public BerSequence(Asn1Encodable obj)
: base(obj)
{
}
public BerSequence(params Asn1Encodable[] v)
: base(v)
{
}
public BerSequence(Asn1EncodableVector v)
: base(v)
{
}
internal override void Encode(DerOutputStream derOut)
{
if (derOut is Asn1OutputStream || derOut is BerOutputStream)
{
derOut.WriteByte(48);
derOut.WriteByte(128);
{
IEnumerator enumerator = GetEnumerator();
try
{
while (enumerator.MoveNext())
{
Asn1Encodable obj = (Asn1Encodable)enumerator.Current;
derOut.WriteObject(obj);
}
}
finally
{
IDisposable disposable = enumerator as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
}
derOut.WriteByte(0);
derOut.WriteByte(0);
}
else
{
base.Encode(derOut);
}
}
}