![JAR search and dependency download from the Maven repository](/logo.png)
nl.open.jwtdependency.org.bouncycastle.asn1.cmp.CMPCertificate Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-jwt-nodependencies Show documentation
Show all versions of java-jwt-nodependencies Show documentation
This is a drop in replacement for the auth0 java-jwt library (see https://github.com/auth0/java-jwt). This jar makes sure there are no external dependencies (e.g. fasterXml, Apacha Commons) needed. This is useful when deploying to an application server (e.g. tomcat with Alfreso or Pega).
The newest version!
package org.bouncycastle.asn1.cmp;
import java.io.IOException;
import org.bouncycastle.asn1.ASN1Choice;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.x509.AttributeCertificate;
import org.bouncycastle.asn1.x509.Certificate;
public class CMPCertificate
extends ASN1Object
implements ASN1Choice
{
private Certificate x509v3PKCert;
private int otherTagValue;
private ASN1Object otherCert;
/**
* Note: the addition of attribute certificates is a BC extension. If you use this constructor they
* will be added with a tag value of 1.
* @deprecated use (type. otherCert) constructor
*/
public CMPCertificate(AttributeCertificate x509v2AttrCert)
{
this(1, x509v2AttrCert);
}
/**
* Note: the addition of other certificates is a BC extension. If you use this constructor they
* will be added with an explicit tag value of type.
*
* @param type the type of the certificate (used as a tag value).
* @param otherCert the object representing the certificate
*/
public CMPCertificate(int type, ASN1Object otherCert)
{
this.otherTagValue = type;
this.otherCert = otherCert;
}
public CMPCertificate(Certificate x509v3PKCert)
{
if (x509v3PKCert.getVersionNumber() != 3)
{
throw new IllegalArgumentException("only version 3 certificates allowed");
}
this.x509v3PKCert = x509v3PKCert;
}
public static CMPCertificate getInstance(Object o)
{
if (o == null || o instanceof CMPCertificate)
{
return (CMPCertificate)o;
}
if (o instanceof byte[])
{
try
{
o = ASN1Primitive.fromByteArray((byte[])o);
}
catch (IOException e)
{
throw new IllegalArgumentException("Invalid encoding in CMPCertificate");
}
}
if (o instanceof ASN1Sequence)
{
return new CMPCertificate(Certificate.getInstance(o));
}
if (o instanceof ASN1TaggedObject)
{
ASN1TaggedObject taggedObject = (ASN1TaggedObject)o;
return new CMPCertificate(taggedObject.getTagNo(), taggedObject.getObject());
}
throw new IllegalArgumentException("Invalid object: " + o.getClass().getName());
}
public boolean isX509v3PKCert()
{
return x509v3PKCert != null;
}
public Certificate getX509v3PKCert()
{
return x509v3PKCert;
}
/**
* Return an AttributeCertificate interpretation of otherCert.
* @deprecated use getOtherCert and getOtherTag to make sure message is really what it should be.
*
* @return an AttributeCertificate
*/
public AttributeCertificate getX509v2AttrCert()
{
return AttributeCertificate.getInstance(otherCert);
}
public int getOtherCertTag()
{
return otherTagValue;
}
public ASN1Object getOtherCert()
{
return otherCert;
}
/**
*
* CMPCertificate ::= CHOICE {
* x509v3PKCert Certificate
* otherCert [tag] EXPLICIT ANY DEFINED BY tag
* }
*
* Note: the addition of the explicit tagging is a BC extension. We apologise for the warped syntax, but hopefully you get the idea.
*
* @return a basic ASN.1 object representation.
*/
public ASN1Primitive toASN1Primitive()
{
if (otherCert != null)
{ // explicit following CMP conventions
return new DERTaggedObject(true, otherTagValue, otherCert);
}
return x509v3PKCert.toASN1Primitive();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy