- Initial commit

This commit is contained in:
Timur Kozanov
2026-07-03 05:02:26 +03:00
commit 374ff1e689
4080 changed files with 388870 additions and 0 deletions

View File

@ -0,0 +1,181 @@
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
#pragma warning disable
using System;
using Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.X500;
using Best.HTTP.SecureProtocol.Org.BouncyCastle.Utilities;
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509.SigI
{
/**
* Structure for a name or pseudonym.
*
* <pre>
* NameOrPseudonym ::= CHOICE {
* surAndGivenName SEQUENCE {
* surName DirectoryString,
* givenName SEQUENCE OF DirectoryString
* },
* pseudonym DirectoryString
* }
* </pre>
*
* @see org.bouncycastle.asn1.x509.sigi.PersonalData
*
*/
public class NameOrPseudonym
: Asn1Encodable, IAsn1Choice
{
private readonly DirectoryString pseudonym;
private readonly DirectoryString surname;
private readonly Asn1Sequence givenName;
public static NameOrPseudonym GetInstance(
object obj)
{
if (obj == null || obj is NameOrPseudonym)
{
return (NameOrPseudonym)obj;
}
if (obj is IAsn1String)
{
return new NameOrPseudonym(DirectoryString.GetInstance(obj));
}
if (obj is Asn1Sequence)
{
return new NameOrPseudonym((Asn1Sequence) obj);
}
throw new ArgumentException("unknown object in factory: " + Org.BouncyCastle.Utilities.Platform.GetTypeName(obj), "obj");
}
/**
* Constructor from DERString.
* <p/>
* The sequence is of type NameOrPseudonym:
* <p/>
* <pre>
* NameOrPseudonym ::= CHOICE {
* surAndGivenName SEQUENCE {
* surName DirectoryString,
* givenName SEQUENCE OF DirectoryString
* },
* pseudonym DirectoryString
* }
* </pre>
* @param pseudonym pseudonym value to use.
*/
public NameOrPseudonym(
DirectoryString pseudonym)
{
this.pseudonym = pseudonym;
}
/**
* Constructor from Asn1Sequence.
* <p/>
* The sequence is of type NameOrPseudonym:
* <p/>
* <pre>
* NameOrPseudonym ::= CHOICE {
* surAndGivenName SEQUENCE {
* surName DirectoryString,
* givenName SEQUENCE OF DirectoryString
* },
* pseudonym DirectoryString
* }
* </pre>
*
* @param seq The ASN.1 sequence.
*/
private NameOrPseudonym(
Asn1Sequence seq)
{
if (seq.Count != 2)
throw new ArgumentException("Bad sequence size: " + seq.Count);
if (!(seq[0] is IAsn1String))
throw new ArgumentException("Bad object encountered: " + Org.BouncyCastle.Utilities.Platform.GetTypeName(seq[0]));
surname = DirectoryString.GetInstance(seq[0]);
givenName = Asn1Sequence.GetInstance(seq[1]);
}
/**
* Constructor from a given details.
*
* @param pseudonym The pseudonym.
*/
public NameOrPseudonym(
string pseudonym)
: this(new DirectoryString(pseudonym))
{
}
/**
* Constructor from a given details.
*
* @param surname The surname.
* @param givenName A sequence of directory strings making up the givenName
*/
public NameOrPseudonym(
DirectoryString surname,
Asn1Sequence givenName)
{
this.surname = surname;
this.givenName = givenName;
}
public DirectoryString Pseudonym
{
get { return pseudonym; }
}
public DirectoryString Surname
{
get { return surname; }
}
public DirectoryString[] GetGivenName()
{
DirectoryString[] items = new DirectoryString[givenName.Count];
int count = 0;
foreach (object o in givenName)
{
items[count++] = DirectoryString.GetInstance(o);
}
return items;
}
/**
* Produce an object suitable for an Asn1OutputStream.
* <p/>
* Returns:
* <p/>
* <pre>
* NameOrPseudonym ::= CHOICE {
* surAndGivenName SEQUENCE {
* surName DirectoryString,
* givenName SEQUENCE OF DirectoryString
* },
* pseudonym DirectoryString
* }
* </pre>
*
* @return an Asn1Object
*/
public override Asn1Object ToAsn1Object()
{
if (pseudonym != null)
{
return pseudonym.ToAsn1Object();
}
return new DerSequence(surname, givenName);
}
}
}
#pragma warning restore
#endif

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: f6ab8cce8fbab2247afdf6cb57a1ac37
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 267636
packageName: Best HTTP
packageVersion: 3.0.17
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/x509/sigi/NameOrPseudonym.cs
uploadId: 783279

