public class org.bouncycastle.cert.X509CertificateHolder implements org.bouncycastle.util.Encodable, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.cert.X509CertificateHolder
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 20170722001

  private transient org.bouncycastle.asn1.x509.Certificate x509Certificate;
    descriptor: Lorg/bouncycastle/asn1/x509/Certificate;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.bouncycastle.asn1.x509.Extensions extensions;
    descriptor: Lorg/bouncycastle/asn1/x509/Extensions;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private static org.bouncycastle.asn1.x509.Certificate parseBytes(byte[]);
    descriptor: ([B)Lorg/bouncycastle/asn1/x509/Certificate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // byte[] certEncoding
         0: .line 42
            aload 0 /* certEncoding */
            invokestatic org.bouncycastle.cert.CertUtils.parseNonEmptyASN1:([B)Lorg/bouncycastle/asn1/ASN1Primitive;
            invokestatic org.bouncycastle.asn1.x509.Certificate.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/Certificate;
         1: areturn
         2: .line 44
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            astore 1 /* e */
        start local 1 // java.lang.ClassCastException e
         3: .line 46
            new org.bouncycastle.cert.CertIOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "malformed data: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.ClassCastException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial org.bouncycastle.cert.CertIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.ClassCastException e
         4: .line 48
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 1 /* e */
        start local 1 // java.lang.IllegalArgumentException e
         5: .line 50
            new org.bouncycastle.cert.CertIOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "malformed data: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial org.bouncycastle.cert.CertIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.IllegalArgumentException e
        end local 0 // byte[] certEncoding
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0  certEncoding  [B
            3    4     1             e  Ljava/lang/ClassCastException;
            5    6     1             e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassCastException
           0     1       4  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      certEncoding  

  public void <init>(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
        start local 1 // byte[] certEncoding
         0: .line 63
            aload 0 /* this */
            aload 1 /* certEncoding */
            invokestatic org.bouncycastle.cert.X509CertificateHolder.parseBytes:([B)Lorg/bouncycastle/asn1/x509/Certificate;
            invokespecial org.bouncycastle.cert.X509CertificateHolder.<init>:(Lorg/bouncycastle/asn1/x509/Certificate;)V
         1: .line 64
            return
        end local 1 // byte[] certEncoding
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/bouncycastle/cert/X509CertificateHolder;
            0    2     1  certEncoding  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      certEncoding  

  public void <init>(org.bouncycastle.asn1.x509.Certificate);
    descriptor: (Lorg/bouncycastle/asn1/x509/Certificate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
        start local 1 // org.bouncycastle.asn1.x509.Certificate x509Certificate
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 73
            aload 0 /* this */
            aload 1 /* x509Certificate */
            invokevirtual org.bouncycastle.cert.X509CertificateHolder.init:(Lorg/bouncycastle/asn1/x509/Certificate;)V
         2: .line 74
            return
        end local 1 // org.bouncycastle.asn1.x509.Certificate x509Certificate
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/bouncycastle/cert/X509CertificateHolder;
            0    3     1  x509Certificate  Lorg/bouncycastle/asn1/x509/Certificate;
    MethodParameters:
                 Name  Flags
      x509Certificate  

  private void init(org.bouncycastle.asn1.x509.Certificate);
    descriptor: (Lorg/bouncycastle/asn1/x509/Certificate;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
        start local 1 // org.bouncycastle.asn1.x509.Certificate x509Certificate
         0: .line 78
            aload 0 /* this */
            aload 1 /* x509Certificate */
            putfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
         1: .line 79
            aload 0 /* this */
            aload 1 /* x509Certificate */
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificate;
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificate.getExtensions:()Lorg/bouncycastle/asn1/x509/Extensions;
            putfield org.bouncycastle.cert.X509CertificateHolder.extensions:Lorg/bouncycastle/asn1/x509/Extensions;
         2: .line 80
            return
        end local 1 // org.bouncycastle.asn1.x509.Certificate x509Certificate
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/bouncycastle/cert/X509CertificateHolder;
            0    3     1  x509Certificate  Lorg/bouncycastle/asn1/x509/Certificate;
    MethodParameters:
                 Name  Flags
      x509Certificate  

  public int getVersionNumber();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 84
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getVersionNumber:()I
            ireturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public int getVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 92
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getVersionNumber:()I
            ireturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public boolean hasExtensions();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 102
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.extensions:Lorg/bouncycastle/asn1/x509/Extensions;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public org.bouncycastle.asn1.x509.Extension getExtension(org.bouncycastle.asn1.ASN1ObjectIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/x509/Extension;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier oid
         0: .line 114
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.extensions:Lorg/bouncycastle/asn1/x509/Extensions;
            ifnull 2
         1: .line 116
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.extensions:Lorg/bouncycastle/asn1/x509/Extensions;
            aload 1 /* oid */
            invokevirtual org.bouncycastle.asn1.x509.Extensions.getExtension:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/x509/Extension;
            areturn
         2: .line 119
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier oid
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;
            0    3     1   oid  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    MethodParameters:
      Name  Flags
      oid   

  public org.bouncycastle.asn1.x509.Extensions getExtensions();
    descriptor: ()Lorg/bouncycastle/asn1/x509/Extensions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 129
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.extensions:Lorg/bouncycastle/asn1/x509/Extensions;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public java.util.List getExtensionOIDs();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 140
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.extensions:Lorg/bouncycastle/asn1/x509/Extensions;
            invokestatic org.bouncycastle.cert.CertUtils.getExtensionOIDs:(Lorg/bouncycastle/asn1/x509/Extensions;)Ljava/util/List;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public java.util.Set getCriticalExtensionOIDs();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 151
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.extensions:Lorg/bouncycastle/asn1/x509/Extensions;
            invokestatic org.bouncycastle.cert.CertUtils.getCriticalExtensionOIDs:(Lorg/bouncycastle/asn1/x509/Extensions;)Ljava/util/Set;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public java.util.Set getNonCriticalExtensionOIDs();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 162
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.extensions:Lorg/bouncycastle/asn1/x509/Extensions;
            invokestatic org.bouncycastle.cert.CertUtils.getNonCriticalExtensionOIDs:(Lorg/bouncycastle/asn1/x509/Extensions;)Ljava/util/Set;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  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.cert.X509CertificateHolder this
         0: .line 172
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getSerialNumber:()Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.ASN1Integer.getValue:()Ljava/math/BigInteger;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public org.bouncycastle.asn1.x500.X500Name getIssuer();
    descriptor: ()Lorg/bouncycastle/asn1/x500/X500Name;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 182
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getIssuer:()Lorg/bouncycastle/asn1/x500/X500Name;
            invokestatic org.bouncycastle.asn1.x500.X500Name.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x500/X500Name;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public org.bouncycastle.asn1.x500.X500Name getSubject();
    descriptor: ()Lorg/bouncycastle/asn1/x500/X500Name;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 192
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getSubject:()Lorg/bouncycastle/asn1/x500/X500Name;
            invokestatic org.bouncycastle.asn1.x500.X500Name.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x500/X500Name;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  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.cert.X509CertificateHolder this
         0: .line 202
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getStartDate:()Lorg/bouncycastle/asn1/x509/Time;
            invokevirtual org.bouncycastle.asn1.x509.Time.getDate:()Ljava/util/Date;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  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.cert.X509CertificateHolder this
         0: .line 212
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getEndDate:()Lorg/bouncycastle/asn1/x509/Time;
            invokevirtual org.bouncycastle.asn1.x509.Time.getDate:()Ljava/util/Date;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public org.bouncycastle.asn1.x509.SubjectPublicKeyInfo getSubjectPublicKeyInfo();
    descriptor: ()Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 222
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getSubjectPublicKeyInfo:()Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public org.bouncycastle.asn1.x509.Certificate toASN1Structure();
    descriptor: ()Lorg/bouncycastle/asn1/x509/Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 232
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public org.bouncycastle.asn1.x509.AlgorithmIdentifier getSignatureAlgorithm();
    descriptor: ()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 242
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public byte[] getSignature();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 252
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getSignature:()Lorg/bouncycastle/asn1/DERBitString;
            invokevirtual org.bouncycastle.asn1.DERBitString.getOctets:()[B
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public boolean isValidOn(java.util.Date);
    descriptor: (Ljava/util/Date;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
        start local 1 // java.util.Date date
         0: .line 263
            aload 1 /* date */
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getStartDate:()Lorg/bouncycastle/asn1/x509/Time;
            invokevirtual org.bouncycastle.asn1.x509.Time.getDate:()Ljava/util/Date;
            invokevirtual java.util.Date.before:(Ljava/util/Date;)Z
            ifne 1
            aload 1 /* date */
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getEndDate:()Lorg/bouncycastle/asn1/x509/Time;
            invokevirtual org.bouncycastle.asn1.x509.Time.getDate:()Ljava/util/Date;
            invokevirtual java.util.Date.after:(Ljava/util/Date;)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.util.Date date
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;
            0    2     1  date  Ljava/util/Date;
    MethodParameters:
      Name  Flags
      date  

  public boolean isSignatureValid(org.bouncycastle.operator.ContentVerifierProvider);
    descriptor: (Lorg/bouncycastle/operator/ContentVerifierProvider;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
        start local 1 // org.bouncycastle.operator.ContentVerifierProvider verifierProvider
         0: .line 276
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getTBSCertificate:()Lorg/bouncycastle/asn1/x509/TBSCertificate;
            astore 2 /* tbsCert */
        start local 2 // org.bouncycastle.asn1.x509.TBSCertificate tbsCert
         1: .line 278
            aload 2 /* tbsCert */
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificate.getSignature:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getSignatureAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokestatic org.bouncycastle.cert.CertUtils.isAlgIdEqual:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Z
            ifne 3
         2: .line 280
            new org.bouncycastle.cert.CertException
            dup
            ldc "signature invalid - algorithm identifier mismatch"
            invokespecial org.bouncycastle.cert.CertException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 287
      StackMap locals: org.bouncycastle.asn1.x509.TBSCertificate
      StackMap stack:
            aload 1 /* verifierProvider */
            aload 2 /* tbsCert */
            invokevirtual org.bouncycastle.asn1.x509.TBSCertificate.getSignature:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokeinterface org.bouncycastle.operator.ContentVerifierProvider.get:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/ContentVerifier;
            astore 3 /* verifier */
        start local 3 // org.bouncycastle.operator.ContentVerifier verifier
         4: .line 289
            aload 3 /* verifier */
            invokeinterface org.bouncycastle.operator.ContentVerifier.getOutputStream:()Ljava/io/OutputStream;
            astore 4 /* sOut */
        start local 4 // java.io.OutputStream sOut
         5: .line 290
            new org.bouncycastle.asn1.DEROutputStream
            dup
            aload 4 /* sOut */
            invokespecial org.bouncycastle.asn1.DEROutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 5 /* dOut */
        start local 5 // org.bouncycastle.asn1.DEROutputStream dOut
         6: .line 292
            aload 5 /* dOut */
            aload 2 /* tbsCert */
            invokevirtual org.bouncycastle.asn1.DEROutputStream.writeObject:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
         7: .line 294
            aload 4 /* sOut */
            invokevirtual java.io.OutputStream.close:()V
        end local 5 // org.bouncycastle.asn1.DEROutputStream dOut
        end local 4 // java.io.OutputStream sOut
         8: .line 295
            goto 11
        end local 3 // org.bouncycastle.operator.ContentVerifier verifier
         9: .line 296
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        10: .line 298
            new org.bouncycastle.cert.CertException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unable to process signature: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* e */
            invokespecial org.bouncycastle.cert.CertException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        start local 3 // org.bouncycastle.operator.ContentVerifier verifier
        11: .line 301
      StackMap locals: org.bouncycastle.operator.ContentVerifier
      StackMap stack:
            aload 3 /* verifier */
            aload 0 /* this */
            invokevirtual org.bouncycastle.cert.X509CertificateHolder.getSignature:()[B
            invokeinterface org.bouncycastle.operator.ContentVerifier.verify:([B)Z
            ireturn
        end local 3 // org.bouncycastle.operator.ContentVerifier verifier
        end local 2 // org.bouncycastle.asn1.x509.TBSCertificate tbsCert
        end local 1 // org.bouncycastle.operator.ContentVerifierProvider verifierProvider
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lorg/bouncycastle/cert/X509CertificateHolder;
            0   12     1  verifierProvider  Lorg/bouncycastle/operator/ContentVerifierProvider;
            1   12     2           tbsCert  Lorg/bouncycastle/asn1/x509/TBSCertificate;
            4    9     3          verifier  Lorg/bouncycastle/operator/ContentVerifier;
           11   12     3          verifier  Lorg/bouncycastle/operator/ContentVerifier;
            5    8     4              sOut  Ljava/io/OutputStream;
            6    8     5              dOut  Lorg/bouncycastle/asn1/DEROutputStream;
           10   11     4                 e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     8       9  Class java.lang.Exception
    Exceptions:
      throws org.bouncycastle.cert.CertException
    MethodParameters:
                  Name  Flags
      verifierProvider  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
        start local 1 // java.lang.Object o
         0: .line 307
            aload 1 /* o */
            aload 0 /* this */
            if_acmpne 2
         1: .line 309
            iconst_1
            ireturn
         2: .line 312
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.cert.X509CertificateHolder
            ifne 4
         3: .line 314
            iconst_0
            ireturn
         4: .line 317
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.bouncycastle.cert.X509CertificateHolder
            astore 2 /* other */
        start local 2 // org.bouncycastle.cert.X509CertificateHolder other
         5: .line 319
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            aload 2 /* other */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // org.bouncycastle.cert.X509CertificateHolder other
        end local 1 // java.lang.Object o
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/bouncycastle/cert/X509CertificateHolder;
            0    6     1      o  Ljava/lang/Object;
            5    6     2  other  Lorg/bouncycastle/cert/X509CertificateHolder;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 324
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.hashCode:()I
            ireturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;

  public byte[] getEncoded();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
         0: .line 336
            aload 0 /* this */
            getfield org.bouncycastle.cert.X509CertificateHolder.x509Certificate:Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.asn1.x509.Certificate.getEncoded:()[B
            areturn
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;
    Exceptions:
      throws java.io.IOException

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
        start local 1 // java.io.ObjectInputStream in
         0: .line 343
            aload 1 /* in */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 345
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
            invokestatic org.bouncycastle.asn1.x509.Certificate.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/Certificate;
            invokevirtual org.bouncycastle.cert.X509CertificateHolder.init:(Lorg/bouncycastle/asn1/x509/Certificate;)V
         2: .line 346
            return
        end local 1 // java.io.ObjectInputStream in
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;
            0    3     1    in  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      in    

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.X509CertificateHolder this
        start local 1 // java.io.ObjectOutputStream out
         0: .line 352
            aload 1 /* out */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         1: .line 354
            aload 1 /* out */
            aload 0 /* this */
            invokevirtual org.bouncycastle.cert.X509CertificateHolder.getEncoded:()[B
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
         2: .line 355
            return
        end local 1 // java.io.ObjectOutputStream out
        end local 0 // org.bouncycastle.cert.X509CertificateHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cert/X509CertificateHolder;
            0    3     1   out  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   
}
SourceFile: "X509CertificateHolder.java"