Unity_Web/Assets/Best HTTP/Source/SecureProtocol/asn1/cmp/PollReqContent.cs

135 lines
3.0 KiB
C#

#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
#pragma warning disable
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cmp
{
public class PollReqContent
: Asn1Encodable
{
public static PollReqContent GetInstance(object obj)
{
if (obj is PollReqContent pollReqContent)
return pollReqContent;
if (obj != null)
return new PollReqContent(Asn1Sequence.GetInstance(obj));
return null;
}
private readonly Asn1Sequence m_content;
private PollReqContent(Asn1Sequence seq)
{
m_content = seq;
}
/**
* Create a pollReqContent for a single certReqId.
*
* @param certReqId the certificate request ID.
*/
public PollReqContent(DerInteger certReqId)
: this(new DerSequence(new DerSequence(certReqId)))
{
}
/**
* Create a pollReqContent for a multiple certReqIds.
*
* @param certReqIds the certificate request IDs.
*/
public PollReqContent(DerInteger[] certReqIds)
: this(new DerSequence(IntsToSequence(certReqIds)))
{
}
/**
* Create a pollReqContent for a single certReqId.
*
* @param certReqId the certificate request ID.
*/
public PollReqContent(BigInteger certReqId)
: this(new DerInteger(certReqId))
{
}
/**
* Create a pollReqContent for a multiple certReqIds.
*
* @param certReqIds the certificate request IDs.
*/
public PollReqContent(BigInteger[] certReqIds)
: this(IntsToAsn1(certReqIds))
{
}
public virtual DerInteger[][] GetCertReqIDs()
{
DerInteger[][] result = new DerInteger[m_content.Count][];
for (int i = 0; i != result.Length; ++i)
{
result[i] = SequenceToDerIntegerArray((Asn1Sequence)m_content[i]);
}
return result;
}
public virtual BigInteger[] GetCertReqIDValues()
{
BigInteger[] result = new BigInteger[m_content.Count];
for (int i = 0; i != result.Length; i++)
{
result[i] = DerInteger.GetInstance(Asn1Sequence.GetInstance(m_content[i])[0]).Value;
}
return result;
}
/**
* <pre>
* PollReqContent ::= SEQUENCE OF SEQUENCE {
* certReqId INTEGER
* }
* </pre>
* @return a basic ASN.1 object representation.
*/
public override Asn1Object ToAsn1Object()
{
return m_content;
}
private static DerInteger[] SequenceToDerIntegerArray(Asn1Sequence seq)
{
return seq.MapElements(DerInteger.GetInstance);
}
private static DerSequence[] IntsToSequence(DerInteger[] ids)
{
DerSequence[] result = new DerSequence[ids.Length];
for (int i = 0; i != result.Length; i++)
{
result[i] = new DerSequence(ids[i]);
}
return result;
}
private static DerInteger[] IntsToAsn1(BigInteger[] ids)
{
DerInteger[] result = new DerInteger[ids.Length];
for (int i = 0; i != result.Length; i++)
{
result[i] = new DerInteger(ids[i]);
}
return result;
}
}
}
#pragma warning restore
#endif