View File

@ -0,0 +1,207 @@
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
#pragma warning disable
using System;
using Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.X500;
using Best.HTTP.SecureProtocol.Org.BouncyCastle.Math;
using Best.HTTP.SecureProtocol.Org.BouncyCastle.Utilities;
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509.SigI
{
/**
* Contains personal data for the otherName field in the subjectAltNames
* extension.
* <p/>
* <pre>
* PersonalData ::= SEQUENCE {
* nameOrPseudonym NameOrPseudonym,
* nameDistinguisher [0] INTEGER OPTIONAL,
* dateOfBirth [1] GeneralizedTime OPTIONAL,
* placeOfBirth [2] DirectoryString OPTIONAL,
* gender [3] PrintableString OPTIONAL,
* postalAddress [4] DirectoryString OPTIONAL
* }
* </pre>
*
* @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
* @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
*/
public class PersonalData
: Asn1Encodable
{
private readonly NameOrPseudonym nameOrPseudonym;
private readonly BigInteger nameDistinguisher;
private readonly Asn1GeneralizedTime dateOfBirth;
private readonly DirectoryString placeOfBirth;
private readonly string gender;
private readonly DirectoryString postalAddress;
public static PersonalData GetInstance(
object obj)
{
if (obj == null || obj is PersonalData)
{
return (PersonalData) obj;
}
if (obj is Asn1Sequence)
{
return new PersonalData((Asn1Sequence) obj);
}
throw new ArgumentException("unknown object in factory: " + Org.BouncyCastle.Utilities.Platform.GetTypeName(obj), "obj");
}
/**
* Constructor from Asn1Sequence.
* <p/>
* The sequence is of type NameOrPseudonym:
* <p/>
* <pre>
* PersonalData ::= SEQUENCE {
* nameOrPseudonym NameOrPseudonym,
* nameDistinguisher [0] INTEGER OPTIONAL,
* dateOfBirth [1] GeneralizedTime OPTIONAL,
* placeOfBirth [2] DirectoryString OPTIONAL,
* gender [3] PrintableString OPTIONAL,
* postalAddress [4] DirectoryString OPTIONAL
* }
* </pre>
*
* @param seq The ASN.1 sequence.
*/
private PersonalData(Asn1Sequence seq)
{
if (seq.Count < 1)
throw new ArgumentException("Bad sequence size: " + seq.Count);
var e = seq.GetEnumerator();
e.MoveNext();
nameOrPseudonym = NameOrPseudonym.GetInstance(e.Current);
while (e.MoveNext())
{
Asn1TaggedObject o = Asn1TaggedObject.GetInstance(e.Current);
int tag = o.TagNo;
switch (tag)
{
case 0:
nameDistinguisher = DerInteger.GetInstance(o, false).Value;
break;
case 1:
dateOfBirth = Asn1GeneralizedTime.GetInstance(o, false);
break;
case 2:
placeOfBirth = DirectoryString.GetInstance(o, true);
break;
case 3:
gender = DerPrintableString.GetInstance(o, false).GetString();
break;
case 4:
postalAddress = DirectoryString.GetInstance(o, true);
break;
default:
throw new ArgumentException("Bad tag number: " + o.TagNo);
}
}
}
/**
* Constructor from a given details.
*
* @param nameOrPseudonym Name or pseudonym.
* @param nameDistinguisher Name distinguisher.
* @param dateOfBirth Date of birth.
* @param placeOfBirth Place of birth.
* @param gender Gender.
* @param postalAddress Postal Address.
*/
public PersonalData(
NameOrPseudonym nameOrPseudonym,
BigInteger nameDistinguisher,
Asn1GeneralizedTime dateOfBirth,
DirectoryString placeOfBirth,
string gender,
DirectoryString postalAddress)
{
this.nameOrPseudonym = nameOrPseudonym;
this.dateOfBirth = dateOfBirth;
this.gender = gender;
this.nameDistinguisher = nameDistinguisher;
this.postalAddress = postalAddress;
this.placeOfBirth = placeOfBirth;
}
public NameOrPseudonym NameOrPseudonym
{
get { return nameOrPseudonym; }
}
public BigInteger NameDistinguisher
{
get { return nameDistinguisher; }
}
public Asn1GeneralizedTime DateOfBirth
{
get { return dateOfBirth; }
}
public DirectoryString PlaceOfBirth
{
get { return placeOfBirth; }
}
public string Gender
{
get { return gender; }
}
public DirectoryString PostalAddress
{
get { return postalAddress; }
}
/**
* Produce an object suitable for an Asn1OutputStream.
* <p/>
* Returns:
* <p/>
* <pre>
* PersonalData ::= SEQUENCE {
* nameOrPseudonym NameOrPseudonym,
* nameDistinguisher [0] INTEGER OPTIONAL,
* dateOfBirth [1] GeneralizedTime OPTIONAL,
* placeOfBirth [2] DirectoryString OPTIONAL,
* gender [3] PrintableString OPTIONAL,
* postalAddress [4] DirectoryString OPTIONAL
* }
* </pre>
*
* @return an Asn1Object
*/
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector v = new Asn1EncodableVector(nameOrPseudonym);
if (null != nameDistinguisher)
{
v.Add(new DerTaggedObject(false, 0, new DerInteger(nameDistinguisher)));
}
v.AddOptionalTagged(false, 1, dateOfBirth);
v.AddOptionalTagged(true, 2, placeOfBirth);
if (null != gender)
{
v.Add(new DerTaggedObject(false, 3, new DerPrintableString(gender, true)));
}
v.AddOptionalTagged(true, 4, postalAddress);
return new DerSequence(v);
}
}
}
#pragma warning restore
#endif

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: fb40b2cdcd82538449afb5bf1df67cf1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 267636
packageName: Best HTTP
packageVersion: 3.0.17
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/x509/sigi/PersonalData.cs
uploadId: 783279

