class sun.security.ssl.Authenticator$MacImpl implements sun.security.ssl.Authenticator$MAC
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.security.ssl.Authenticator$MacImpl
  super_class: java.lang.Object
{
  private final sun.security.ssl.CipherSuite$MacAlg macAlg;
    descriptor: Lsun/security/ssl/CipherSuite$MacAlg;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.crypto.Mac mac;
    descriptor: Ljavax/crypto/Mac;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final sun.security.ssl.Authenticator this$0;
    descriptor: Lsun/security/ssl/Authenticator;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$sun$security$ssl$CipherSuite$MacAlg;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private void <init>(sun.security.ssl.Authenticator);
    descriptor: (Lsun/security/ssl/Authenticator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.Authenticator$MacImpl this
         0: .line 316
            aload 0 /* this */
            aload 1
            putfield sun.security.ssl.Authenticator$MacImpl.this$0:Lsun/security/ssl/Authenticator;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 317
            aload 0 /* this */
            getstatic sun.security.ssl.CipherSuite$MacAlg.M_NULL:Lsun/security/ssl/CipherSuite$MacAlg;
            putfield sun.security.ssl.Authenticator$MacImpl.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
         2: .line 318
            aload 0 /* this */
            aconst_null
            putfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
         3: .line 319
            return
        end local 0 // sun.security.ssl.Authenticator$MacImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ssl/Authenticator$MacImpl;
    MethodParameters:
        Name  Flags
      this$0  final

  private void <init>(sun.security.ssl.Authenticator, sun.security.ssl.ProtocolVersion, sun.security.ssl.CipherSuite$MacAlg, javax.crypto.SecretKey);
    descriptor: (Lsun/security/ssl/Authenticator;Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite$MacAlg;Ljavax/crypto/SecretKey;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // sun.security.ssl.Authenticator$MacImpl this
        start local 2 // sun.security.ssl.ProtocolVersion protocolVersion
        start local 3 // sun.security.ssl.CipherSuite$MacAlg macAlg
        start local 4 // javax.crypto.SecretKey key
         0: .line 323
            aload 0 /* this */
            aload 1
            putfield sun.security.ssl.Authenticator$MacImpl.this$0:Lsun/security/ssl/Authenticator;
         1: .line 321
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 324
            aload 3 /* macAlg */
            ifnonnull 4
         3: .line 325
            new java.lang.RuntimeException
            dup
            ldc "Null MacAlg"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 329
      StackMap locals: sun.security.ssl.Authenticator$MacImpl sun.security.ssl.Authenticator sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite$MacAlg javax.crypto.SecretKey
      StackMap stack:
            aload 2 /* protocolVersion */
            getfield sun.security.ssl.ProtocolVersion.id:I
            getstatic sun.security.ssl.ProtocolVersion.TLS10:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.id:I
            if_icmpge 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* useSSLMac */
        start local 5 // boolean useSSLMac
         7: .line 331
            invokestatic sun.security.ssl.Authenticator$MacImpl.$SWITCH_TABLE$sun$security$ssl$CipherSuite$MacAlg:()[I
            aload 3 /* macAlg */
            invokevirtual sun.security.ssl.CipherSuite$MacAlg.ordinal:()I
            iaload
            tableswitch { // 2 - 5
                    2: 8
                    3: 12
                    4: 16
                    5: 18
              default: 20
          }
         8: .line 333
      StackMap locals: int
      StackMap stack:
            iload 5 /* useSSLMac */
            ifeq 9
            ldc "SslMacMD5"
            goto 10
      StackMap locals:
      StackMap stack:
         9: ldc "HmacMD5"
      StackMap locals:
      StackMap stack: java.lang.String
        10: astore 6 /* algorithm */
        start local 6 // java.lang.String algorithm
        11: .line 334
            goto 21
        end local 6 // java.lang.String algorithm
        12: .line 336
      StackMap locals:
      StackMap stack:
            iload 5 /* useSSLMac */
            ifeq 13
            ldc "SslMacSHA1"
            goto 14
      StackMap locals:
      StackMap stack:
        13: ldc "HmacSHA1"
      StackMap locals:
      StackMap stack: java.lang.String
        14: astore 6 /* algorithm */
        start local 6 // java.lang.String algorithm
        15: .line 337
            goto 21
        end local 6 // java.lang.String algorithm
        16: .line 339
      StackMap locals:
      StackMap stack:
            ldc "HmacSHA256"
            astore 6 /* algorithm */
        start local 6 // java.lang.String algorithm
        17: .line 340
            goto 21
        end local 6 // java.lang.String algorithm
        18: .line 342
      StackMap locals:
      StackMap stack:
            ldc "HmacSHA384"
            astore 6 /* algorithm */
        start local 6 // java.lang.String algorithm
        19: .line 343
            goto 21
        end local 6 // java.lang.String algorithm
        20: .line 345
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown MacAlg "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* macAlg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        start local 6 // java.lang.String algorithm
        21: .line 348
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* algorithm */
            invokestatic sun.security.ssl.JsseJce.getMac:(Ljava/lang/String;)Ljavax/crypto/Mac;
            astore 7 /* m */
        start local 7 // javax.crypto.Mac m
        22: .line 349
            aload 7 /* m */
            aload 4 /* key */
            invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
        23: .line 350
            aload 0 /* this */
            aload 3 /* macAlg */
            putfield sun.security.ssl.Authenticator$MacImpl.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
        24: .line 351
            aload 0 /* this */
            aload 7 /* m */
            putfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
        25: .line 352
            return
        end local 7 // javax.crypto.Mac m
        end local 6 // java.lang.String algorithm
        end local 5 // boolean useSSLMac
        end local 4 // javax.crypto.SecretKey key
        end local 3 // sun.security.ssl.CipherSuite$MacAlg macAlg
        end local 2 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 0 // sun.security.ssl.Authenticator$MacImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0             this  Lsun/security/ssl/Authenticator$MacImpl;
            0   26     2  protocolVersion  Lsun/security/ssl/ProtocolVersion;
            0   26     3           macAlg  Lsun/security/ssl/CipherSuite$MacAlg;
            0   26     4              key  Ljavax/crypto/SecretKey;
            7   26     5        useSSLMac  Z
           11   12     6        algorithm  Ljava/lang/String;
           15   16     6        algorithm  Ljava/lang/String;
           17   18     6        algorithm  Ljava/lang/String;
           19   20     6        algorithm  Ljava/lang/String;
           21   26     6        algorithm  Ljava/lang/String;
           22   26     7                m  Ljavax/crypto/Mac;
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    MethodParameters:
                 Name  Flags
      this$0           final
      protocolVersion  
      macAlg           
      key              

  public sun.security.ssl.CipherSuite$MacAlg macAlg();
    descriptor: ()Lsun/security/ssl/CipherSuite$MacAlg;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.Authenticator$MacImpl this
         0: .line 356
            aload 0 /* this */
            getfield sun.security.ssl.Authenticator$MacImpl.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
            areturn
        end local 0 // sun.security.ssl.Authenticator$MacImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/Authenticator$MacImpl;

  public byte[] compute(byte, java.nio.ByteBuffer, byte[], boolean);
    descriptor: (BLjava/nio/ByteBuffer;[BZ)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // sun.security.ssl.Authenticator$MacImpl this
        start local 1 // byte type
        start local 2 // java.nio.ByteBuffer bb
        start local 3 // byte[] sequence
        start local 4 // boolean isSimulated
         0: .line 363
            aload 0 /* this */
            getfield sun.security.ssl.Authenticator$MacImpl.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
            getfield sun.security.ssl.CipherSuite$MacAlg.size:I
            ifne 2
         1: .line 364
            iconst_0
            newarray 8
            areturn
         2: .line 367
      StackMap locals:
      StackMap stack:
            iload 4 /* isSimulated */
            ifne 6
         3: .line 370
            aload 0 /* this */
            getfield sun.security.ssl.Authenticator$MacImpl.this$0:Lsun/security/ssl/Authenticator;
            iload 1 /* type */
            aload 2 /* bb */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            aload 3 /* sequence */
            invokevirtual sun.security.ssl.Authenticator.acquireAuthenticationBytes:(BI[B)[B
         4: .line 369
            astore 5 /* additional */
        start local 5 // byte[] additional
         5: .line 371
            aload 0 /* this */
            getfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
            aload 5 /* additional */
            invokevirtual javax.crypto.Mac.update:([B)V
        end local 5 // byte[] additional
         6: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
            aload 2 /* bb */
            invokevirtual javax.crypto.Mac.update:(Ljava/nio/ByteBuffer;)V
         7: .line 375
            aload 0 /* this */
            getfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
            invokevirtual javax.crypto.Mac.doFinal:()[B
            areturn
        end local 4 // boolean isSimulated
        end local 3 // byte[] sequence
        end local 2 // java.nio.ByteBuffer bb
        end local 1 // byte type
        end local 0 // sun.security.ssl.Authenticator$MacImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lsun/security/ssl/Authenticator$MacImpl;
            0    8     1         type  B
            0    8     2           bb  Ljava/nio/ByteBuffer;
            0    8     3     sequence  [B
            0    8     4  isSimulated  Z
            5    6     5   additional  [B
    MethodParameters:
             Name  Flags
      type         
      bb           
      sequence     
      isSimulated  

  static int[] $SWITCH_TABLE$sun$security$ssl$CipherSuite$MacAlg();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 309
            getstatic sun.security.ssl.Authenticator$MacImpl.$SWITCH_TABLE$sun$security$ssl$CipherSuite$MacAlg:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic sun.security.ssl.CipherSuite$MacAlg.values:()[Lsun/security/ssl/CipherSuite$MacAlg;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic sun.security.ssl.CipherSuite$MacAlg.M_MD5:Lsun/security/ssl/CipherSuite$MacAlg;
            invokevirtual sun.security.ssl.CipherSuite$MacAlg.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic sun.security.ssl.CipherSuite$MacAlg.M_NULL:Lsun/security/ssl/CipherSuite$MacAlg;
            invokevirtual sun.security.ssl.CipherSuite$MacAlg.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic sun.security.ssl.CipherSuite$MacAlg.M_SHA:Lsun/security/ssl/CipherSuite$MacAlg;
            invokevirtual sun.security.ssl.CipherSuite$MacAlg.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic sun.security.ssl.CipherSuite$MacAlg.M_SHA256:Lsun/security/ssl/CipherSuite$MacAlg;
            invokevirtual sun.security.ssl.CipherSuite$MacAlg.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic sun.security.ssl.CipherSuite$MacAlg.M_SHA384:Lsun/security/ssl/CipherSuite$MacAlg;
            invokevirtual sun.security.ssl.CipherSuite$MacAlg.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic sun.security.ssl.Authenticator$MacImpl.$SWITCH_TABLE$sun$security$ssl$CipherSuite$MacAlg:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "Authenticator.java"
NestHost: sun.security.ssl.Authenticator
InnerClasses:
  abstract MAC = sun.security.ssl.Authenticator$MAC of sun.security.ssl.Authenticator
  private MacImpl = sun.security.ssl.Authenticator$MacImpl of sun.security.ssl.Authenticator
  final MacAlg = sun.security.ssl.CipherSuite$MacAlg of sun.security.ssl.CipherSuite