
org.spongycastle.asn1.cmp.CertResponse Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle
intended for the Android platform. Android unfortunately ships with a stripped-down version of
Bouncy Castle, which prevents easy upgrades - Spongy Castle overcomes this and provides a full,
up-to-date version of the Bouncy Castle cryptographic libs.
The newest version!
package org.spongycastle.asn1.cmp;
import org.spongycastle.asn1.ASN1Encodable;
import org.spongycastle.asn1.ASN1EncodableVector;
import org.spongycastle.asn1.ASN1Integer;
import org.spongycastle.asn1.ASN1Object;
import org.spongycastle.asn1.ASN1OctetString;
import org.spongycastle.asn1.ASN1Primitive;
import org.spongycastle.asn1.ASN1Sequence;
import org.spongycastle.asn1.DERSequence;
public class CertResponse
extends ASN1Object
{
private ASN1Integer certReqId;
private PKIStatusInfo status;
private CertifiedKeyPair certifiedKeyPair;
private ASN1OctetString rspInfo;
private CertResponse(ASN1Sequence seq)
{
certReqId = ASN1Integer.getInstance(seq.getObjectAt(0));
status = PKIStatusInfo.getInstance(seq.getObjectAt(1));
if (seq.size() >= 3)
{
if (seq.size() == 3)
{
ASN1Encodable o = seq.getObjectAt(2);
if (o instanceof ASN1OctetString)
{
rspInfo = ASN1OctetString.getInstance(o);
}
else
{
certifiedKeyPair = CertifiedKeyPair.getInstance(o);
}
}
else
{
certifiedKeyPair = CertifiedKeyPair.getInstance(seq.getObjectAt(2));
rspInfo = ASN1OctetString.getInstance(seq.getObjectAt(3));
}
}
}
public static CertResponse getInstance(Object o)
{
if (o instanceof CertResponse)
{
return (CertResponse)o;
}
if (o != null)
{
return new CertResponse(ASN1Sequence.getInstance(o));
}
return null;
}
public CertResponse(
ASN1Integer certReqId,
PKIStatusInfo status)
{
this(certReqId, status, null, null);
}
public CertResponse(
ASN1Integer certReqId,
PKIStatusInfo status,
CertifiedKeyPair certifiedKeyPair,
ASN1OctetString rspInfo)
{
if (certReqId == null)
{
throw new IllegalArgumentException("'certReqId' cannot be null");
}
if (status == null)
{
throw new IllegalArgumentException("'status' cannot be null");
}
this.certReqId = certReqId;
this.status = status;
this.certifiedKeyPair = certifiedKeyPair;
this.rspInfo = rspInfo;
}
public ASN1Integer getCertReqId()
{
return certReqId;
}
public PKIStatusInfo getStatus()
{
return status;
}
public CertifiedKeyPair getCertifiedKeyPair()
{
return certifiedKeyPair;
}
/**
*
* CertResponse ::= SEQUENCE {
* certReqId INTEGER,
* -- to match this response with corresponding request (a value
* -- of -1 is to be used if certReqId is not specified in the
* -- corresponding request)
* status PKIStatusInfo,
* certifiedKeyPair CertifiedKeyPair OPTIONAL,
* rspInfo OCTET STRING OPTIONAL
* -- analogous to the id-regInfo-utf8Pairs string defined
* -- for regInfo in CertReqMsg [CRMF]
* }
*
* @return a basic ASN.1 object representation.
*/
public ASN1Primitive toASN1Primitive()
{
ASN1EncodableVector v = new ASN1EncodableVector();
v.add(certReqId);
v.add(status);
if (certifiedKeyPair != null)
{
v.add(certifiedKeyPair);
}
if (rspInfo != null)
{
v.add(rspInfo);
}
return new DERSequence(v);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy