public class org.bouncycastle.jce.provider.X509CertificateObject extends java.security.cert.X509Certificate implements org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.provider.X509CertificateObject
  super_class: java.security.cert.X509Certificate
{
  private org.bouncycastle.asn1.x509.X509CertificateStructure c;
    descriptor: Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.asn1.x509.BasicConstraints basicConstraints;
    descriptor: Lorg/bouncycastle/asn1/x509/BasicConstraints;
    flags: (0x0002) ACC_PRIVATE

  private boolean[] keyUsage;
    descriptor: [Z
    flags: (0x0002) ACC_PRIVATE

  private boolean hashValueSet;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int hashValue;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier attrCarrier;
    descriptor: Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.bouncycastle.asn1.x509.X509CertificateStructure);
    descriptor: (Lorg/bouncycastle/asn1/x509/X509CertificateStructure;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // org.bouncycastle.asn1.x509.X509CertificateStructure c
         0: .line 70
            aload 0 /* this */
            invokespecial java.security.cert.X509Certificate.<init>:()V
         1: .line 68
            aload 0 /* this */
            new org.bouncycastle.jce.provider.PKCS12BagAttributeCarrierImpl
            dup
            invokespecial org.bouncycastle.jce.provider.PKCS12BagAttributeCarrierImpl.<init>:()V
            putfield org.bouncycastle.jce.provider.X509CertificateObject.attrCarrier:Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
         2: .line 74
            aload 0 /* this */
            aload 1 /* c */
            putfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
         3: .line 78
            aload 0 /* this */
            ldc "2.5.29.19"
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getExtensionBytes:(Ljava/lang/String;)[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         4: .line 80
            aload 2 /* bytes */
            ifnull 9
         5: .line 82
            aload 0 /* this */
            aload 2 /* bytes */
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            invokestatic org.bouncycastle.asn1.x509.BasicConstraints.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/BasicConstraints;
            putfield org.bouncycastle.jce.provider.X509CertificateObject.basicConstraints:Lorg/bouncycastle/asn1/x509/BasicConstraints;
        end local 2 // byte[] bytes
         6: .line 84
            goto 9
         7: .line 85
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.x509.X509CertificateStructure
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         8: .line 87
            new java.security.cert.CertificateParsingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot construct BasicConstraints: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateParsingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Exception e
         9: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "2.5.29.15"
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getExtensionBytes:(Ljava/lang/String;)[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
        10: .line 93
            aload 2 /* bytes */
            ifnull 25
        11: .line 95
            aload 2 /* bytes */
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            invokestatic org.bouncycastle.asn1.DERBitString.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/DERBitString;
            astore 3 /* bits */
        start local 3 // org.bouncycastle.asn1.DERBitString bits
        12: .line 97
            aload 3 /* bits */
            invokevirtual org.bouncycastle.asn1.DERBitString.getBytes:()[B
            astore 2 /* bytes */
        13: .line 98
            aload 2 /* bytes */
            arraylength
            bipush 8
            imul
            aload 3 /* bits */
            invokevirtual org.bouncycastle.asn1.DERBitString.getPadBits:()I
            isub
            istore 4 /* length */
        start local 4 // int length
        14: .line 100
            aload 0 /* this */
            iload 4 /* length */
            bipush 9
            if_icmpge 15
            bipush 9
            goto 16
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.x509.X509CertificateStructure byte[] org.bouncycastle.asn1.DERBitString int
      StackMap stack: org.bouncycastle.jce.provider.X509CertificateObject
        15: iload 4 /* length */
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.x509.X509CertificateStructure byte[] org.bouncycastle.asn1.DERBitString int
      StackMap stack: org.bouncycastle.jce.provider.X509CertificateObject int
        16: newarray 4
            putfield org.bouncycastle.jce.provider.X509CertificateObject.keyUsage:[Z
        17: .line 102
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        18: goto 23
        19: .line 104
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.keyUsage:[Z
            iload 5 /* i */
            aload 2 /* bytes */
            iload 5 /* i */
            bipush 8
            idiv
            baload
            sipush 128
            iload 5 /* i */
            bipush 8
            irem
            iushr
            iand
            ifeq 20
            iconst_1
            goto 21
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.x509.X509CertificateStructure byte[] org.bouncycastle.asn1.DERBitString int int
      StackMap stack: boolean[] int
        20: iconst_0
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.x509.X509CertificateStructure byte[] org.bouncycastle.asn1.DERBitString int int
      StackMap stack: boolean[] int int
        21: bastore
        22: .line 102
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 5 /* i */
            iload 4 /* length */
            if_icmpne 19
        end local 5 // int i
        end local 4 // int length
        end local 3 // org.bouncycastle.asn1.DERBitString bits
        24: .line 106
            goto 29
        25: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.X509CertificateObject.keyUsage:[Z
        end local 2 // byte[] bytes
        26: .line 111
            goto 29
        27: .line 112
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.x509.X509CertificateStructure
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        28: .line 114
            new java.security.cert.CertificateParsingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot construct KeyUsage: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateParsingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Exception e
        29: .line 116
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bouncycastle.asn1.x509.X509CertificateStructure c
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   30     0    this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0   30     1       c  Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            4    6     2   bytes  [B
            8    9     2       e  Ljava/lang/Exception;
           10   26     2   bytes  [B
           12   24     3    bits  Lorg/bouncycastle/asn1/DERBitString;
           14   24     4  length  I
           18   24     5       i  I
           28   29     2       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.Exception
           9    26      27  Class java.lang.Exception
    Exceptions:
      throws java.security.cert.CertificateParsingException
    MethodParameters:
      Name  Flags
      c     

  public void checkValidity();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 121
            aload 0 /* this */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.checkValidity:(Ljava/util/Date;)V
         1: .line 122
            return
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
    Exceptions:
      throws java.security.cert.CertificateExpiredException, java.security.cert.CertificateNotYetValidException

  public void checkValidity(java.util.Date);
    descriptor: (Ljava/util/Date;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // java.util.Date date
         0: .line 128
            aload 1 /* date */
            invokevirtual java.util.Date.getTime:()J
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getNotAfter:()Ljava/util/Date;
            invokevirtual java.util.Date.getTime:()J
            lcmp
            ifle 2
         1: .line 130
            new java.security.cert.CertificateExpiredException
            dup
            new java.lang.StringBuilder
            dup
            ldc "certificate expired on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getEndDate:()Lorg/bouncycastle/asn1/x509/Time;
            invokevirtual org.bouncycastle.asn1.x509.Time.getTime:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateExpiredException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* date */
            invokevirtual java.util.Date.getTime:()J
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getNotBefore:()Ljava/util/Date;
            invokevirtual java.util.Date.getTime:()J
            lcmp
            ifge 4
         3: .line 135
            new java.security.cert.CertificateNotYetValidException
            dup
            new java.lang.StringBuilder
            dup
            ldc "certificate not valid till "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getStartDate:()Lorg/bouncycastle/asn1/x509/Time;
            invokevirtual org.bouncycastle.asn1.x509.Time.getTime:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateNotYetValidException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 137
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Date date
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0    5     1  date  Ljava/util/Date;
    Exceptions:
      throws java.security.cert.CertificateExpiredException, java.security.cert.CertificateNotYetValidException
    MethodParameters:
      Name  Flags
      date  

  public int getVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 141
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getVersion:()I
            ireturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public java.math.BigInteger getSerialNumber();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 146
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSerialNumber:()Lorg/bouncycastle/asn1/DERInteger;
            invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public java.security.Principal getIssuerDN();
    descriptor: ()Ljava/security/Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 151
            new org.bouncycastle.jce.X509Principal
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getIssuer:()Lorg/bouncycastle/asn1/x509/X509Name;
            invokespecial org.bouncycastle.jce.X509Principal.<init>:(Lorg/bouncycastle/asn1/x509/X509Name;)V
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public javax.security.auth.x500.X500Principal getIssuerX500Principal();
    descriptor: ()Ljavax/security/auth/x500/X500Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 158
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 1 /* bOut */
        start local 1 // java.io.ByteArrayOutputStream bOut
         1: .line 159
            new org.bouncycastle.asn1.ASN1OutputStream
            dup
            aload 1 /* bOut */
            invokespecial org.bouncycastle.asn1.ASN1OutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 2 /* aOut */
        start local 2 // org.bouncycastle.asn1.ASN1OutputStream aOut
         2: .line 161
            aload 2 /* aOut */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getIssuer:()Lorg/bouncycastle/asn1/x509/X509Name;
            invokevirtual org.bouncycastle.asn1.ASN1OutputStream.writeObject:(Ljava/lang/Object;)V
         3: .line 163
            new javax.security.auth.x500.X500Principal
            dup
            aload 1 /* bOut */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial javax.security.auth.x500.X500Principal.<init>:([B)V
         4: areturn
        end local 2 // org.bouncycastle.asn1.ASN1OutputStream aOut
        end local 1 // java.io.ByteArrayOutputStream bOut
         5: .line 165
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         6: .line 167
            new java.lang.IllegalStateException
            dup
            ldc "can't encode issuer DN"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            1    5     1  bOut  Ljava/io/ByteArrayOutputStream;
            2    5     2  aOut  Lorg/bouncycastle/asn1/ASN1OutputStream;
      Exception table:
        from    to  target  type
           0     4       5  Class java.io.IOException

  public java.security.Principal getSubjectDN();
    descriptor: ()Ljava/security/Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 173
            new org.bouncycastle.jce.X509Principal
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSubject:()Lorg/bouncycastle/asn1/x509/X509Name;
            invokespecial org.bouncycastle.jce.X509Principal.<init>:(Lorg/bouncycastle/asn1/x509/X509Name;)V
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public javax.security.auth.x500.X500Principal getSubjectX500Principal();
    descriptor: ()Ljavax/security/auth/x500/X500Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 180
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 1 /* bOut */
        start local 1 // java.io.ByteArrayOutputStream bOut
         1: .line 181
            new org.bouncycastle.asn1.ASN1OutputStream
            dup
            aload 1 /* bOut */
            invokespecial org.bouncycastle.asn1.ASN1OutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 2 /* aOut */
        start local 2 // org.bouncycastle.asn1.ASN1OutputStream aOut
         2: .line 183
            aload 2 /* aOut */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSubject:()Lorg/bouncycastle/asn1/x509/X509Name;
            invokevirtual org.bouncycastle.asn1.ASN1OutputStream.writeObject:(Ljava/lang/Object;)V
         3: .line 185
            new javax.security.auth.x500.X500Principal
            dup
            aload 1 /* bOut */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial javax.security.auth.x500.X500Principal.<init>:([B)V
         4: areturn
        end local 2 // org.bouncycastle.asn1.ASN1OutputStream aOut
        end local 1 // java.io.ByteArrayOutputStream bOut
         5: .line 187
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         6: .line 189
            new java.lang.IllegalStateException
            dup
            ldc "can't encode issuer DN"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            1    5     1  bOut  Ljava/io/ByteArrayOutputStream;
            2    5     2  aOut  Lorg/bouncycastle/asn1/ASN1OutputStream;
      Exception table:
        from    to  target  type
           0     4       5  Class java.io.IOException

  public java.util.Date getNotBefore();
    descriptor: ()Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 195
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getStartDate:()Lorg/bouncycastle/asn1/x509/Time;
            invokevirtual org.bouncycastle.asn1.x509.Time.getDate:()Ljava/util/Date;
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public java.util.Date getNotAfter();
    descriptor: ()Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 200
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getEndDate:()Lorg/bouncycastle/asn1/x509/Time;
            invokevirtual org.bouncycastle.asn1.x509.Time.getDate:()Ljava/util/Date;
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public byte[] getTBSCertificate();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 208
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getEncoded:(Ljava/lang/String;)[B
         1: areturn
         2: .line 210
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 212
            new java.security.cert.CertificateEncodingException
            dup
            aload 1 /* e */
            invokevirtual java.io.IOException.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateEncodingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.security.cert.CertificateEncodingException

  public byte[] getSignature();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 218
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSignature:()Lorg/bouncycastle/asn1/DERBitString;
            invokevirtual org.bouncycastle.asn1.DERBitString.getBytes:()[B
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public java.lang.String getSigAlgName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 227
            getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
            invokestatic java.security.Security.getProvider:(Ljava/lang/String;)Ljava/security/Provider;
            astore 1 /* prov */
        start local 1 // java.security.Provider prov
         1: .line 229
            aload 1 /* prov */
            ifnull 5
         2: .line 231
            aload 1 /* prov */
            new java.lang.StringBuilder
            dup
            ldc "Alg.Alias.Signature."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getSigAlgOID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.security.Provider.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* algName */
        start local 2 // java.lang.String algName
         3: .line 233
            aload 2 /* algName */
            ifnull 5
         4: .line 235
            aload 2 /* algName */
            areturn
        end local 2 // java.lang.String algName
         5: .line 239
      StackMap locals: java.security.Provider
      StackMap stack:
            invokestatic java.security.Security.getProviders:()[Ljava/security/Provider;
            astore 2 /* provs */
        start local 2 // java.security.Provider[] provs
         6: .line 244
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 12
         8: .line 246
      StackMap locals: java.security.Provider[] int
      StackMap stack:
            aload 2 /* provs */
            iload 3 /* i */
            aaload
            new java.lang.StringBuilder
            dup
            ldc "Alg.Alias.Signature."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getSigAlgOID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.security.Provider.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* algName */
        start local 4 // java.lang.String algName
         9: .line 247
            aload 4 /* algName */
            ifnull 11
        10: .line 249
            aload 4 /* algName */
            areturn
        end local 4 // java.lang.String algName
        11: .line 244
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            aload 2 /* provs */
            arraylength
            if_icmpne 8
        end local 3 // int i
        13: .line 253
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getSigAlgOID:()Ljava/lang/String;
            areturn
        end local 2 // java.security.Provider[] provs
        end local 1 // java.security.Provider prov
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            1   14     1     prov  Ljava/security/Provider;
            3    5     2  algName  Ljava/lang/String;
            6   14     2    provs  [Ljava/security/Provider;
            7   13     3        i  I
            9   11     4  algName  Ljava/lang/String;

  public java.lang.String getSigAlgOID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 261
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public byte[] getSigAlgParams();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 269
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            ifnull 2
         1: .line 271
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            invokeinterface org.bouncycastle.asn1.DEREncodable.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            invokevirtual org.bouncycastle.asn1.DERObject.getDEREncoded:()[B
            areturn
         2: .line 275
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public boolean[] getIssuerUniqueID();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 281
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getIssuerUniqueId:()Lorg/bouncycastle/asn1/DERBitString;
            astore 1 /* id */
        start local 1 // org.bouncycastle.asn1.DERBitString id
         1: .line 283
            aload 1 /* id */
            ifnull 12
         2: .line 285
            aload 1 /* id */
            invokevirtual org.bouncycastle.asn1.DERBitString.getBytes:()[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         3: .line 286
            aload 2 /* bytes */
            arraylength
            bipush 8
            imul
            aload 1 /* id */
            invokevirtual org.bouncycastle.asn1.DERBitString.getPadBits:()I
            isub
            newarray 4
            astore 3 /* boolId */
        start local 3 // boolean[] boolId
         4: .line 288
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 10
         6: .line 290
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.DERBitString byte[] boolean[] int
      StackMap stack:
            aload 3 /* boolId */
            iload 4 /* i */
            aload 2 /* bytes */
            iload 4 /* i */
            bipush 8
            idiv
            baload
            sipush 128
            iload 4 /* i */
            bipush 8
            irem
            iushr
            iand
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.DERBitString byte[] boolean[] int
      StackMap stack: boolean[] int
         7: iconst_0
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.DERBitString byte[] boolean[] int
      StackMap stack: boolean[] int int
         8: bastore
         9: .line 288
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 3 /* boolId */
            arraylength
            if_icmpne 6
        end local 4 // int i
        11: .line 293
            aload 3 /* boolId */
            areturn
        end local 3 // boolean[] boolId
        end local 2 // byte[] bytes
        12: .line 296
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.bouncycastle.asn1.DERBitString id
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            1   13     1      id  Lorg/bouncycastle/asn1/DERBitString;
            3   12     2   bytes  [B
            4   12     3  boolId  [Z
            5   11     4       i  I

  public boolean[] getSubjectUniqueID();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 301
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getSubjectUniqueId:()Lorg/bouncycastle/asn1/DERBitString;
            astore 1 /* id */
        start local 1 // org.bouncycastle.asn1.DERBitString id
         1: .line 303
            aload 1 /* id */
            ifnull 12
         2: .line 305
            aload 1 /* id */
            invokevirtual org.bouncycastle.asn1.DERBitString.getBytes:()[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         3: .line 306
            aload 2 /* bytes */
            arraylength
            bipush 8
            imul
            aload 1 /* id */
            invokevirtual org.bouncycastle.asn1.DERBitString.getPadBits:()I
            isub
            newarray 4
            astore 3 /* boolId */
        start local 3 // boolean[] boolId
         4: .line 308
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 10
         6: .line 310
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.DERBitString byte[] boolean[] int
      StackMap stack:
            aload 3 /* boolId */
            iload 4 /* i */
            aload 2 /* bytes */
            iload 4 /* i */
            bipush 8
            idiv
            baload
            sipush 128
            iload 4 /* i */
            bipush 8
            irem
            iushr
            iand
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.DERBitString byte[] boolean[] int
      StackMap stack: boolean[] int
         7: iconst_0
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject org.bouncycastle.asn1.DERBitString byte[] boolean[] int
      StackMap stack: boolean[] int int
         8: bastore
         9: .line 308
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 3 /* boolId */
            arraylength
            if_icmpne 6
        end local 4 // int i
        11: .line 313
            aload 3 /* boolId */
            areturn
        end local 3 // boolean[] boolId
        end local 2 // byte[] bytes
        12: .line 316
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.bouncycastle.asn1.DERBitString id
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            1   13     1      id  Lorg/bouncycastle/asn1/DERBitString;
            3   12     2   bytes  [B
            4   12     3  boolId  [Z
            5   11     4       i  I

  public boolean[] getKeyUsage();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 321
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.keyUsage:[Z
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public java.util.List getExtendedKeyUsage();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 327
            aload 0 /* this */
            ldc "2.5.29.37"
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getExtensionBytes:(Ljava/lang/String;)[B
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         1: .line 329
            aload 1 /* bytes */
            ifnull 14
         2: .line 333
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 1 /* bytes */
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
            astore 2 /* dIn */
        start local 2 // org.bouncycastle.asn1.ASN1InputStream dIn
         3: .line 334
            aload 2 /* dIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 3 /* seq */
        start local 3 // org.bouncycastle.asn1.ASN1Sequence seq
         4: .line 335
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* list */
        start local 4 // java.util.List list
         5: .line 337
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 9
         7: .line 339
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject byte[] org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence java.util.List int
      StackMap stack:
            aload 4 /* list */
            aload 3 /* seq */
            iload 5 /* i */
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 337
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 3 /* seq */
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.size:()I
            if_icmpne 7
        end local 5 // int i
        10: .line 342
            aload 4 /* list */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
        11: areturn
        end local 4 // java.util.List list
        end local 3 // org.bouncycastle.asn1.ASN1Sequence seq
        end local 2 // org.bouncycastle.asn1.ASN1InputStream dIn
        12: .line 344
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject byte[]
      StackMap stack: java.lang.Exception
            pop
        13: .line 346
            new java.security.cert.CertificateParsingException
            dup
            ldc "error processing extended key usage extension"
            invokespecial java.security.cert.CertificateParsingException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 350
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // byte[] bytes
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            1   15     1  bytes  [B
            3   12     2    dIn  Lorg/bouncycastle/asn1/ASN1InputStream;
            4   12     3    seq  Lorg/bouncycastle/asn1/ASN1Sequence;
            5   12     4   list  Ljava/util/List;
            6   10     5      i  I
      Exception table:
        from    to  target  type
           2    11      12  Class java.lang.Exception
    Exceptions:
      throws java.security.cert.CertificateParsingException

  public int getBasicConstraints();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 355
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.basicConstraints:Lorg/bouncycastle/asn1/x509/BasicConstraints;
            ifnull 6
         1: .line 357
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.basicConstraints:Lorg/bouncycastle/asn1/x509/BasicConstraints;
            invokevirtual org.bouncycastle.asn1.x509.BasicConstraints.isCA:()Z
            ifeq 5
         2: .line 359
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.basicConstraints:Lorg/bouncycastle/asn1/x509/BasicConstraints;
            invokevirtual org.bouncycastle.asn1.x509.BasicConstraints.getPathLenConstraint:()Ljava/math/BigInteger;
            ifnonnull 4
         3: .line 361
            ldc 2147483647
            ireturn
         4: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.basicConstraints:Lorg/bouncycastle/asn1/x509/BasicConstraints;
            invokevirtual org.bouncycastle.asn1.x509.BasicConstraints.getPathLenConstraint:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            ireturn
         5: .line 370
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
         6: .line 374
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public java.util.Set getCriticalExtensionOIDs();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 379
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getVersion:()I
            iconst_3
            if_icmpne 12
         1: .line 381
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* set */
        start local 1 // java.util.Set set
         2: .line 382
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getExtensions:()Lorg/bouncycastle/asn1/x509/X509Extensions;
            astore 2 /* extensions */
        start local 2 // org.bouncycastle.asn1.x509.X509Extensions extensions
         3: .line 384
            aload 2 /* extensions */
            ifnull 12
         4: .line 386
            aload 2 /* extensions */
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.oids:()Ljava/util/Enumeration;
            astore 3 /* e */
        start local 3 // java.util.Enumeration e
         5: .line 388
            goto 10
         6: .line 390
      StackMap locals: java.util.Set org.bouncycastle.asn1.x509.X509Extensions java.util.Enumeration
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 4 /* oid */
        start local 4 // org.bouncycastle.asn1.DERObjectIdentifier oid
         7: .line 391
            aload 2 /* extensions */
            aload 4 /* oid */
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.getExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/x509/X509Extension;
            astore 5 /* ext */
        start local 5 // org.bouncycastle.asn1.x509.X509Extension ext
         8: .line 393
            aload 5 /* ext */
            invokevirtual org.bouncycastle.asn1.x509.X509Extension.isCritical:()Z
            ifeq 10
         9: .line 395
            aload 1 /* set */
            aload 4 /* oid */
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.bouncycastle.asn1.x509.X509Extension ext
        end local 4 // org.bouncycastle.asn1.DERObjectIdentifier oid
        10: .line 388
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 6
        11: .line 399
            aload 1 /* set */
            areturn
        end local 3 // java.util.Enumeration e
        end local 2 // org.bouncycastle.asn1.x509.X509Extensions extensions
        end local 1 // java.util.Set set
        12: .line 403
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            2   12     1         set  Ljava/util/Set;
            3   12     2  extensions  Lorg/bouncycastle/asn1/x509/X509Extensions;
            5   12     3           e  Ljava/util/Enumeration;
            7   10     4         oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
            8   10     5         ext  Lorg/bouncycastle/asn1/x509/X509Extension;

  private byte[] getExtensionBytes(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // java.lang.String oid
         0: .line 408
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getExtensions:()Lorg/bouncycastle/asn1/x509/X509Extensions;
            astore 2 /* exts */
        start local 2 // org.bouncycastle.asn1.x509.X509Extensions exts
         1: .line 410
            aload 2 /* exts */
            ifnull 5
         2: .line 412
            aload 2 /* exts */
            new org.bouncycastle.asn1.DERObjectIdentifier
            dup
            aload 1 /* oid */
            invokespecial org.bouncycastle.asn1.DERObjectIdentifier.<init>:(Ljava/lang/String;)V
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.getExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/x509/X509Extension;
            astore 3 /* ext */
        start local 3 // org.bouncycastle.asn1.x509.X509Extension ext
         3: .line 413
            aload 3 /* ext */
            ifnull 5
         4: .line 415
            aload 3 /* ext */
            invokevirtual org.bouncycastle.asn1.x509.X509Extension.getValue:()Lorg/bouncycastle/asn1/ASN1OctetString;
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            areturn
        end local 3 // org.bouncycastle.asn1.x509.X509Extension ext
         5: .line 419
      StackMap locals: org.bouncycastle.asn1.x509.X509Extensions
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.bouncycastle.asn1.x509.X509Extensions exts
        end local 1 // java.lang.String oid
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0    6     1   oid  Ljava/lang/String;
            1    6     2  exts  Lorg/bouncycastle/asn1/x509/X509Extensions;
            3    5     3   ext  Lorg/bouncycastle/asn1/x509/X509Extension;
    MethodParameters:
      Name  Flags
      oid   

  public byte[] getExtensionValue(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // java.lang.String oid
         0: .line 424
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getExtensions:()Lorg/bouncycastle/asn1/x509/X509Extensions;
            astore 2 /* exts */
        start local 2 // org.bouncycastle.asn1.x509.X509Extensions exts
         1: .line 426
            aload 2 /* exts */
            ifnull 8
         2: .line 428
            aload 2 /* exts */
            new org.bouncycastle.asn1.DERObjectIdentifier
            dup
            aload 1 /* oid */
            invokespecial org.bouncycastle.asn1.DERObjectIdentifier.<init>:(Ljava/lang/String;)V
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.getExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/x509/X509Extension;
            astore 3 /* ext */
        start local 3 // org.bouncycastle.asn1.x509.X509Extension ext
         3: .line 430
            aload 3 /* ext */
            ifnull 8
         4: .line 434
            aload 3 /* ext */
            invokevirtual org.bouncycastle.asn1.x509.X509Extension.getValue:()Lorg/bouncycastle/asn1/ASN1OctetString;
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getEncoded:()[B
         5: areturn
         6: .line 436
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject java.lang.String org.bouncycastle.asn1.x509.X509Extensions org.bouncycastle.asn1.x509.X509Extension
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         7: .line 438
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "error parsing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // org.bouncycastle.asn1.x509.X509Extension ext
         8: .line 443
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.bouncycastle.asn1.x509.X509Extensions exts
        end local 1 // java.lang.String oid
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0    9     1   oid  Ljava/lang/String;
            1    9     2  exts  Lorg/bouncycastle/asn1/x509/X509Extensions;
            3    8     3   ext  Lorg/bouncycastle/asn1/x509/X509Extension;
            7    8     4     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      oid   

  public java.util.Set getNonCriticalExtensionOIDs();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 448
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getVersion:()I
            iconst_3
            if_icmpne 12
         1: .line 450
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* set */
        start local 1 // java.util.Set set
         2: .line 451
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getExtensions:()Lorg/bouncycastle/asn1/x509/X509Extensions;
            astore 2 /* extensions */
        start local 2 // org.bouncycastle.asn1.x509.X509Extensions extensions
         3: .line 453
            aload 2 /* extensions */
            ifnull 12
         4: .line 455
            aload 2 /* extensions */
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.oids:()Ljava/util/Enumeration;
            astore 3 /* e */
        start local 3 // java.util.Enumeration e
         5: .line 457
            goto 10
         6: .line 459
      StackMap locals: java.util.Set org.bouncycastle.asn1.x509.X509Extensions java.util.Enumeration
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 4 /* oid */
        start local 4 // org.bouncycastle.asn1.DERObjectIdentifier oid
         7: .line 460
            aload 2 /* extensions */
            aload 4 /* oid */
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.getExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/x509/X509Extension;
            astore 5 /* ext */
        start local 5 // org.bouncycastle.asn1.x509.X509Extension ext
         8: .line 462
            aload 5 /* ext */
            invokevirtual org.bouncycastle.asn1.x509.X509Extension.isCritical:()Z
            ifne 10
         9: .line 464
            aload 1 /* set */
            aload 4 /* oid */
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.bouncycastle.asn1.x509.X509Extension ext
        end local 4 // org.bouncycastle.asn1.DERObjectIdentifier oid
        10: .line 457
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 6
        11: .line 468
            aload 1 /* set */
            areturn
        end local 3 // java.util.Enumeration e
        end local 2 // org.bouncycastle.asn1.x509.X509Extensions extensions
        end local 1 // java.util.Set set
        12: .line 472
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            2   12     1         set  Ljava/util/Set;
            3   12     2  extensions  Lorg/bouncycastle/asn1/x509/X509Extensions;
            5   12     3           e  Ljava/util/Enumeration;
            7   10     4         oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
            8   10     5         ext  Lorg/bouncycastle/asn1/x509/X509Extension;

  public boolean hasUnsupportedCriticalExtension();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 477
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getVersion:()I
            iconst_3
            if_icmpne 23
         1: .line 479
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getExtensions:()Lorg/bouncycastle/asn1/x509/X509Extensions;
            astore 1 /* extensions */
        start local 1 // org.bouncycastle.asn1.x509.X509Extensions extensions
         2: .line 481
            aload 1 /* extensions */
            ifnull 23
         3: .line 483
            aload 1 /* extensions */
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.oids:()Ljava/util/Enumeration;
            astore 2 /* e */
        start local 2 // java.util.Enumeration e
         4: .line 485
            goto 22
         5: .line 487
      StackMap locals: org.bouncycastle.asn1.x509.X509Extensions java.util.Enumeration
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 3 /* oid */
        start local 3 // org.bouncycastle.asn1.DERObjectIdentifier oid
         6: .line 488
            aload 3 /* oid */
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            astore 4 /* oidId */
        start local 4 // java.lang.String oidId
         7: .line 490
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.KEY_USAGE:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
         8: .line 491
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.CERTIFICATE_POLICIES:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
         9: .line 492
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.POLICY_MAPPINGS:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        10: .line 493
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.INHIBIT_ANY_POLICY:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        11: .line 494
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.CRL_DISTRIBUTION_POINTS:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        12: .line 495
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.ISSUING_DISTRIBUTION_POINT:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        13: .line 496
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.DELTA_CRL_INDICATOR:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        14: .line 497
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.POLICY_CONSTRAINTS:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        15: .line 498
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.BASIC_CONSTRAINTS:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        16: .line 499
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.SUBJECT_ALTERNATIVE_NAME:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        17: .line 500
            aload 4 /* oidId */
            getstatic org.bouncycastle.jce.provider.RFC3280CertPathUtilities.NAME_CONSTRAINTS:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 502
            goto 22
        19: .line 505
      StackMap locals: org.bouncycastle.asn1.DERObjectIdentifier java.lang.String
      StackMap stack:
            aload 1 /* extensions */
            aload 3 /* oid */
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.getExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/x509/X509Extension;
            astore 5 /* ext */
        start local 5 // org.bouncycastle.asn1.x509.X509Extension ext
        20: .line 507
            aload 5 /* ext */
            invokevirtual org.bouncycastle.asn1.x509.X509Extension.isCritical:()Z
            ifeq 22
        21: .line 509
            iconst_1
            ireturn
        end local 5 // org.bouncycastle.asn1.x509.X509Extension ext
        end local 4 // java.lang.String oidId
        end local 3 // org.bouncycastle.asn1.DERObjectIdentifier oid
        22: .line 485
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 5
        end local 2 // java.util.Enumeration e
        end local 1 // org.bouncycastle.asn1.x509.X509Extensions extensions
        23: .line 515
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            2   23     1  extensions  Lorg/bouncycastle/asn1/x509/X509Extensions;
            4   23     2           e  Ljava/util/Enumeration;
            6   22     3         oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
            7   22     4       oidId  Ljava/lang/String;
           20   22     5         ext  Lorg/bouncycastle/asn1/x509/X509Extension;

  public java.security.PublicKey getPublicKey();
    descriptor: ()Ljava/security/PublicKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 520
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSubjectPublicKeyInfo:()Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            invokestatic org.bouncycastle.jce.provider.JDKKeyFactory.createPublicKeyFromPublicKeyInfo:(Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Ljava/security/PublicKey;
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public byte[] getEncoded();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 528
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getEncoded:(Ljava/lang/String;)[B
         1: areturn
         2: .line 530
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 532
            new java.security.cert.CertificateEncodingException
            dup
            aload 1 /* e */
            invokevirtual java.io.IOException.toString:()Ljava/lang/String;
            invokespecial java.security.cert.CertificateEncodingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.security.cert.CertificateEncodingException

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // java.lang.Object o
         0: .line 539
            aload 1 /* o */
            aload 0 /* this */
            if_acmpne 2
         1: .line 541
            iconst_1
            ireturn
         2: .line 544
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof java.security.cert.Certificate
            ifne 4
         3: .line 546
            iconst_0
            ireturn
         4: .line 549
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast java.security.cert.Certificate
            astore 2 /* other */
        start local 2 // java.security.cert.Certificate other
         5: .line 553
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getEncoded:()[B
            astore 3 /* b1 */
        start local 3 // byte[] b1
         6: .line 554
            aload 2 /* other */
            invokevirtual java.security.cert.Certificate.getEncoded:()[B
            astore 4 /* b2 */
        start local 4 // byte[] b2
         7: .line 556
            aload 3 /* b1 */
            aload 4 /* b2 */
            invokestatic org.bouncycastle.util.Arrays.areEqual:([B[B)Z
         8: ireturn
        end local 4 // byte[] b2
        end local 3 // byte[] b1
         9: .line 558
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject java.lang.Object java.security.cert.Certificate
      StackMap stack: java.security.cert.CertificateEncodingException
            pop
        10: .line 560
            iconst_0
            ireturn
        end local 2 // java.security.cert.Certificate other
        end local 1 // java.lang.Object o
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0   11     1      o  Ljava/lang/Object;
            5   11     2  other  Ljava/security/cert/Certificate;
            6    9     3     b1  [B
            7    9     4     b2  [B
      Exception table:
        from    to  target  type
           5     8       9  Class java.security.cert.CertificateEncodingException
    MethodParameters:
      Name  Flags
      o     

  public synchronized int hashCode();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 566
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.hashValueSet:Z
            ifne 3
         1: .line 568
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.calculateHashCode:()I
            putfield org.bouncycastle.jce.provider.X509CertificateObject.hashValue:I
         2: .line 569
            aload 0 /* this */
            iconst_1
            putfield org.bouncycastle.jce.provider.X509CertificateObject.hashValueSet:Z
         3: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.hashValue:I
            ireturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  private int calculateHashCode();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 579
            iconst_0
            istore 1 /* hashCode */
        start local 1 // int hashCode
         1: .line 580
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getEncoded:()[B
            astore 2 /* certData */
        start local 2 // byte[] certData
         2: .line 581
            iconst_1
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 583
      StackMap locals: int byte[] int
      StackMap stack:
            iload 1 /* hashCode */
            aload 2 /* certData */
            iload 3 /* i */
            baload
            iload 3 /* i */
            imul
            iadd
            istore 1 /* hashCode */
         5: .line 581
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* certData */
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 585
            iload 1 /* hashCode */
         8: ireturn
        end local 2 // byte[] certData
        end local 1 // int hashCode
         9: .line 587
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject
      StackMap stack: java.security.cert.CertificateEncodingException
            pop
        10: .line 589
            iconst_0
            ireturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            1    9     1  hashCode  I
            2    9     2  certData  [B
            3    7     3         i  I
      Exception table:
        from    to  target  type
           0     8       9  Class java.security.cert.CertificateEncodingException

  public void setBagAttribute(org.bouncycastle.asn1.DERObjectIdentifier, org.bouncycastle.asn1.DEREncodable);
    descriptor: (Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // org.bouncycastle.asn1.DERObjectIdentifier oid
        start local 2 // org.bouncycastle.asn1.DEREncodable attribute
         0: .line 597
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.attrCarrier:Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
            aload 1 /* oid */
            aload 2 /* attribute */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
         1: .line 598
            return
        end local 2 // org.bouncycastle.asn1.DEREncodable attribute
        end local 1 // org.bouncycastle.asn1.DERObjectIdentifier oid
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0    2     1        oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
            0    2     2  attribute  Lorg/bouncycastle/asn1/DEREncodable;
    MethodParameters:
           Name  Flags
      oid        
      attribute  

  public org.bouncycastle.asn1.DEREncodable getBagAttribute(org.bouncycastle.asn1.DERObjectIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // org.bouncycastle.asn1.DERObjectIdentifier oid
         0: .line 603
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.attrCarrier:Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
            aload 1 /* oid */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            areturn
        end local 1 // org.bouncycastle.asn1.DERObjectIdentifier oid
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0    1     1   oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
    MethodParameters:
      Name  Flags
      oid   

  public java.util.Enumeration getBagAttributeKeys();
    descriptor: ()Ljava/util/Enumeration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 608
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.attrCarrier:Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttributeKeys:()Ljava/util/Enumeration;
            areturn
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=1
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
         0: .line 613
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuffer buf
         1: .line 614
            ldc "line.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* nl */
        start local 2 // java.lang.String nl
         2: .line 616
            aload 1 /* buf */
            ldc "  [0]         Version: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getVersion:()I
            invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         3: .line 617
            aload 1 /* buf */
            ldc "         SerialNumber: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getSerialNumber:()Ljava/math/BigInteger;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         4: .line 618
            aload 1 /* buf */
            ldc "             IssuerDN: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getIssuerDN:()Ljava/security/Principal;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 619
            aload 1 /* buf */
            ldc "           Start Date: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getNotBefore:()Ljava/util/Date;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         6: .line 620
            aload 1 /* buf */
            ldc "           Final Date: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getNotAfter:()Ljava/util/Date;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         7: .line 621
            aload 1 /* buf */
            ldc "            SubjectDN: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getSubjectDN:()Ljava/security/Principal;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         8: .line 622
            aload 1 /* buf */
            ldc "           Public Key: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         9: .line 623
            aload 1 /* buf */
            ldc "  Signature Algorithm: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getSigAlgName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        10: .line 625
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getSignature:()[B
            astore 3 /* sig */
        start local 3 // byte[] sig
        11: .line 627
            aload 1 /* buf */
            ldc "            Signature: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            new java.lang.String
            dup
            aload 3 /* sig */
            iconst_0
            bipush 20
            invokestatic org.bouncycastle.util.encoders.Hex.encode:([BII)[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        12: .line 628
            bipush 20
            istore 4 /* i */
        start local 4 // int i
        13: goto 19
        14: .line 630
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject java.lang.StringBuffer java.lang.String byte[] int
      StackMap stack:
            iload 4 /* i */
            aload 3 /* sig */
            arraylength
            bipush 20
            isub
            if_icmpge 17
        15: .line 632
            aload 1 /* buf */
            ldc "                       "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            new java.lang.String
            dup
            aload 3 /* sig */
            iload 4 /* i */
            bipush 20
            invokestatic org.bouncycastle.util.encoders.Hex.encode:([BII)[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        16: .line 633
            goto 18
        17: .line 636
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            ldc "                       "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            new java.lang.String
            dup
            aload 3 /* sig */
            iload 4 /* i */
            aload 3 /* sig */
            arraylength
            iload 4 /* i */
            isub
            invokestatic org.bouncycastle.util.encoders.Hex.encode:([BII)[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        18: .line 628
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 20
      StackMap locals:
      StackMap stack:
        19: iload 4 /* i */
            aload 3 /* sig */
            arraylength
            if_icmplt 14
        end local 4 // int i
        20: .line 640
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getExtensions:()Lorg/bouncycastle/asn1/x509/X509Extensions;
            astore 4 /* extensions */
        start local 4 // org.bouncycastle.asn1.x509.X509Extensions extensions
        21: .line 642
            aload 4 /* extensions */
            ifnull 56
        22: .line 644
            aload 4 /* extensions */
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.oids:()Ljava/util/Enumeration;
            astore 5 /* e */
        start local 5 // java.util.Enumeration e
        23: .line 646
            aload 5 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifeq 55
        24: .line 648
            aload 1 /* buf */
            ldc "       Extensions: \n"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        25: .line 651
            goto 55
        26: .line 653
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject java.lang.StringBuffer java.lang.String byte[] org.bouncycastle.asn1.x509.X509Extensions java.util.Enumeration
      StackMap stack:
            aload 5 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 6 /* oid */
        start local 6 // org.bouncycastle.asn1.DERObjectIdentifier oid
        27: .line 654
            aload 4 /* extensions */
            aload 6 /* oid */
            invokevirtual org.bouncycastle.asn1.x509.X509Extensions.getExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/x509/X509Extension;
            astore 7 /* ext */
        start local 7 // org.bouncycastle.asn1.x509.X509Extension ext
        28: .line 656
            aload 7 /* ext */
            invokevirtual org.bouncycastle.asn1.x509.X509Extension.getValue:()Lorg/bouncycastle/asn1/ASN1OctetString;
            ifnull 54
        29: .line 658
            aload 7 /* ext */
            invokevirtual org.bouncycastle.asn1.x509.X509Extension.getValue:()Lorg/bouncycastle/asn1/ASN1OctetString;
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            astore 8 /* octs */
        start local 8 // byte[] octs
        30: .line 659
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 8 /* octs */
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
            astore 9 /* dIn */
        start local 9 // org.bouncycastle.asn1.ASN1InputStream dIn
        31: .line 660
            aload 1 /* buf */
            ldc "                       critical("
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 7 /* ext */
            invokevirtual org.bouncycastle.asn1.x509.X509Extension.isCritical:()Z
            invokevirtual java.lang.StringBuffer.append:(Z)Ljava/lang/StringBuffer;
            ldc ") "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        32: .line 663
            aload 6 /* oid */
            getstatic org.bouncycastle.asn1.x509.X509Extensions.BasicConstraints:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 35
        33: .line 665
            aload 1 /* buf */
            new org.bouncycastle.asn1.x509.BasicConstraints
            dup
            aload 9 /* dIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.x509.BasicConstraints.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        34: .line 666
            goto 55
        35: .line 667
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject java.lang.StringBuffer java.lang.String byte[] org.bouncycastle.asn1.x509.X509Extensions java.util.Enumeration org.bouncycastle.asn1.DERObjectIdentifier org.bouncycastle.asn1.x509.X509Extension byte[] org.bouncycastle.asn1.ASN1InputStream
      StackMap stack:
            aload 6 /* oid */
            getstatic org.bouncycastle.asn1.x509.X509Extensions.KeyUsage:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 38
        36: .line 669
            aload 1 /* buf */
            new org.bouncycastle.asn1.x509.KeyUsage
            dup
            aload 9 /* dIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.DERBitString
            invokespecial org.bouncycastle.asn1.x509.KeyUsage.<init>:(Lorg/bouncycastle/asn1/DERBitString;)V
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        37: .line 670
            goto 55
        38: .line 671
      StackMap locals:
      StackMap stack:
            aload 6 /* oid */
            getstatic org.bouncycastle.asn1.misc.MiscObjectIdentifiers.netscapeCertType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 41
        39: .line 673
            aload 1 /* buf */
            new org.bouncycastle.asn1.misc.NetscapeCertType
            dup
            aload 9 /* dIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.DERBitString
            invokespecial org.bouncycastle.asn1.misc.NetscapeCertType.<init>:(Lorg/bouncycastle/asn1/DERBitString;)V
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        40: .line 674
            goto 55
        41: .line 675
      StackMap locals:
      StackMap stack:
            aload 6 /* oid */
            getstatic org.bouncycastle.asn1.misc.MiscObjectIdentifiers.netscapeRevocationURL:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 44
        42: .line 677
            aload 1 /* buf */
            new org.bouncycastle.asn1.misc.NetscapeRevocationURL
            dup
            aload 9 /* dIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.DERIA5String
            invokespecial org.bouncycastle.asn1.misc.NetscapeRevocationURL.<init>:(Lorg/bouncycastle/asn1/DERIA5String;)V
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        43: .line 678
            goto 55
        44: .line 679
      StackMap locals:
      StackMap stack:
            aload 6 /* oid */
            getstatic org.bouncycastle.asn1.misc.MiscObjectIdentifiers.verisignCzagExtension:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 47
        45: .line 681
            aload 1 /* buf */
            new org.bouncycastle.asn1.misc.VerisignCzagExtension
            dup
            aload 9 /* dIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.DERIA5String
            invokespecial org.bouncycastle.asn1.misc.VerisignCzagExtension.<init>:(Lorg/bouncycastle/asn1/DERIA5String;)V
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        46: .line 682
            goto 55
        47: .line 685
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 6 /* oid */
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        48: .line 686
            aload 1 /* buf */
            ldc " value = "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 9 /* dIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            invokestatic org.bouncycastle.asn1.util.ASN1Dump.dumpAsString:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        49: .line 689
            goto 55
        50: .line 690
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        51: .line 692
            aload 1 /* buf */
            aload 6 /* oid */
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        52: .line 694
            aload 1 /* buf */
            ldc " value = "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            ldc "*****"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 9 // org.bouncycastle.asn1.ASN1InputStream dIn
        end local 8 // byte[] octs
        53: .line 696
            goto 55
        54: .line 699
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 2 /* nl */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 7 // org.bouncycastle.asn1.x509.X509Extension ext
        end local 6 // org.bouncycastle.asn1.DERObjectIdentifier oid
        55: .line 651
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 26
        end local 5 // java.util.Enumeration e
        56: .line 704
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 4 // org.bouncycastle.asn1.x509.X509Extensions extensions
        end local 3 // byte[] sig
        end local 2 // java.lang.String nl
        end local 1 // java.lang.StringBuffer buf
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   57     0        this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            1   57     1         buf  Ljava/lang/StringBuffer;
            2   57     2          nl  Ljava/lang/String;
           11   57     3         sig  [B
           13   20     4           i  I
           21   57     4  extensions  Lorg/bouncycastle/asn1/x509/X509Extensions;
           23   56     5           e  Ljava/util/Enumeration;
           27   55     6         oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
           28   55     7         ext  Lorg/bouncycastle/asn1/x509/X509Extension;
           30   53     8        octs  [B
           31   53     9         dIn  Lorg/bouncycastle/asn1/ASN1InputStream;
      Exception table:
        from    to  target  type
          32    49      50  Class java.lang.Exception

  public final void verify(java.security.PublicKey);
    descriptor: (Ljava/security/PublicKey;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // java.security.PublicKey key
         0: .line 713
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokestatic org.bouncycastle.jce.provider.X509SignatureUtil.getSignatureName:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Ljava/lang/String;
            astore 3 /* sigName */
        start local 3 // java.lang.String sigName
         1: .line 717
            aload 3 /* sigName */
            getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Signature;
            astore 2 /* signature */
        start local 2 // java.security.Signature signature
         2: .line 718
            goto 5
        end local 2 // java.security.Signature signature
         3: .line 719
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject java.security.PublicKey top java.lang.String
      StackMap stack: java.lang.Exception
            pop
         4: .line 721
            aload 3 /* sigName */
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
            astore 2 /* signature */
        start local 2 // java.security.Signature signature
         5: .line 724
      StackMap locals: org.bouncycastle.jce.provider.X509CertificateObject java.security.PublicKey java.security.Signature java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* signature */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.checkSignature:(Ljava/security/PublicKey;Ljava/security/Signature;)V
         6: .line 725
            return
        end local 3 // java.lang.String sigName
        end local 2 // java.security.Signature signature
        end local 1 // java.security.PublicKey key
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0    7     1        key  Ljava/security/PublicKey;
            2    3     2  signature  Ljava/security/Signature;
            5    7     2  signature  Ljava/security/Signature;
            1    7     3    sigName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception
    Exceptions:
      throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    MethodParameters:
      Name  Flags
      key   

  public final void verify(java.security.PublicKey, java.lang.String);
    descriptor: (Ljava/security/PublicKey;Ljava/lang/String;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // java.security.PublicKey key
        start local 2 // java.lang.String sigProvider
         0: .line 733
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokestatic org.bouncycastle.jce.provider.X509SignatureUtil.getSignatureName:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Ljava/lang/String;
            astore 3 /* sigName */
        start local 3 // java.lang.String sigName
         1: .line 734
            aload 3 /* sigName */
            aload 2 /* sigProvider */
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Signature;
            astore 4 /* signature */
        start local 4 // java.security.Signature signature
         2: .line 736
            aload 0 /* this */
            aload 1 /* key */
            aload 4 /* signature */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.checkSignature:(Ljava/security/PublicKey;Ljava/security/Signature;)V
         3: .line 737
            return
        end local 4 // java.security.Signature signature
        end local 3 // java.lang.String sigName
        end local 2 // java.lang.String sigProvider
        end local 1 // java.security.PublicKey key
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0    4     1          key  Ljava/security/PublicKey;
            0    4     2  sigProvider  Ljava/lang/String;
            1    4     3      sigName  Ljava/lang/String;
            2    4     4    signature  Ljava/security/Signature;
    Exceptions:
      throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    MethodParameters:
             Name  Flags
      key          
      sigProvider  

  private void checkSignature(java.security.PublicKey, java.security.Signature);
    descriptor: (Ljava/security/PublicKey;Ljava/security/Signature;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // java.security.PublicKey key
        start local 2 // java.security.Signature signature
         0: .line 745
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificateStructure.getSignature:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.isAlgIdEqual:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Z
            ifne 2
         1: .line 747
            new java.security.cert.CertificateException
            dup
            ldc "signature algorithm in TBS cert not same as outer cert"
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 750
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.X509CertificateObject.c:Lorg/bouncycastle/asn1/x509/X509CertificateStructure;
            invokevirtual org.bouncycastle.asn1.x509.X509CertificateStructure.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            astore 3 /* params */
        start local 3 // org.bouncycastle.asn1.DEREncodable params
         3: .line 753
            aload 2 /* signature */
            aload 3 /* params */
            invokestatic org.bouncycastle.jce.provider.X509SignatureUtil.setSignatureParameters:(Ljava/security/Signature;Lorg/bouncycastle/asn1/DEREncodable;)V
         4: .line 755
            aload 2 /* signature */
            aload 1 /* key */
            invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
         5: .line 757
            aload 2 /* signature */
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getTBSCertificate:()[B
            invokevirtual java.security.Signature.update:([B)V
         6: .line 759
            aload 2 /* signature */
            aload 0 /* this */
            invokevirtual org.bouncycastle.jce.provider.X509CertificateObject.getSignature:()[B
            invokevirtual java.security.Signature.verify:([B)Z
            ifne 8
         7: .line 761
            new java.security.InvalidKeyException
            dup
            ldc "Public key presented not for certificate signature"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 763
      StackMap locals: org.bouncycastle.asn1.DEREncodable
      StackMap stack:
            return
        end local 3 // org.bouncycastle.asn1.DEREncodable params
        end local 2 // java.security.Signature signature
        end local 1 // java.security.PublicKey key
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0    9     1        key  Ljava/security/PublicKey;
            0    9     2  signature  Ljava/security/Signature;
            3    9     3     params  Lorg/bouncycastle/asn1/DEREncodable;
    Exceptions:
      throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.SignatureException, java.security.InvalidKeyException
    MethodParameters:
           Name  Flags
      key        
      signature  

  private boolean isAlgIdEqual(org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.asn1.x509.AlgorithmIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
        start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier id1
        start local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier id2
         0: .line 767
            aload 1 /* id1 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            aload 2 /* id2 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 769
            iconst_0
            ireturn
         2: .line 772
      StackMap locals:
      StackMap stack:
            aload 1 /* id1 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            ifnonnull 6
         3: .line 774
            aload 2 /* id2 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            ifnull 5
            aload 2 /* id2 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 776
            iconst_0
            ireturn
         5: .line 779
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 782
      StackMap locals:
      StackMap stack:
            aload 2 /* id2 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            ifnonnull 10
         7: .line 784
            aload 1 /* id1 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            ifnull 9
            aload 1 /* id1 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 786
            iconst_0
            ireturn
         9: .line 789
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        10: .line 792
      StackMap locals:
      StackMap stack:
            aload 1 /* id1 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            aload 2 /* id2 */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier id2
        end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier id1
        end local 0 // org.bouncycastle.jce.provider.X509CertificateObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/bouncycastle/jce/provider/X509CertificateObject;
            0   11     1   id1  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0   11     2   id2  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    MethodParameters:
      Name  Flags
      id1   
      id2   
}
SourceFile: "X509CertificateObject.java"