final class io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator
  super_class: java.lang.Object
{
  static java.lang.String[] generate(java.lang.String, java.security.KeyPair, java.security.SecureRandom, java.util.Date, java.util.Date);
    descriptor: (Ljava/lang/String;Ljava/security/KeyPair;Ljava/security/SecureRandom;Ljava/util/Date;Ljava/util/Date;)[Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=9, args_size=5
        start local 0 // java.lang.String fqdn
        start local 1 // java.security.KeyPair keypair
        start local 2 // java.security.SecureRandom random
        start local 3 // java.util.Date notBefore
        start local 4 // java.util.Date notAfter
         0: .line 47
            aload 1 /* keypair */
            invokevirtual java.security.KeyPair.getPrivate:()Ljava/security/PrivateKey;
            astore 5 /* key */
        start local 5 // java.security.PrivateKey key
         1: .line 50
            new sun.security.x509.X509CertInfo
            dup
            invokespecial sun.security.x509.X509CertInfo.<init>:()V
            astore 6 /* info */
        start local 6 // sun.security.x509.X509CertInfo info
         2: .line 51
            new sun.security.x509.X500Name
            dup
            new java.lang.StringBuilder
            dup
            ldc "CN="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* fqdn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial sun.security.x509.X500Name.<init>:(Ljava/lang/String;)V
            astore 7 /* owner */
        start local 7 // sun.security.x509.X500Name owner
         3: .line 52
            aload 6 /* info */
            ldc "version"
            new sun.security.x509.CertificateVersion
            dup
            iconst_2
            invokespecial sun.security.x509.CertificateVersion.<init>:(I)V
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 53
            aload 6 /* info */
            ldc "serialNumber"
            new sun.security.x509.CertificateSerialNumber
            dup
            new java.math.BigInteger
            dup
            bipush 64
            aload 2 /* random */
            invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
            invokespecial sun.security.x509.CertificateSerialNumber.<init>:(Ljava/math/BigInteger;)V
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 55
            aload 6 /* info */
            ldc "subject"
            new sun.security.x509.CertificateSubjectName
            dup
            aload 7 /* owner */
            invokespecial sun.security.x509.CertificateSubjectName.<init>:(Lsun/security/x509/X500Name;)V
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 56
            goto 9
      StackMap locals: java.lang.String java.security.KeyPair java.security.SecureRandom java.util.Date java.util.Date java.security.PrivateKey sun.security.x509.X509CertInfo sun.security.x509.X500Name
      StackMap stack: java.security.cert.CertificateException
         7: pop
         8: .line 57
            aload 6 /* info */
            ldc "subject"
            aload 7 /* owner */
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 60
      StackMap locals:
      StackMap stack:
            aload 6 /* info */
            ldc "issuer"
            new sun.security.x509.CertificateIssuerName
            dup
            aload 7 /* owner */
            invokespecial sun.security.x509.CertificateIssuerName.<init>:(Lsun/security/x509/X500Name;)V
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 61
            goto 13
      StackMap locals:
      StackMap stack: java.security.cert.CertificateException
        11: pop
        12: .line 62
            aload 6 /* info */
            ldc "issuer"
            aload 7 /* owner */
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 64
      StackMap locals:
      StackMap stack:
            aload 6 /* info */
            ldc "validity"
            new sun.security.x509.CertificateValidity
            dup
            aload 3 /* notBefore */
            aload 4 /* notAfter */
            invokespecial sun.security.x509.CertificateValidity.<init>:(Ljava/util/Date;Ljava/util/Date;)V
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
        14: .line 65
            aload 6 /* info */
            ldc "key"
            new sun.security.x509.CertificateX509Key
            dup
            aload 1 /* keypair */
            invokevirtual java.security.KeyPair.getPublic:()Ljava/security/PublicKey;
            invokespecial sun.security.x509.CertificateX509Key.<init>:(Ljava/security/PublicKey;)V
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
        15: .line 66
            aload 6 /* info */
            ldc "algorithmID"
        16: .line 67
            new sun.security.x509.CertificateAlgorithmId
            dup
            new sun.security.x509.AlgorithmId
            dup
            getstatic sun.security.x509.AlgorithmId.sha1WithRSAEncryption_oid:Lsun/security/util/ObjectIdentifier;
            invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;)V
            invokespecial sun.security.x509.CertificateAlgorithmId.<init>:(Lsun/security/x509/AlgorithmId;)V
        17: .line 66
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
        18: .line 70
            new sun.security.x509.X509CertImpl
            dup
            aload 6 /* info */
            invokespecial sun.security.x509.X509CertImpl.<init>:(Lsun/security/x509/X509CertInfo;)V
            astore 8 /* cert */
        start local 8 // sun.security.x509.X509CertImpl cert
        19: .line 71
            aload 8 /* cert */
            aload 5 /* key */
            ldc "SHA1withRSA"
            invokevirtual sun.security.x509.X509CertImpl.sign:(Ljava/security/PrivateKey;Ljava/lang/String;)V
        20: .line 74
            aload 6 /* info */
            ldc "algorithmID.algorithm"
            aload 8 /* cert */
            ldc "x509.algorithm"
            invokevirtual sun.security.x509.X509CertImpl.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual sun.security.x509.X509CertInfo.set:(Ljava/lang/String;Ljava/lang/Object;)V
        21: .line 75
            new sun.security.x509.X509CertImpl
            dup
            aload 6 /* info */
            invokespecial sun.security.x509.X509CertImpl.<init>:(Lsun/security/x509/X509CertInfo;)V
            astore 8 /* cert */
        22: .line 76
            aload 8 /* cert */
            aload 5 /* key */
            ldc "SHA1withRSA"
            invokevirtual sun.security.x509.X509CertImpl.sign:(Ljava/security/PrivateKey;Ljava/lang/String;)V
        23: .line 77
            aload 8 /* cert */
            aload 1 /* keypair */
            invokevirtual java.security.KeyPair.getPublic:()Ljava/security/PublicKey;
            invokevirtual sun.security.x509.X509CertImpl.verify:(Ljava/security/PublicKey;)V
        24: .line 79
            aload 0 /* fqdn */
            aload 5 /* key */
            aload 8 /* cert */
            invokestatic io.netty.handler.ssl.util.SelfSignedCertificate.newSelfSignedCertificate:(Ljava/lang/String;Ljava/security/PrivateKey;Ljava/security/cert/X509Certificate;)[Ljava/lang/String;
            areturn
        end local 8 // sun.security.x509.X509CertImpl cert
        end local 7 // sun.security.x509.X500Name owner
        end local 6 // sun.security.x509.X509CertInfo info
        end local 5 // java.security.PrivateKey key
        end local 4 // java.util.Date notAfter
        end local 3 // java.util.Date notBefore
        end local 2 // java.security.SecureRandom random
        end local 1 // java.security.KeyPair keypair
        end local 0 // java.lang.String fqdn
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0       fqdn  Ljava/lang/String;
            0   25     1    keypair  Ljava/security/KeyPair;
            0   25     2     random  Ljava/security/SecureRandom;
            0   25     3  notBefore  Ljava/util/Date;
            0   25     4   notAfter  Ljava/util/Date;
            1   25     5        key  Ljava/security/PrivateKey;
            2   25     6       info  Lsun/security/x509/X509CertInfo;
            3   25     7      owner  Lsun/security/x509/X500Name;
           19   25     8       cert  Lsun/security/x509/X509CertImpl;
      Exception table:
        from    to  target  type
           5     6       7  Class java.security.cert.CertificateException
           9    10      11  Class java.security.cert.CertificateException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      fqdn       
      keypair    
      random     
      notBefore  
      notAfter   

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator this
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/ssl/util/OpenJdkSelfSignedCertGenerator;
}
SourceFile: "OpenJdkSelfSignedCertGenerator.java"