init commit

This commit is contained in:
2025-10-09 09:57:24 +09:00
commit 4d551bd74f
6636 changed files with 1218703 additions and 0 deletions

View File

@@ -0,0 +1,94 @@
using System;
using System.Collections;
using System.IO;
using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Asn1;
public class DerSet : Asn1Set
{
public static readonly DerSet Empty = new DerSet();
public static DerSet FromVector(Asn1EncodableVector v)
{
if (v.Count >= 1)
{
return new DerSet(v);
}
return Empty;
}
internal static DerSet FromVector(Asn1EncodableVector v, bool needsSorting)
{
if (v.Count >= 1)
{
return new DerSet(v, needsSorting);
}
return Empty;
}
public DerSet()
: base(0)
{
}
public DerSet(Asn1Encodable obj)
: base(1)
{
AddObject(obj);
}
public DerSet(params Asn1Encodable[] v)
: base(v.Length)
{
foreach (Asn1Encodable obj in v)
{
AddObject(obj);
}
Sort();
}
public DerSet(Asn1EncodableVector v)
: this(v, needsSorting: true)
{
}
internal DerSet(Asn1EncodableVector v, bool needsSorting)
: base(v.Count)
{
foreach (Asn1Encodable item in v)
{
AddObject(item);
}
if (needsSorting)
{
Sort();
}
}
internal override void Encode(DerOutputStream derOut)
{
MemoryStream memoryStream = new MemoryStream();
DerOutputStream derOutputStream = new DerOutputStream(memoryStream);
IEnumerator enumerator = GetEnumerator();
try
{
while (enumerator.MoveNext())
{
Asn1Encodable obj = (Asn1Encodable)enumerator.Current;
derOutputStream.WriteObject(obj);
}
}
finally
{
IDisposable disposable = enumerator as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
Platform.Dispose(derOutputStream);
byte[] bytes = memoryStream.ToArray();
derOut.WriteEncoded(49, bytes);
}
}