final class sun.security.pkcs11.P11TlsPrfGenerator extends javax.crypto.KeyGeneratorSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.pkcs11.P11TlsPrfGenerator
  super_class: javax.crypto.KeyGeneratorSpi
{
  private static final java.lang.String MSG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TlsPrfGenerator must be initialized using a TlsPrfParameterSpec"

  private final sun.security.pkcs11.Token token;
    descriptor: Lsun/security/pkcs11/Token;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String algorithm;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long mechanism;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private sun.security.internal.spec.TlsPrfParameterSpec spec;
    descriptor: Lsun/security/internal/spec/TlsPrfParameterSpec;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.pkcs11.P11Key p11Key;
    descriptor: Lsun/security/pkcs11/P11Key;
    flags: (0x0002) ACC_PRIVATE

  private static final javax.crypto.SecretKey NULL_KEY;
    descriptor: Ljavax/crypto/SecretKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 100
            new sun.security.pkcs11.P11TlsPrfGenerator$1
            dup
            invokespecial sun.security.pkcs11.P11TlsPrfGenerator$1.<init>:()V
            putstatic sun.security.pkcs11.P11TlsPrfGenerator.NULL_KEY:Ljavax/crypto/SecretKey;
         1: .line 112
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(sun.security.pkcs11.Token, java.lang.String, long);
    descriptor: (Lsun/security/pkcs11/Token;Ljava/lang/String;J)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
        start local 1 // sun.security.pkcs11.Token token
        start local 2 // java.lang.String algorithm
        start local 3 // long mechanism
         0: .line 72
            aload 0 /* this */
            invokespecial javax.crypto.KeyGeneratorSpi.<init>:()V
         1: .line 73
            aload 0 /* this */
            aload 1 /* token */
            putfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
         2: .line 74
            aload 0 /* this */
            aload 2 /* algorithm */
            putfield sun.security.pkcs11.P11TlsPrfGenerator.algorithm:Ljava/lang/String;
         3: .line 75
            aload 0 /* this */
            lload 3 /* mechanism */
            putfield sun.security.pkcs11.P11TlsPrfGenerator.mechanism:J
         4: .line 76
            return
        end local 3 // long mechanism
        end local 2 // java.lang.String algorithm
        end local 1 // sun.security.pkcs11.Token token
        end local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lsun/security/pkcs11/P11TlsPrfGenerator;
            0    5     1      token  Lsun/security/pkcs11/Token;
            0    5     2  algorithm  Ljava/lang/String;
            0    5     3  mechanism  J
    Exceptions:
      throws sun.security.pkcs11.wrapper.PKCS11Exception
    MethodParameters:
           Name  Flags
      token      
      algorithm  
      mechanism  

  protected void engineInit(java.security.SecureRandom);
    descriptor: (Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
        start local 1 // java.security.SecureRandom random
         0: .line 79
            new java.security.InvalidParameterException
            dup
            ldc "TlsPrfGenerator must be initialized using a TlsPrfParameterSpec"
            invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.security.SecureRandom random
        end local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/security/pkcs11/P11TlsPrfGenerator;
            0    1     1  random  Ljava/security/SecureRandom;
    MethodParameters:
        Name  Flags
      random  

  protected void engineInit(java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
        start local 1 // java.security.spec.AlgorithmParameterSpec params
        start local 2 // java.security.SecureRandom random
         0: .line 84
            aload 1 /* params */
            instanceof sun.security.internal.spec.TlsPrfParameterSpec
            ifne 2
         1: .line 85
            new java.security.InvalidAlgorithmParameterException
            dup
            ldc "TlsPrfGenerator must be initialized using a TlsPrfParameterSpec"
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* params */
            checkcast sun.security.internal.spec.TlsPrfParameterSpec
            putfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
         3: .line 88
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getSecret:()Ljavax/crypto/SecretKey;
            astore 3 /* key */
        start local 3 // javax.crypto.SecretKey key
         4: .line 89
            aload 3 /* key */
            ifnonnull 6
         5: .line 90
            getstatic sun.security.pkcs11.P11TlsPrfGenerator.NULL_KEY:Ljavax/crypto/SecretKey;
            astore 3 /* key */
         6: .line 93
      StackMap locals: javax.crypto.SecretKey
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            aload 3 /* key */
            aconst_null
            invokestatic sun.security.pkcs11.P11SecretKeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
            putfield sun.security.pkcs11.P11TlsPrfGenerator.p11Key:Lsun/security/pkcs11/P11Key;
         7: .line 94
            goto 10
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
         8: astore 4 /* e */
        start local 4 // java.security.InvalidKeyException e
         9: .line 95
            new java.security.InvalidAlgorithmParameterException
            dup
            ldc "init() failed"
            aload 4 /* e */
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.InvalidKeyException e
        10: .line 97
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.crypto.SecretKey key
        end local 2 // java.security.SecureRandom random
        end local 1 // java.security.spec.AlgorithmParameterSpec params
        end local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lsun/security/pkcs11/P11TlsPrfGenerator;
            0   11     1  params  Ljava/security/spec/AlgorithmParameterSpec;
            0   11     2  random  Ljava/security/SecureRandom;
            4   11     3     key  Ljavax/crypto/SecretKey;
            9   10     4       e  Ljava/security/InvalidKeyException;
      Exception table:
        from    to  target  type
           6     7       8  Class java.security.InvalidKeyException
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      params  
      random  

  protected void engineInit(int, java.security.SecureRandom);
    descriptor: (ILjava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
        start local 1 // int keysize
        start local 2 // java.security.SecureRandom random
         0: .line 115
            new java.security.InvalidParameterException
            dup
            ldc "TlsPrfGenerator must be initialized using a TlsPrfParameterSpec"
            invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.security.SecureRandom random
        end local 1 // int keysize
        end local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lsun/security/pkcs11/P11TlsPrfGenerator;
            0    1     1  keysize  I
            0    1     2   random  Ljava/security/SecureRandom;
    MethodParameters:
         Name  Flags
      keysize  
      random   

  protected javax.crypto.SecretKey engineGenerateKey();
    descriptor: ()Ljavax/crypto/SecretKey;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=9, args_size=1
        start local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
         0: .line 119
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            ifnonnull 2
         1: .line 120
            new java.lang.IllegalStateException
            dup
            ldc "TlsPrfGenerator must be initialized"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getSeed:()[B
            astore 1 /* seed */
        start local 1 // byte[] seed
         3: .line 125
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.mechanism:J
            ldc 996
            lcmp
            ifne 35
         4: .line 126
            aconst_null
            astore 2 /* k */
        start local 2 // javax.crypto.SecretKey k
         5: .line 127
            iconst_0
            istore 3 /* ulServerOrClient */
        start local 3 // int ulServerOrClient
         6: .line 128
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getLabel:()Ljava/lang/String;
            ldc "server finished"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 129
            iconst_1
            istore 3 /* ulServerOrClient */
         8: .line 131
      StackMap locals: byte[] javax.crypto.SecretKey int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getLabel:()Ljava/lang/String;
            ldc "client finished"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 132
            iconst_2
            istore 3 /* ulServerOrClient */
        10: .line 135
      StackMap locals:
      StackMap stack:
            iload 3 /* ulServerOrClient */
            ifeq 33
        11: .line 137
            new sun.security.pkcs11.wrapper.CK_TLS_MAC_PARAMS
            dup
        12: .line 138
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getPRFHashAlg:()Ljava/lang/String;
            invokestatic sun.security.pkcs11.wrapper.Functions.getHashMechId:(Ljava/lang/String;)J
        13: .line 139
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getOutputLength:()I
            i2l
            iload 3 /* ulServerOrClient */
            i2l
        14: .line 137
            invokespecial sun.security.pkcs11.wrapper.CK_TLS_MAC_PARAMS.<init>:(JJJ)V
            astore 4 /* params */
        start local 4 // sun.security.pkcs11.wrapper.CK_TLS_MAC_PARAMS params
        15: .line 140
            aconst_null
            astore 5 /* session */
        start local 5 // sun.security.pkcs11.Session session
        16: .line 142
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getOpSession:()Lsun/security/pkcs11/Session;
            astore 5 /* session */
        17: .line 143
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 5 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
        18: .line 144
            new sun.security.pkcs11.wrapper.CK_MECHANISM
            dup
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.mechanism:J
            aload 4 /* params */
            invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(JLsun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS;)V
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.p11Key:Lsun/security/pkcs11/P11Key;
            getfield sun.security.pkcs11.P11Key.keyID:J
        19: .line 143
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
        20: .line 145
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 5 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
            lconst_0
            aload 1 /* seed */
            iconst_0
            aload 1 /* seed */
            arraylength
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignUpdate:(JJ[BII)V
        21: .line 146
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
        22: .line 147
            aload 5 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getOutputLength:()I
        23: .line 146
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignFinal:(JI)[B
            astore 6 /* out */
        start local 6 // byte[] out
        24: .line 148
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 6 /* out */
            ldc "TlsPrf"
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            astore 2 /* k */
        end local 6 // byte[] out
        25: .line 149
            goto 31
      StackMap locals: sun.security.pkcs11.P11TlsPrfGenerator byte[] javax.crypto.SecretKey int sun.security.pkcs11.wrapper.CK_TLS_MAC_PARAMS sun.security.pkcs11.Session
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
        26: astore 6 /* e */
        start local 6 // sun.security.pkcs11.wrapper.PKCS11Exception e
        27: .line 150
            new java.security.ProviderException
            dup
            ldc "Could not calculate PRF"
            aload 6 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // sun.security.pkcs11.wrapper.PKCS11Exception e
        28: .line 151
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        29: .line 152
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            aload 5 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        30: .line 153
            aload 7
            athrow
        31: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            aload 5 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        end local 5 // sun.security.pkcs11.Session session
        end local 4 // sun.security.pkcs11.wrapper.CK_TLS_MAC_PARAMS params
        32: .line 154
            goto 34
        33: .line 155
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            ldc "Only Finished message authentication code generation supported for TLS 1.2."
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 158
      StackMap locals:
      StackMap stack:
            aload 2 /* k */
            areturn
        end local 3 // int ulServerOrClient
        end local 2 // javax.crypto.SecretKey k
        35: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getLabel:()Ljava/lang/String;
            invokestatic sun.security.pkcs11.P11Util.getBytesUTF8:(Ljava/lang/String;)[B
            astore 2 /* label */
        start local 2 // byte[] label
        36: .line 163
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.mechanism:J
            ldc 2147484531
            lcmp
            ifne 55
        37: .line 164
            aconst_null
            astore 3 /* session */
        start local 3 // sun.security.pkcs11.Session session
        38: .line 166
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getOpSession:()Lsun/security/pkcs11/Session;
            astore 3 /* session */
        39: .line 167
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
        40: .line 168
            aload 3 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
            new sun.security.pkcs11.wrapper.CK_MECHANISM
            dup
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.mechanism:J
            invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(J)V
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.p11Key:Lsun/security/pkcs11/P11Key;
            getfield sun.security.pkcs11.P11Key.keyID:J
        41: .line 167
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
        42: .line 169
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 3 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
            lconst_0
            aload 2 /* label */
            iconst_0
            aload 2 /* label */
            arraylength
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignUpdate:(JJ[BII)V
        43: .line 170
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 3 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
            lconst_0
            aload 1 /* seed */
            iconst_0
            aload 1 /* seed */
            arraylength
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignUpdate:(JJ[BII)V
        44: .line 171
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
        45: .line 172
            aload 3 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getOutputLength:()I
        46: .line 171
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignFinal:(JI)[B
            astore 4 /* out */
        start local 4 // byte[] out
        47: .line 173
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 4 /* out */
            ldc "TlsPrf"
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            astore 6
        48: .line 177
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            aload 3 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        49: .line 173
            aload 6
            areturn
        end local 4 // byte[] out
        50: .line 174
      StackMap locals: sun.security.pkcs11.P11TlsPrfGenerator byte[] byte[] sun.security.pkcs11.Session
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
            astore 4 /* e */
        start local 4 // sun.security.pkcs11.wrapper.PKCS11Exception e
        51: .line 175
            new java.security.ProviderException
            dup
            ldc "Could not calculate PRF"
            aload 4 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // sun.security.pkcs11.wrapper.PKCS11Exception e
        52: .line 176
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        53: .line 177
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            aload 3 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        54: .line 178
            aload 5
            athrow
        end local 3 // sun.security.pkcs11.Session session
        55: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.spec:Lsun/security/internal/spec/TlsPrfParameterSpec;
            invokevirtual sun.security.internal.spec.TlsPrfParameterSpec.getOutputLength:()I
            newarray 8
            astore 3 /* out */
        start local 3 // byte[] out
        56: .line 184
            new sun.security.pkcs11.wrapper.CK_TLS_PRF_PARAMS
            dup
            aload 1 /* seed */
            aload 2 /* label */
            aload 3 /* out */
            invokespecial sun.security.pkcs11.wrapper.CK_TLS_PRF_PARAMS.<init>:([B[B[B)V
            astore 4 /* params */
        start local 4 // sun.security.pkcs11.wrapper.CK_TLS_PRF_PARAMS params
        57: .line 186
            aconst_null
            astore 5 /* session */
        start local 5 // sun.security.pkcs11.Session session
        58: .line 188
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getOpSession:()Lsun/security/pkcs11/Session;
            astore 5 /* session */
        59: .line 189
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 5 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
        60: .line 190
            new sun.security.pkcs11.wrapper.CK_MECHANISM
            dup
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.mechanism:J
            aload 4 /* params */
            invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(JLsun/security/pkcs11/wrapper/CK_TLS_PRF_PARAMS;)V
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.p11Key:Lsun/security/pkcs11/P11Key;
            getfield sun.security.pkcs11.P11Key.keyID:J
            aconst_null
        61: .line 189
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DeriveKey:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)J
            pop2
        62: .line 192
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 3 /* out */
            ldc "TlsPrf"
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            astore 8
        63: .line 196
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            aload 5 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        64: .line 192
            aload 8
            areturn
        65: .line 193
      StackMap locals: sun.security.pkcs11.P11TlsPrfGenerator byte[] byte[] byte[] sun.security.pkcs11.wrapper.CK_TLS_PRF_PARAMS sun.security.pkcs11.Session
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
            astore 6 /* e */
        start local 6 // sun.security.pkcs11.wrapper.PKCS11Exception e
        66: .line 194
            new java.security.ProviderException
            dup
            ldc "Could not calculate PRF"
            aload 6 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // sun.security.pkcs11.wrapper.PKCS11Exception e
        67: .line 195
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        68: .line 196
            aload 0 /* this */
            getfield sun.security.pkcs11.P11TlsPrfGenerator.token:Lsun/security/pkcs11/Token;
            aload 5 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        69: .line 197
            aload 7
            athrow
        end local 5 // sun.security.pkcs11.Session session
        end local 4 // sun.security.pkcs11.wrapper.CK_TLS_PRF_PARAMS params
        end local 3 // byte[] out
        end local 2 // byte[] label
        end local 1 // byte[] seed
        end local 0 // sun.security.pkcs11.P11TlsPrfGenerator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   70     0              this  Lsun/security/pkcs11/P11TlsPrfGenerator;
            3   70     1              seed  [B
            5   35     2                 k  Ljavax/crypto/SecretKey;
            6   35     3  ulServerOrClient  I
           15   32     4            params  Lsun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS;
           16   32     5           session  Lsun/security/pkcs11/Session;
           24   25     6               out  [B
           27   28     6                 e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
           36   70     2             label  [B
           38   55     3           session  Lsun/security/pkcs11/Session;
           47   50     4               out  [B
           51   52     4                 e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
           56   70     3               out  [B
           57   70     4            params  Lsun/security/pkcs11/wrapper/CK_TLS_PRF_PARAMS;
           58   70     5           session  Lsun/security/pkcs11/Session;
           66   67     6                 e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
      Exception table:
        from    to  target  type
          16    25      26  Class sun.security.pkcs11.wrapper.PKCS11Exception
          16    28      28  any
          38    48      50  Class sun.security.pkcs11.wrapper.PKCS11Exception
          38    48      52  any
          50    52      52  any
          58    63      65  Class sun.security.pkcs11.wrapper.PKCS11Exception
          58    63      67  any
          65    67      67  any
}
SourceFile: "P11TlsPrfGenerator.java"
NestMembers:
  sun.security.pkcs11.P11TlsPrfGenerator$1
InnerClasses:
  sun.security.pkcs11.P11TlsPrfGenerator$1