final class sun.security.ssl.HelloCookieManager$D10HelloCookieManager extends sun.security.ssl.HelloCookieManager
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.HelloCookieManager$D10HelloCookieManager
  super_class: sun.security.ssl.HelloCookieManager
{
  final java.security.SecureRandom secureRandom;
    descriptor: Ljava/security/SecureRandom;
    flags: (0x0010) ACC_FINAL

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

  private byte[] cookieSecret;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] legacySecret;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.security.SecureRandom);
    descriptor: (Ljava/security/SecureRandom;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.security.ssl.HelloCookieManager$D10HelloCookieManager this
        start local 1 // java.security.SecureRandom secureRandom
         0: .line 116
            aload 0 /* this */
            invokespecial sun.security.ssl.HelloCookieManager.<init>:()V
         1: .line 117
            aload 0 /* this */
            aload 1 /* secureRandom */
            putfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.secureRandom:Ljava/security/SecureRandom;
         2: .line 119
            aload 0 /* this */
            aload 1 /* secureRandom */
            invokevirtual java.security.SecureRandom.nextInt:()I
            putfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieVersion:I
         3: .line 120
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieSecret:[B
         4: .line 121
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.legacySecret:[B
         5: .line 123
            aload 1 /* secureRandom */
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieSecret:[B
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         6: .line 124
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieSecret:[B
            iconst_0
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.legacySecret:[B
            iconst_0
            bipush 32
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 125
            return
        end local 1 // java.security.SecureRandom secureRandom
        end local 0 // sun.security.ssl.HelloCookieManager$D10HelloCookieManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lsun/security/ssl/HelloCookieManager$D10HelloCookieManager;
            0    8     1  secureRandom  Ljava/security/SecureRandom;
    MethodParameters:
              Name  Flags
      secureRandom  

  byte[] createCookie(sun.security.ssl.ServerHandshakeContext, sun.security.ssl.ClientHello$ClientHelloMessage);
    descriptor: (Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;)[B
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // sun.security.ssl.HelloCookieManager$D10HelloCookieManager this
        start local 1 // sun.security.ssl.ServerHandshakeContext context
        start local 2 // sun.security.ssl.ClientHello$ClientHelloMessage clientHello
         0: .line 133
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         1: .line 134
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieVersion:I
            istore 3 /* version */
        start local 3 // int version
         2: .line 135
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieSecret:[B
            astore 4 /* secret */
        start local 4 // byte[] secret
         3: .line 138
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieVersion:I
            ldc 16777215
            iand
            ifne 6
         4: .line 139
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieSecret:[B
            iconst_0
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.legacySecret:[B
            iconst_0
            bipush 32
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 140
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.secureRandom:Ljava/security/SecureRandom;
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieSecret:[B
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         6: .line 143
      StackMap locals: int byte[] sun.security.ssl.HelloCookieManager$D10HelloCookieManager
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieVersion:I
            iconst_1
            iadd
            putfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieVersion:I
         7: .line 133
            aload 5
            monitorexit
         8: goto 11
        end local 4 // byte[] secret
        end local 3 // int version
      StackMap locals: sun.security.ssl.HelloCookieManager$D10HelloCookieManager sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage top top sun.security.ssl.HelloCookieManager$D10HelloCookieManager
      StackMap stack: java.lang.Throwable
         9: aload 5
            monitorexit
        10: athrow
        start local 3 // int version
        start local 4 // byte[] secret
        11: .line 146
      StackMap locals: sun.security.ssl.HelloCookieManager$D10HelloCookieManager sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage int byte[]
      StackMap stack:
            ldc "SHA-256"
            invokestatic sun.security.ssl.JsseJce.getMessageDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 5 /* md */
        start local 5 // java.security.MessageDigest md
        12: .line 147
            aload 2 /* clientHello */
            invokevirtual sun.security.ssl.ClientHello$ClientHelloMessage.getHelloCookieBytes:()[B
            astore 6 /* helloBytes */
        start local 6 // byte[] helloBytes
        13: .line 148
            aload 5 /* md */
            aload 6 /* helloBytes */
            invokevirtual java.security.MessageDigest.update:([B)V
        14: .line 149
            aload 5 /* md */
            aload 4 /* secret */
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 7 /* cookie */
        start local 7 // byte[] cookie
        15: .line 150
            aload 7 /* cookie */
            iconst_0
            iload 3 /* version */
            bipush 24
            ishr
            sipush 255
            iand
            i2b
            bastore
        16: .line 152
            aload 7 /* cookie */
            areturn
        end local 7 // byte[] cookie
        end local 6 // byte[] helloBytes
        end local 5 // java.security.MessageDigest md
        end local 4 // byte[] secret
        end local 3 // int version
        end local 2 // sun.security.ssl.ClientHello$ClientHelloMessage clientHello
        end local 1 // sun.security.ssl.ServerHandshakeContext context
        end local 0 // sun.security.ssl.HelloCookieManager$D10HelloCookieManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lsun/security/ssl/HelloCookieManager$D10HelloCookieManager;
            0   17     1      context  Lsun/security/ssl/ServerHandshakeContext;
            0   17     2  clientHello  Lsun/security/ssl/ClientHello$ClientHelloMessage;
            2    9     3      version  I
           11   17     3      version  I
            3    9     4       secret  [B
           11   17     4       secret  [B
           12   17     5           md  Ljava/security/MessageDigest;
           13   17     6   helloBytes  [B
           15   17     7       cookie  [B
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      context      
      clientHello  

  boolean isCookieValid(sun.security.ssl.ServerHandshakeContext, sun.security.ssl.ClientHello$ClientHelloMessage, byte[]);
    descriptor: (Lsun/security/ssl/ServerHandshakeContext;Lsun/security/ssl/ClientHello$ClientHelloMessage;[B)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // sun.security.ssl.HelloCookieManager$D10HelloCookieManager this
        start local 1 // sun.security.ssl.ServerHandshakeContext context
        start local 2 // sun.security.ssl.ClientHello$ClientHelloMessage clientHello
        start local 3 // byte[] cookie
         0: .line 159
            aload 3 /* cookie */
            ifnull 1
            aload 3 /* cookie */
            arraylength
            bipush 32
            if_icmpeq 2
         1: .line 160
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         3: .line 165
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieVersion:I
            bipush 24
            ishr
            sipush 255
            iand
            aload 3 /* cookie */
            iconst_0
            baload
            if_icmpne 6
         4: .line 166
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.cookieSecret:[B
            astore 4 /* secret */
        start local 4 // byte[] secret
         5: .line 167
            goto 7
        end local 4 // byte[] secret
         6: .line 168
      StackMap locals: sun.security.ssl.HelloCookieManager$D10HelloCookieManager sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage byte[] top sun.security.ssl.HelloCookieManager$D10HelloCookieManager
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.HelloCookieManager$D10HelloCookieManager.legacySecret:[B
            astore 4 /* secret */
        start local 4 // byte[] secret
         7: .line 164
      StackMap locals: sun.security.ssl.HelloCookieManager$D10HelloCookieManager sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage byte[] byte[] sun.security.ssl.HelloCookieManager$D10HelloCookieManager
      StackMap stack:
            aload 5
            monitorexit
         8: goto 11
        end local 4 // byte[] secret
      StackMap locals: sun.security.ssl.HelloCookieManager$D10HelloCookieManager sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage byte[] top sun.security.ssl.HelloCookieManager$D10HelloCookieManager
      StackMap stack: java.lang.Throwable
         9: aload 5
            monitorexit
        10: athrow
        start local 4 // byte[] secret
        11: .line 172
      StackMap locals: sun.security.ssl.HelloCookieManager$D10HelloCookieManager sun.security.ssl.ServerHandshakeContext sun.security.ssl.ClientHello$ClientHelloMessage byte[] byte[]
      StackMap stack:
            ldc "SHA-256"
            invokestatic sun.security.ssl.JsseJce.getMessageDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 5 /* md */
        start local 5 // java.security.MessageDigest md
        12: .line 173
            aload 2 /* clientHello */
            invokevirtual sun.security.ssl.ClientHello$ClientHelloMessage.getHelloCookieBytes:()[B
            astore 6 /* helloBytes */
        start local 6 // byte[] helloBytes
        13: .line 174
            aload 5 /* md */
            aload 6 /* helloBytes */
            invokevirtual java.security.MessageDigest.update:([B)V
        14: .line 175
            aload 5 /* md */
            aload 4 /* secret */
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 7 /* target */
        start local 7 // byte[] target
        15: .line 176
            aload 7 /* target */
            iconst_0
            aload 3 /* cookie */
            iconst_0
            baload
            bastore
        16: .line 178
            aload 7 /* target */
            aload 3 /* cookie */
            invokestatic java.util.Arrays.equals:([B[B)Z
            ireturn
        end local 7 // byte[] target
        end local 6 // byte[] helloBytes
        end local 5 // java.security.MessageDigest md
        end local 4 // byte[] secret
        end local 3 // byte[] cookie
        end local 2 // sun.security.ssl.ClientHello$ClientHelloMessage clientHello
        end local 1 // sun.security.ssl.ServerHandshakeContext context
        end local 0 // sun.security.ssl.HelloCookieManager$D10HelloCookieManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lsun/security/ssl/HelloCookieManager$D10HelloCookieManager;
            0   17     1      context  Lsun/security/ssl/ServerHandshakeContext;
            0   17     2  clientHello  Lsun/security/ssl/ClientHello$ClientHelloMessage;
            0   17     3       cookie  [B
            5    6     4       secret  [B
            7    9     4       secret  [B
           11   17     4       secret  [B
           12   17     5           md  Ljava/security/MessageDigest;
           13   17     6   helloBytes  [B
           15   17     7       target  [B
      Exception table:
        from    to  target  type
           3     8       9  any
           9    10       9  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      context      
      clientHello  
      cookie       
}
SourceFile: "HelloCookieManager.java"
NestHost: sun.security.ssl.HelloCookieManager
InnerClasses:
  final ClientHelloMessage = sun.security.ssl.ClientHello$ClientHelloMessage of sun.security.ssl.ClientHello
  private final D10HelloCookieManager = sun.security.ssl.HelloCookieManager$D10HelloCookieManager of sun.security.ssl.HelloCookieManager