ScvpReqRes
using System;
namespace Org.BouncyCastle.Asn1.Cms
{
public class ScvpReqRes : Asn1Encodable
{
private readonly ContentInfo m_request;
private readonly ContentInfo m_response;
public virtual ContentInfo Request => m_request;
public virtual ContentInfo Response => m_response;
public static ScvpReqRes GetInstance(object obj)
{
if (obj == null)
return null;
ScvpReqRes scvpReqRes = obj as ScvpReqRes;
if (scvpReqRes != null)
return scvpReqRes;
return new ScvpReqRes(Asn1Sequence.GetInstance(obj));
}
public static ScvpReqRes GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new ScvpReqRes(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
}
public static ScvpReqRes GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new ScvpReqRes(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
}
private ScvpReqRes(Asn1Sequence seq)
{
int count = seq.Count;
int sequencePosition = 0;
if (count < 1 || count > 2)
throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq");
m_request = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, true, ContentInfo.GetTagged);
m_response = ContentInfo.GetInstance(seq[sequencePosition++]);
if (sequencePosition != count)
throw new ArgumentException("Unexpected elements in sequence", "seq");
}
public ScvpReqRes(ContentInfo response)
: this(null, response)
{
}
public ScvpReqRes(ContentInfo request, ContentInfo response)
{
m_request = request;
if (response == null)
throw new ArgumentNullException("response");
m_response = response;
}
public override Asn1Object ToAsn1Object()
{
if (m_request == null)
return new DerSequence(m_response);
return new DerSequence(new DerTaggedObject(true, 0, m_request), m_response);
}
}
}