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.ObjectID;
import iaik.asn1.SEQUENCE;
import iaik.asn1.structures.GeneralSubtree;
import iaik.x509.V3Extension;
import iaik.x509.X509ExtensionException;
public class NameConstraints extends V3Extension {
// $FF: synthetic field
static Class c;
GeneralSubtree[] b;
GeneralSubtree[] a;
public static final ObjectID oid = new ObjectID("2.5.29.30", "NameConstraints");
static Class a(String var0) {
try {
return Class.forName(var0);
} catch (ClassNotFoundException var2) {
throw new NoClassDefFoundError(var2.getMessage());
}
}
public String toString() {
StringBuffer var1 = new StringBuffer();
int var2;
if(this.a != null) {
var1.append("permitted subtrees:\n");
for(var2 = 0; var2 < this.a.length; ++var2) {
var1.append(var2 + 1 + ": ");
var1.append(this.a[var2]);
var1.append("\n");
}
}
if(this.b != null) {
var1.append("excluded subtrees:\n");
for(var2 = 0; var2 < this.b.length; ++var2) {
var1.append(var2 + 1 + ": ");
var1.append(this.b[var2]);
var1.append("\n");
}
}
var1.setLength(var1.length() - 1);
return var1.toString();
}
public ASN1Object toASN1Object() throws X509ExtensionException {
boolean var1 = true;
SEQUENCE var2 = new SEQUENCE();
try {
ASN1Object var3;
if(this.a != null) {
var3 = ASN.createSequenceOf(this.a);
var2.addComponent(new CON_SPEC(0, var3, var1));
}
if(this.b != null) {
var3 = ASN.createSequenceOf(this.b);
var2.addComponent(new CON_SPEC(1, var3, var1));
}
return var2;
} catch (CodingException var4) {
throw new X509ExtensionException(var4.toString());
}
}
public void setPermittedSubtrees(GeneralSubtree[] var1) {
this.a = var1;
}
public void setExcludedSubtrees(GeneralSubtree[] var1) {
this.b = var1;
}
public void init(ASN1Object var1) throws X509ExtensionException {
try {
if(!var1.isA(ASN.SEQUENCE)) {
throw new X509ExtensionException("NameConstraints has to be a SEQUENCE!");
} else {
int var2 = 0;
int var3 = var1.countComponents();
if(var3 > 2) {
throw new X509ExtensionException("NameConstraints cannot include more than two components!");
} else {
for(; var2 < var3; ++var2) {
CON_SPEC var4 = (CON_SPEC)var1.getComponentAt(var2);
boolean var5 = false;
if(var4.countComponents() > 1) {
var4.forceImplicitlyTagged(ASN.SEQUENCE);
var5 = true;
}
if(!var5) {
ASN1Object var6 = var4.getComponentAt(0).getComponentAt(0);
if(!var6.isA(ASN.SEQUENCE)) {
var4.forceImplicitlyTagged(ASN.SEQUENCE);
}
}
switch(var4.getAsnType().getTag()) {
case 0:
this.a = (GeneralSubtree[])ASN.parseSequenceOf((ASN1Object)var4.getValue(), c != null?c:(c = a("iaik.asn1.structures.GeneralSubtree")));
break;
case 1:
this.b = (GeneralSubtree[])ASN.parseSequenceOf((ASN1Object)var4.getValue(), c != null?c:(c = a("iaik.asn1.structures.GeneralSubtree")));
}
}
}
}
} catch (Exception var7) {
throw new X509ExtensionException(var7.toString());
}
}
public int hashCode() {
return oid.hashCode();
}
public GeneralSubtree[] getPermittedSubtrees() {
return this.a;
}
public ObjectID getObjectID() {
return oid;
}
public GeneralSubtree[] getExcludedSubtrees() {
return this.b;
}
}