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,110 @@
using System;
namespace Org.BouncyCastle.Asn1.X509;
public class IetfAttrSyntax : Asn1Encodable
{
public const int ValueOctets = 1;
public const int ValueOid = 2;
public const int ValueUtf8 = 3;
internal readonly GeneralNames policyAuthority;
internal readonly Asn1EncodableVector values = new Asn1EncodableVector();
internal int valueChoice = -1;
public GeneralNames PolicyAuthority => policyAuthority;
public int ValueType => valueChoice;
public IetfAttrSyntax(Asn1Sequence seq)
{
int num = 0;
if (seq[0] is Asn1TaggedObject)
{
policyAuthority = GeneralNames.GetInstance((Asn1TaggedObject)seq[0], explicitly: false);
num++;
}
else if (seq.Count == 2)
{
policyAuthority = GeneralNames.GetInstance(seq[0]);
num++;
}
if (!(seq[num] is Asn1Sequence))
{
throw new ArgumentException("Non-IetfAttrSyntax encoding");
}
seq = (Asn1Sequence)seq[num];
foreach (Asn1Object item in seq)
{
int num2;
if (item is DerObjectIdentifier)
{
num2 = 2;
}
else if (item is DerUtf8String)
{
num2 = 3;
}
else
{
if (!(item is DerOctetString))
{
throw new ArgumentException("Bad value type encoding IetfAttrSyntax");
}
num2 = 1;
}
if (valueChoice < 0)
{
valueChoice = num2;
}
if (num2 != valueChoice)
{
throw new ArgumentException("Mix of value types in IetfAttrSyntax");
}
values.Add(item);
}
}
public object[] GetValues()
{
if (ValueType == 1)
{
Asn1OctetString[] array = new Asn1OctetString[values.Count];
for (int i = 0; i != array.Length; i++)
{
array[i] = (Asn1OctetString)values[i];
}
return array;
}
if (ValueType == 2)
{
DerObjectIdentifier[] array2 = new DerObjectIdentifier[values.Count];
for (int j = 0; j != array2.Length; j++)
{
array2[j] = (DerObjectIdentifier)values[j];
}
return array2;
}
DerUtf8String[] array3 = new DerUtf8String[values.Count];
for (int k = 0; k != array3.Length; k++)
{
array3[k] = (DerUtf8String)values[k];
}
return array3;
}
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector();
if (policyAuthority != null)
{
asn1EncodableVector.Add(new DerTaggedObject(0, policyAuthority));
}
asn1EncodableVector.Add(new DerSequence(values));
return new DerSequence(asn1EncodableVector);
}
}