public abstract class java.security.cert.X509Certificate extends java.security.cert.Certificate implements java.security.cert.X509Extension
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.security.cert.X509Certificate
  super_class: java.security.cert.Certificate
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -2491127588187038216

  private transient javax.security.auth.x500.X500Principal subjectX500Principal;
    descriptor: Ljavax/security/auth/x500/X500Principal;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient javax.security.auth.x500.X500Principal issuerX500Principal;
    descriptor: Ljavax/security/auth/x500/X500Principal;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.security.cert.X509Certificate this
         0: .line 119
            aload 0 /* this */
            ldc "X.509"
            invokespecial java.security.cert.Certificate.<init>:(Ljava/lang/String;)V
         1: .line 120
            return
        end local 0 // java.security.cert.X509Certificate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/security/cert/X509Certificate;

  public abstract void checkValidity();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.security.cert.CertificateExpiredException, java.security.cert.CertificateNotYetValidException

  public abstract void checkValidity(java.util.Date);
    descriptor: (Ljava/util/Date;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.security.cert.CertificateExpiredException, java.security.cert.CertificateNotYetValidException
    MethodParameters:
      Name  Flags
      date  

  public abstract int getVersion();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.math.BigInteger getSerialNumber();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.security.Principal getIssuerDN();
    descriptor: ()Ljava/security/Principal;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public javax.security.auth.x500.X500Principal getIssuerX500Principal();
    descriptor: ()Ljavax/security/auth/x500/X500Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.security.cert.X509Certificate this
         0: .line 250
            aload 0 /* this */
            getfield java.security.cert.X509Certificate.issuerX500Principal:Ljavax/security/auth/x500/X500Principal;
            ifnonnull 2
         1: .line 251
            aload 0 /* this */
            aload 0 /* this */
            invokestatic sun.security.x509.X509CertImpl.getIssuerX500Principal:(Ljava/security/cert/X509Certificate;)Ljavax/security/auth/x500/X500Principal;
            putfield java.security.cert.X509Certificate.issuerX500Principal:Ljavax/security/auth/x500/X500Principal;
         2: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.cert.X509Certificate.issuerX500Principal:Ljavax/security/auth/x500/X500Principal;
            areturn
        end local 0 // java.security.cert.X509Certificate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/security/cert/X509Certificate;

  public abstract java.security.Principal getSubjectDN();
    descriptor: ()Ljava/security/Principal;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public javax.security.auth.x500.X500Principal getSubjectX500Principal();
    descriptor: ()Ljavax/security/auth/x500/X500Principal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.security.cert.X509Certificate this
         0: .line 293
            aload 0 /* this */
            getfield java.security.cert.X509Certificate.subjectX500Principal:Ljavax/security/auth/x500/X500Principal;
            ifnonnull 2
         1: .line 294
            aload 0 /* this */
            aload 0 /* this */
            invokestatic sun.security.x509.X509CertImpl.getSubjectX500Principal:(Ljava/security/cert/X509Certificate;)Ljavax/security/auth/x500/X500Principal;
            putfield java.security.cert.X509Certificate.subjectX500Principal:Ljavax/security/auth/x500/X500Principal;
         2: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.cert.X509Certificate.subjectX500Principal:Ljavax/security/auth/x500/X500Principal;
            areturn
        end local 0 // java.security.cert.X509Certificate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/security/cert/X509Certificate;

  public abstract java.util.Date getNotBefore();
    descriptor: ()Ljava/util/Date;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.util.Date getNotAfter();
    descriptor: ()Ljava/util/Date;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract byte[] getTBSCertificate();
    descriptor: ()[B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.security.cert.CertificateEncodingException

  public abstract byte[] getSignature();
    descriptor: ()[B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getSigAlgName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getSigAlgOID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract byte[] getSigAlgParams();
    descriptor: ()[B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean[] getIssuerUniqueID();
    descriptor: ()[Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean[] getSubjectUniqueID();
    descriptor: ()[Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean[] getKeyUsage();
    descriptor: ()[Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public java.util.List<java.lang.String> getExtendedKeyUsage();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.cert.X509Certificate this
         0: .line 511
            aload 0 /* this */
            invokestatic sun.security.x509.X509CertImpl.getExtendedKeyUsage:(Ljava/security/cert/X509Certificate;)Ljava/util/List;
            areturn
        end local 0 // java.security.cert.X509Certificate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/security/cert/X509Certificate;
    Exceptions:
      throws java.security.cert.CertificateParsingException
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public abstract int getBasicConstraints();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public java.util.Collection<java.util.List<?>> getSubjectAlternativeNames();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.cert.X509Certificate this
         0: .line 608
            aload 0 /* this */
            invokestatic sun.security.x509.X509CertImpl.getSubjectAlternativeNames:(Ljava/security/cert/X509Certificate;)Ljava/util/Collection;
            areturn
        end local 0 // java.security.cert.X509Certificate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/security/cert/X509Certificate;
    Exceptions:
      throws java.security.cert.CertificateParsingException
    Signature: ()Ljava/util/Collection<Ljava/util/List<*>;>;

  public java.util.Collection<java.util.List<?>> getIssuerAlternativeNames();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.cert.X509Certificate this
         0: .line 650
            aload 0 /* this */
            invokestatic sun.security.x509.X509CertImpl.getIssuerAlternativeNames:(Ljava/security/cert/X509Certificate;)Ljava/util/Collection;
            areturn
        end local 0 // java.security.cert.X509Certificate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/security/cert/X509Certificate;
    Exceptions:
      throws java.security.cert.CertificateParsingException
    Signature: ()Ljava/util/Collection<Ljava/util/List<*>;>;

  public void verify(java.security.PublicKey, java.security.Provider);
    descriptor: (Ljava/security/PublicKey;Ljava/security/Provider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.security.cert.X509Certificate this
        start local 1 // java.security.PublicKey key
        start local 2 // java.security.Provider sigProvider
         0: .line 679
            aload 0 /* this */
            invokevirtual java.security.cert.X509Certificate.getSigAlgName:()Ljava/lang/String;
            astore 3 /* sigName */
        start local 3 // java.lang.String sigName
         1: .line 680
            aload 2 /* sigProvider */
            ifnonnull 3
         2: .line 681
            aload 3 /* sigName */
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
            goto 4
         3: .line 682
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* sigName */
            aload 2 /* sigProvider */
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;
         4: .line 680
      StackMap locals:
      StackMap stack: java.security.Signature
            astore 4 /* sig */
        start local 4 // java.security.Signature sig
         5: .line 685
            aload 4 /* sig */
            aload 1 /* key */
         6: .line 686
            aload 3 /* sigName */
            aload 0 /* this */
            invokevirtual java.security.cert.X509Certificate.getSigAlgParams:()[B
            invokestatic sun.security.util.SignatureUtil.getParamSpec:(Ljava/lang/String;[B)Ljava/security/spec/AlgorithmParameterSpec;
         7: .line 685
            invokestatic sun.security.util.SignatureUtil.initVerifyWithParam:(Ljava/security/Signature;Ljava/security/PublicKey;Ljava/security/spec/AlgorithmParameterSpec;)V
         8: .line 687
            goto 13
      StackMap locals: java.security.cert.X509Certificate java.security.PublicKey java.security.Provider java.lang.String java.security.Signature
      StackMap stack: java.security.ProviderException
         9: astore 5 /* e */
        start local 5 // java.security.ProviderException e
        10: .line 688
            new java.security.cert.CertificateException
            dup
            aload 5 /* e */
            invokevirtual java.security.ProviderException.getMessage:()Ljava/lang/String;
            aload 5 /* e */
            invokevirtual java.security.ProviderException.getCause:()Ljava/lang/Throwable;
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.security.ProviderException e
        11: .line 689
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
            astore 5 /* e */
        start local 5 // java.security.InvalidAlgorithmParameterException e
        12: .line 690
            new java.security.cert.CertificateException
            dup
            aload 5 /* e */
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.security.InvalidAlgorithmParameterException e
        13: .line 693
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.security.cert.X509Certificate.getTBSCertificate:()[B
            astore 5 /* tbsCert */
        start local 5 // byte[] tbsCert
        14: .line 694
            aload 4 /* sig */
            aload 5 /* tbsCert */
            iconst_0
            aload 5 /* tbsCert */
            arraylength
            invokevirtual java.security.Signature.update:([BII)V
        15: .line 696
            aload 4 /* sig */
            aload 0 /* this */
            invokevirtual java.security.cert.X509Certificate.getSignature:()[B
            invokevirtual java.security.Signature.verify:([B)Z
            ifne 17
        16: .line 697
            new java.security.SignatureException
            dup
            ldc "Signature does not match."
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 699
      StackMap locals: byte[]
      StackMap stack:
            return
        end local 5 // byte[] tbsCert
        end local 4 // java.security.Signature sig
        end local 3 // java.lang.String sigName
        end local 2 // java.security.Provider sigProvider
        end local 1 // java.security.PublicKey key
        end local 0 // java.security.cert.X509Certificate this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Ljava/security/cert/X509Certificate;
            0   18     1          key  Ljava/security/PublicKey;
            0   18     2  sigProvider  Ljava/security/Provider;
            1   18     3      sigName  Ljava/lang/String;
            5   18     4          sig  Ljava/security/Signature;
           10   11     5            e  Ljava/security/ProviderException;
           12   13     5            e  Ljava/security/InvalidAlgorithmParameterException;
           14   18     5      tbsCert  [B
      Exception table:
        from    to  target  type
           5     8       9  Class java.security.ProviderException
           5     8      11  Class java.security.InvalidAlgorithmParameterException
    Exceptions:
      throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.SignatureException
    MethodParameters:
             Name  Flags
      key          
      sigProvider  
}
SourceFile: "X509Certificate.java"