Red Hat Application Migration Toolkit
package iaik.x509; import iaik.asn1.ASN1Object; import iaik.asn1.BOOLEAN; import iaik.asn1.CodingException; import iaik.asn1.DerCoder; import iaik.asn1.OCTET_STRING; import iaik.asn1.ObjectID; import iaik.asn1.SEQUENCE; import iaik.utils.InternalErrorException; import iaik.utils.Util; import iaik.x509.UnknownExtension; import iaik.x509.V3Extension; import iaik.x509.X509ExtensionException; import iaik.x509.X509ExtensionInitException; import iaik.x509.a; import iaik.x509.extensions.AuthorityInfoAccess; import iaik.x509.extensions.AuthorityKeyIdentifier; import iaik.x509.extensions.BasicConstraints; import iaik.x509.extensions.CRLDistributionPoints; import iaik.x509.extensions.CRLNumber; import iaik.x509.extensions.CertificateIssuer; import iaik.x509.extensions.CertificatePolicies; import iaik.x509.extensions.DeltaCRLIndicator; import iaik.x509.extensions.ErrorExtension; import iaik.x509.extensions.ExtendedKeyUsage; import iaik.x509.extensions.FreshestCRL; import iaik.x509.extensions.HoldInstructionCode; import iaik.x509.extensions.InhibitAnyPolicy; import iaik.x509.extensions.InvalidityDate; import iaik.x509.extensions.IssuerAltName; import iaik.x509.extensions.IssuingDistributionPoint; import iaik.x509.extensions.KeyUsage; import iaik.x509.extensions.NameConstraints; import iaik.x509.extensions.PolicyConstraints; import iaik.x509.extensions.PolicyMappings; import iaik.x509.extensions.PrivateKeyUsagePeriod; import iaik.x509.extensions.ReasonCode; import iaik.x509.extensions.SubjectAltName; import iaik.x509.extensions.SubjectDirectoryAttributes; import iaik.x509.extensions.SubjectInfoAccess; import iaik.x509.extensions.SubjectKeyIdentifier; import iaik.x509.extensions.netscape.NetscapeBaseUrl; import iaik.x509.extensions.netscape.NetscapeCaPolicyUrl; import iaik.x509.extensions.netscape.NetscapeCaRevocationUrl; import iaik.x509.extensions.netscape.NetscapeCertRenewalUrl; import iaik.x509.extensions.netscape.NetscapeCertType; import iaik.x509.extensions.netscape.NetscapeComment; import iaik.x509.extensions.netscape.NetscapeRevocationUrl; import iaik.x509.extensions.netscape.NetscapeSSLServerName; import iaik.x509.extensions.ocsp.NoCheck; import iaik.x509.extensions.qualified.BiometricInfo; import iaik.x509.extensions.qualified.QCStatements; import java.util.Enumeration; import java.util.HashSet; import java.util.Hashtable; import java.util.Set; import java.util.Vector; public class X509Extensions { // $FF: synthetic field static Class lb; // $FF: synthetic field static Class d; // $FF: synthetic field static Class a; // $FF: synthetic field static Class c; // $FF: synthetic field static Class e; // $FF: synthetic field static Class f; // $FF: synthetic field static Class g; // $FF: synthetic field static Class h; // $FF: synthetic field static Class i; // $FF: synthetic field static Class j; // $FF: synthetic field static Class k; // $FF: synthetic field static Class l; // $FF: synthetic field static Class fb; // $FF: synthetic field static Class y; // $FF: synthetic field static Class ab; // $FF: synthetic field static Class q; // $FF: synthetic field static Class w; // $FF: synthetic field static Class db; // $FF: synthetic field static Class gb; // $FF: synthetic field static Class bb; // $FF: synthetic field static Class z; // $FF: synthetic field static Class n; // $FF: synthetic field static Class kb; // $FF: synthetic field static Class o; // $FF: synthetic field static Class m; // $FF: synthetic field static Class p; // $FF: synthetic field static Class r; // $FF: synthetic field static Class s; // $FF: synthetic field static Class t; // $FF: synthetic field static Class u; // $FF: synthetic field static Class v; // $FF: synthetic field static Class x; // $FF: synthetic field static Class cb; // $FF: synthetic field static Class hb; // $FF: synthetic field static Class eb; // $FF: synthetic field static Class ib; // $FF: synthetic field static Class jb; protected Hashtable noncritical_extensions; protected Hashtable critical_extensions; private static a b = new a(); 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(); V3Extension var2 = null; Enumeration var3 = this.listExtensions(); for(int var4 = 1; var3.hasMoreElements(); ++var4) { var2 = (V3Extension)var3.nextElement(); var1.append("Extension " + var4 + ": "); if(var2.isCritical()) { var1.append("critical "); } else { var1.append("not critical "); } String var5 = var2.getName(); if(var5 != null && var5.trim().length() != 0) { var1.append(var5); } else { var1.append("Unknown Extension"); } var1.append("\n"); var1.append(var2 + "\n\n"); } return var1.toString(); } public ASN1Object toASN1Object() throws X509ExtensionException { SEQUENCE var1 = null; SEQUENCE var2 = null; var2 = new SEQUENCE(); Enumeration var3 = this.critical_extensions.keys(); while(var3.hasMoreElements()) { var1 = new SEQUENCE(); ObjectID var4 = (ObjectID)var3.nextElement(); var1.addComponent(var4); var1.addComponent(new BOOLEAN(true)); byte[] var5 = (byte[])this.critical_extensions.get(var4); if(var5 == null) { throw new InternalErrorException("Extension value = null!"); } var1.addComponent(new OCTET_STRING(var5)); var2.addComponent(var1); } Enumeration var7 = this.noncritical_extensions.keys(); while(var7.hasMoreElements()) { var1 = new SEQUENCE(); ObjectID var8 = (ObjectID)var7.nextElement(); var1.addComponent(var8); byte[] var6 = (byte[])this.noncritical_extensions.get(var8); if(var6 == null) { throw new InternalErrorException("Extension value = null!"); } var1.addComponent(new OCTET_STRING(var6)); var2.addComponent(var1); } return var2; } public boolean removeExtension(ObjectID var1) { return this.critical_extensions.remove(var1) != null?true:(this.noncritical_extensions.remove(var1) != null?true:true); } public void removeAllExtensions() { this.critical_extensions.clear(); this.noncritical_extensions.clear(); } public static void register(ObjectID var0, Class var1) { b.register(lb != null?lb:(lb = a("iaik.x509.V3Extension")), var0, var1); } protected void parseExtensions(ASN1Object var1) throws X509ExtensionException { try { for(int var2 = 0; var2 < var1.countComponents(); ++var2) { boolean var3 = false; ASN1Object var4 = var1.getComponentAt(var2); ObjectID var5 = (ObjectID)var4.getComponentAt(0); int var6 = var4.countComponents(); if(var6 == 3) { var3 = ((Boolean)var4.getComponentAt(1).getValue()).booleanValue(); } byte[] var7 = (byte[])var4.getComponentAt(var6 - 1).getValue(); if(var3) { this.critical_extensions.put(var5, var7); } else { this.noncritical_extensions.put(var5, var7); } } } catch (CodingException var8) { throw new X509ExtensionException(var8.getMessage()); } } public Enumeration listExtensions() { Vector var1 = new Vector(); Enumeration var2 = this.critical_extensions.keys(); ObjectID var3; while(var2.hasMoreElements()) { var3 = (ObjectID)var2.nextElement(); try { var1.addElement(this.getExtension(var3)); } catch (X509ExtensionInitException var6) { var1.addElement(new ErrorExtension(var3, true, var6.getMessage())); } } var2 = this.noncritical_extensions.keys(); while(var2.hasMoreElements()) { var3 = (ObjectID)var2.nextElement(); try { var1.addElement(this.getExtension(var3)); } catch (X509ExtensionInitException var5) { var1.addElement(new ErrorExtension(var3, false, var5.getMessage())); } } return var1.elements(); } public boolean hasUnsupportedCriticalExtension() { try { Enumeration var1 = this.critical_extensions.keys(); while(var1.hasMoreElements()) { V3Extension var2 = this.getExtension((ObjectID)var1.nextElement()); if(var2 instanceof UnknownExtension) { return true; } } return false; } catch (X509ExtensionInitException var3) { return true; } } public boolean hasExtensions() { return !this.critical_extensions.isEmpty() || !this.noncritical_extensions.isEmpty(); } public Set getNonCriticalExtensionOIDs() { HashSet var1 = new HashSet(); Enumeration var2 = this.noncritical_extensions.keys(); while(var2.hasMoreElements()) { ObjectID var3 = (ObjectID)var2.nextElement(); var1.add(var3.getID()); } return var1; } public byte[] getExtensionValue(String var1) { Object var3 = this.critical_extensions.get(new ObjectID(var1)); byte[] var2; if(var3 != null) { var2 = (byte[])var3; } else { var2 = (byte[])this.noncritical_extensions.get(new ObjectID(var1)); } return var2 != null?DerCoder.encode(new OCTET_STRING(var2)):null; } public V3Extension getExtension(ObjectID var1) throws X509ExtensionInitException { boolean var3 = true; byte[] var2 = (byte[])this.critical_extensions.get(var1); if(var2 == null) { var2 = (byte[])this.noncritical_extensions.get(var1); if(var2 == null) { return null; } var3 = false; } Object var4 = null; try { var4 = create(var1); } catch (InstantiationException var8) { var4 = new UnknownExtension(var1); } ((V3Extension)var4).setCritical(var3); try { ASN1Object var5 = DerCoder.decode(var2); ((V3Extension)var4).init(var5); return (V3Extension)var4; } catch (X509ExtensionException var6) { throw new X509ExtensionInitException(var1, var3, var6.toString()); } catch (CodingException var7) { throw new X509ExtensionInitException(var1, var3, var7.toString()); } } public Set getCriticalExtensionOIDs() { HashSet var1 = new HashSet(); Enumeration var2 = this.critical_extensions.keys(); while(var2.hasMoreElements()) { ObjectID var3 = (ObjectID)var2.nextElement(); var1.add(var3.getID()); } return var1; } public static V3Extension create(ObjectID var0) throws InstantiationException { return (V3Extension)b.create(lb != null?lb:(lb = a("iaik.x509.V3Extension")), var0, false); } public int countExtensions() { return this.critical_extensions.size() + this.noncritical_extensions.size(); } public boolean addExtension(V3Extension var1) throws X509ExtensionException { byte[] var2 = DerCoder.encode(var1.toASN1Object()); return var1.isCritical()?this.critical_extensions.put(var1.getObjectID(), var2) != null:this.noncritical_extensions.put(var1.getObjectID(), var2) != null; } public X509Extensions(ASN1Object var1) throws X509ExtensionException { this(); this.parseExtensions(var1); } public X509Extensions() { this.critical_extensions = new Hashtable(20); this.noncritical_extensions = new Hashtable(20); } static { register(AuthorityKeyIdentifier.oid, jb != null?jb:(jb = a("iaik.x509.extensions.AuthorityKeyIdentifier"))); register(BasicConstraints.oid, ib != null?ib:(ib = a("iaik.x509.extensions.BasicConstraints"))); register(CertificatePolicies.oid, eb != null?eb:(eb = a("iaik.x509.extensions.CertificatePolicies"))); register(CRLDistributionPoints.oid, hb != null?hb:(hb = a("iaik.x509.extensions.CRLDistributionPoints"))); register(ExtendedKeyUsage.oid, cb != null?cb:(cb = a("iaik.x509.extensions.ExtendedKeyUsage"))); register(IssuerAltName.oid, x != null?x:(x = a("iaik.x509.extensions.IssuerAltName"))); register(KeyUsage.oid, v != null?v:(v = a("iaik.x509.extensions.KeyUsage"))); register(NameConstraints.oid, u != null?u:(u = a("iaik.x509.extensions.NameConstraints"))); register(PolicyConstraints.oid, t != null?t:(t = a("iaik.x509.extensions.PolicyConstraints"))); register(PolicyMappings.oid, s != null?s:(s = a("iaik.x509.extensions.PolicyMappings"))); register(PrivateKeyUsagePeriod.oid, r != null?r:(r = a("iaik.x509.extensions.PrivateKeyUsagePeriod"))); register(SubjectAltName.oid, p != null?p:(p = a("iaik.x509.extensions.SubjectAltName"))); register(SubjectKeyIdentifier.oid, m != null?m:(m = a("iaik.x509.extensions.SubjectKeyIdentifier"))); register(SubjectDirectoryAttributes.oid, o != null?o:(o = a("iaik.x509.extensions.SubjectDirectoryAttributes"))); register(AuthorityInfoAccess.oid, kb != null?kb:(kb = a("iaik.x509.extensions.AuthorityInfoAccess"))); register(SubjectInfoAccess.oid, n != null?n:(n = a("iaik.x509.extensions.SubjectInfoAccess"))); register(InhibitAnyPolicy.oid, z != null?z:(z = a("iaik.x509.extensions.InhibitAnyPolicy"))); register(FreshestCRL.oid, bb != null?bb:(bb = a("iaik.x509.extensions.FreshestCRL"))); register(CRLNumber.oid, gb != null?gb:(gb = a("iaik.x509.extensions.CRLNumber"))); register(DeltaCRLIndicator.oid, db != null?db:(db = a("iaik.x509.extensions.DeltaCRLIndicator"))); register(IssuingDistributionPoint.oid, w != null?w:(w = a("iaik.x509.extensions.IssuingDistributionPoint"))); register(ReasonCode.oid, q != null?q:(q = a("iaik.x509.extensions.ReasonCode"))); register(HoldInstructionCode.oid, ab != null?ab:(ab = a("iaik.x509.extensions.HoldInstructionCode"))); register(InvalidityDate.oid, y != null?y:(y = a("iaik.x509.extensions.InvalidityDate"))); register(CertificateIssuer.oid, fb != null?fb:(fb = a("iaik.x509.extensions.CertificateIssuer"))); register(NetscapeBaseUrl.oid, l != null?l:(l = a("iaik.x509.extensions.netscape.NetscapeBaseUrl"))); register(NetscapeCaPolicyUrl.oid, k != null?k:(k = a("iaik.x509.extensions.netscape.NetscapeCaPolicyUrl"))); register(NetscapeCaRevocationUrl.oid, j != null?j:(j = a("iaik.x509.extensions.netscape.NetscapeCaRevocationUrl"))); register(NetscapeCertRenewalUrl.oid, i != null?i:(i = a("iaik.x509.extensions.netscape.NetscapeCertRenewalUrl"))); register(NetscapeCertType.oid, h != null?h:(h = a("iaik.x509.extensions.netscape.NetscapeCertType"))); register(NetscapeComment.oid, g != null?g:(g = a("iaik.x509.extensions.netscape.NetscapeComment"))); register(NetscapeRevocationUrl.oid, f != null?f:(f = a("iaik.x509.extensions.netscape.NetscapeRevocationUrl"))); register(NetscapeSSLServerName.oid, e != null?e:(e = a("iaik.x509.extensions.netscape.NetscapeSSLServerName"))); register(BiometricInfo.oid, c != null?c:(c = a("iaik.x509.extensions.qualified.BiometricInfo"))); register(QCStatements.oid, a != null?a:(a = a("iaik.x509.extensions.qualified.QCStatements"))); register(NoCheck.oid, d != null?d:(d = a("iaik.x509.extensions.ocsp.NoCheck"))); Util.toString((byte[])null, -1, 1); } }