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.INTEGER;
import iaik.asn1.ObjectID;
import iaik.asn1.SEQUENCE;
import iaik.x509.V3Extension;
import iaik.x509.X509ExtensionException;
import java.math.BigInteger;
public class PolicyConstraints extends V3Extension {
int b = -1;
int a = -1;
public static final ObjectID oid = new ObjectID("2.5.29.36", "PolicyConstraints");
public String toString() {
StringBuffer var1 = new StringBuffer();
if(this.a != -1) {
var1.append("require explicit policy: " + this.a + "\n");
}
if(this.b != -1) {
var1.append("inhibit policy mapping: " + this.b + "\n");
}
var1.setLength(var1.length() - 1);
return var1.toString();
}
public ASN1Object toASN1Object() {
boolean var1 = true;
SEQUENCE var2 = new SEQUENCE();
if(this.a != -1) {
var2.addComponent(new CON_SPEC(0, new INTEGER(this.a), var1));
}
if(this.b != -1) {
var2.addComponent(new CON_SPEC(1, new INTEGER(this.b), var1));
}
return var2;
}
public void setRequireExplicitPolicy(int var1) {
this.a = var1;
}
public void setInhibitPolicyMapping(int var1) {
this.b = var1;
}
public void setInhibitExplicitPolicy(int var1) {
this.setInhibitPolicyMapping(var1);
}
public void init(ASN1Object var1) throws X509ExtensionException {
try {
if(!var1.isA(ASN.SEQUENCE)) {
throw new X509ExtensionException("PolicyConstraints has to be a SEQUENCE!");
} else {
int var2 = var1.countComponents();
if(var2 > 2) {
throw new X509ExtensionException("PolicyConstraints cannot have more than 2 components!");
} else {
for(int var3 = 0; var3 < var1.countComponents(); ++var3) {
CON_SPEC var4 = (CON_SPEC)var1.getComponentAt(var3);
if(var4.isImplicitlyTagged()) {
var4.forceImplicitlyTagged(ASN.INTEGER);
}
switch(var4.getAsnType().getTag()) {
case 0:
this.a = ((BigInteger)((ASN1Object)var4.getValue()).getValue()).intValue();
break;
case 1:
this.b = ((BigInteger)((ASN1Object)var4.getValue()).getValue()).intValue();
}
}
}
}
} catch (Exception var5) {
throw new X509ExtensionException(var5.toString());
}
}
public int hashCode() {
return oid.hashCode();
}
public int getRequireExplicitPolicy() {
return this.a;
}
public ObjectID getObjectID() {
return oid;
}
public int getInhibitPolicyMapping() {
return this.b;
}
public int getInhibitExplicitPolicy() {
return this.getInhibitPolicyMapping();
}
}