View File

@ -0,0 +1,53 @@
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
#pragma warning disable
using System;
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509.SigI
{
/**
* Object Identifiers of SigI specifciation (German Signature Law
* Interoperability specification).
*/
public sealed class SigIObjectIdentifiers
{
private SigIObjectIdentifiers()
{
}
public readonly static DerObjectIdentifier IdSigI = new DerObjectIdentifier("1.3.36.8");
/**
* Key purpose IDs for German SigI (Signature Interoperability
* Specification)
*/
public readonly static DerObjectIdentifier IdSigIKP = new DerObjectIdentifier(IdSigI + ".2");
/**
* Certificate policy IDs for German SigI (Signature Interoperability
* Specification)
*/
public readonly static DerObjectIdentifier IdSigICP = new DerObjectIdentifier(IdSigI + ".1");
/**
* Other Name IDs for German SigI (Signature Interoperability Specification)
*/
public readonly static DerObjectIdentifier IdSigION = new DerObjectIdentifier(IdSigI + ".4");
/**
* To be used for for the generation of directory service certificates.
*/
public static readonly DerObjectIdentifier IdSigIKPDirectoryService = new DerObjectIdentifier(IdSigIKP + ".1");
/**
* ID for PersonalData
*/
public static readonly DerObjectIdentifier IdSigIONPersonalData = new DerObjectIdentifier(IdSigION + ".1");
/**
* Certificate is conform to german signature law.
*/
public static readonly DerObjectIdentifier IdSigICPSigConform = new DerObjectIdentifier(IdSigICP + ".1");
}
}
#pragma warning restore
#endif

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 67cf617aa948be344a1413e290314180
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 267636
packageName: Best HTTP
packageVersion: 3.0.17
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/x509/sigi/SigIObjectIdentifiers.cs
uploadId: 783279