org.bouncycastle.asn1.cmp.PollRepContent Maven / Gradle / Ivy
package org.bouncycastle.asn1.cmp;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Integer;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERSequence;
public class PollRepContent
extends ASN1Object
{
private ASN1Integer[] certReqId;
private ASN1Integer[] checkAfter;
private PKIFreeText[] reason;
private PollRepContent(ASN1Sequence seq)
{
certReqId = new ASN1Integer[seq.size()];
checkAfter = new ASN1Integer[seq.size()];
reason = new PKIFreeText[seq.size()];
for (int i = 0; i != seq.size(); i++)
{
ASN1Sequence s = ASN1Sequence.getInstance(seq.getObjectAt(i));
certReqId[i] = ASN1Integer.getInstance(s.getObjectAt(0));
checkAfter[i] = ASN1Integer.getInstance(s.getObjectAt(1));
if (s.size() > 2)
{
reason[i] = PKIFreeText.getInstance(s.getObjectAt(2));
}
}
}
public static PollRepContent getInstance(Object o)
{
if (o instanceof PollRepContent)
{
return (PollRepContent)o;
}
if (o != null)
{
return new PollRepContent(ASN1Sequence.getInstance(o));
}
return null;
}
public PollRepContent(ASN1Integer certReqId, ASN1Integer checkAfter)
{
this(certReqId, checkAfter, null);
}
public PollRepContent(ASN1Integer certReqId, ASN1Integer checkAfter, PKIFreeText reason)
{
this.certReqId = new ASN1Integer[1];
this.checkAfter = new ASN1Integer[1];
this.reason = new PKIFreeText[1];
this.certReqId[0] = certReqId;
this.checkAfter[0] = checkAfter;
this.reason[0] = reason;
}
public int size()
{
return certReqId.length;
}
public ASN1Integer getCertReqId(int index)
{
return certReqId[index];
}
public ASN1Integer getCheckAfter(int index)
{
return checkAfter[index];
}
public PKIFreeText getReason(int index)
{
return reason[index];
}
/**
*
* PollRepContent ::= SEQUENCE OF SEQUENCE {
* certReqId INTEGER,
* checkAfter INTEGER, -- time in seconds
* reason PKIFreeText OPTIONAL
* }
*
* @return a basic ASN.1 object representation.
*/
public ASN1Primitive toASN1Primitive()
{
ASN1EncodableVector outer = new ASN1EncodableVector(certReqId.length);
for (int i = 0; i != certReqId.length; i++)
{
ASN1EncodableVector v = new ASN1EncodableVector(3);
v.add(certReqId[i]);
v.add(checkAfter[i]);
if (reason[i] != null)
{
v.add(reason[i]);
}
outer.add(new DERSequence(v));
}
return new DERSequence(outer);
}
}