Red Hat Application Migration Toolkit
package iaik.x509.extensions;
import iaik.asn1.ASN;
import iaik.asn1.ASN1Object;
import iaik.asn1.CON_SPEC;
import iaik.asn1.CodingException;
import iaik.asn1.INTEGER;
import iaik.asn1.OCTET_STRING;
import iaik.asn1.ObjectID;
import iaik.asn1.SEQUENCE;
import iaik.asn1.structures.GeneralNames;
import iaik.utils.Util;
import iaik.x509.V3Extension;
import iaik.x509.X509ExtensionException;
import java.math.BigInteger;
public class AuthorityKeyIdentifier extends V3Extension {
private BigInteger b;
private GeneralNames c;
private byte[] a;
public static final ObjectID oid = new ObjectID("2.5.29.35", "AuthorityKeyIdentifier");
public String toString() {
StringBuffer var1 = new StringBuffer();
if(this.a != null) {
var1.append("KeyIdentifier: " + Util.toString(this.a) + "\n");
}
if(this.c != null) {
var1.append("AuthorityCertIssuer: " + this.c + "\n");
}
if(this.b != null) {
var1.append("AuthorityCertSerialNumber: " + this.b.toString(16) + "\n");
}
var1.setLength(var1.length() - 1);
return var1.toString();
}
public ASN1Object toASN1Object() throws X509ExtensionException {
boolean var1 = true;
SEQUENCE var2 = new SEQUENCE();
if(this.a != null) {
var2.addComponent(new CON_SPEC(0, new OCTET_STRING(this.a), var1));
}
if(this.c != null) {
try {
var2.addComponent(new CON_SPEC(1, this.c.toASN1Object(), var1));
} catch (CodingException var4) {
throw new X509ExtensionException(var4.getMessage());
}
}
if(this.b != null) {
var2.addComponent(new CON_SPEC(2, new INTEGER(this.b), var1));
}
return var2;
}
public void setKeyIdentifier(byte[] var1) {
this.a = var1;
}
public void setAuthorityCertSerialNumber(BigInteger var1) {
this.b = var1;
}
public void setAuthorityCertIssuer(GeneralNames var1) {
this.c = var1;
}
public void init(ASN1Object var1) throws X509ExtensionException {
ASN1Object var2 = null;
try {
for(int var3 = 0; var3 < var1.countComponents(); ++var3) {
CON_SPEC var4 = (CON_SPEC)var1.getComponentAt(var3);
switch(var4.getAsnType().getTag()) {
case 0:
OCTET_STRING var5 = null;
if(var4.isImplicitlyTagged()) {
var4.forceImplicitlyTagged(ASN.OCTET_STRING);
}
var2 = (ASN1Object)var4.getValue();
if(!(var2 instanceof OCTET_STRING)) {
throw new CodingException("Cannot parse keyIdentifier. Expected an OCTET_STRING!");
}
var5 = (OCTET_STRING)var2;
this.a = (byte[])var5.getValue();
break;
case 1:
Object var6 = var4.getValue();
if(!(var6 instanceof ASN1Object) || !((ASN1Object)var6).getAsnType().equals(ASN.SEQUENCE)) {
var4.forceImplicitlyTagged(ASN.SEQUENCE);
}
var2 = (ASN1Object)var4.getValue();
this.c = new GeneralNames(var2);
break;
case 2:
INTEGER var7 = null;
if(var4.isImplicitlyTagged()) {
var4.forceImplicitlyTagged(ASN.INTEGER);
}
var2 = (ASN1Object)var4.getValue();
if(!(var2 instanceof INTEGER)) {
throw new CodingException("Cannot parse authorityCertSerialNumber. Expected an INTEGER!");
}
var7 = (INTEGER)var2;
this.b = (BigInteger)var7.getValue();
}
}
} catch (Exception var8) {
throw new X509ExtensionException(var8.getMessage());
}
}
public int hashCode() {
return oid.hashCode();
}
public ObjectID getObjectID() {
return oid;
}
public byte[] getKeyIdentifier() {
return this.a;
}
public BigInteger getAuthorityCertSerialNumber() {
return this.b;
}
public GeneralNames getAuthorityCertIssuer() {
return this.c;
}
public AuthorityKeyIdentifier(byte[] var1) {
this.a = var1;
}
public AuthorityKeyIdentifier(GeneralNames var1, BigInteger var2) {
this.c = var1;
this.b = var2;
}
public AuthorityKeyIdentifier() {
}
}