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 0: aload 0
aload 1
putfield sun.security.ssl.Authenticator$MacImpl.this$0:Lsun/security/ssl/Authenticator;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
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: aload 0
aconst_null
putfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
3: return
end local 0 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 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield sun.security.ssl.Authenticator$MacImpl.this$0:Lsun/security/ssl/Authenticator;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 3
ifnonnull 4
3: new java.lang.RuntimeException
dup
ldc "Null MacAlg"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
4: 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
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
start local 5 7: invokestatic sun.security.ssl.Authenticator$MacImpl.$SWITCH_TABLE$sun$security$ssl$CipherSuite$MacAlg:()[I
aload 3
invokevirtual sun.security.ssl.CipherSuite$MacAlg.ordinal:()I
iaload
tableswitch { // 2 - 5
2: 8
3: 12
4: 16
5: 18
default: 20
}
8: StackMap locals: int
StackMap stack:
iload 5
ifeq 9
ldc "SslMacMD5"
goto 10
StackMap locals:
StackMap stack:
9: ldc "HmacMD5"
StackMap locals:
StackMap stack: java.lang.String
10: astore 6
start local 6 11: goto 21
end local 6 12: StackMap locals:
StackMap stack:
iload 5
ifeq 13
ldc "SslMacSHA1"
goto 14
StackMap locals:
StackMap stack:
13: ldc "HmacSHA1"
StackMap locals:
StackMap stack: java.lang.String
14: astore 6
start local 6 15: goto 21
end local 6 16: StackMap locals:
StackMap stack:
ldc "HmacSHA256"
astore 6
start local 6 17: goto 21
end local 6 18: StackMap locals:
StackMap stack:
ldc "HmacSHA384"
astore 6
start local 6 19: goto 21
end local 6 20: 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
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 21: StackMap locals: java.lang.String
StackMap stack:
aload 6
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 7
start local 7 22: aload 7
aload 4
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
23: aload 0
aload 3
putfield sun.security.ssl.Authenticator$MacImpl.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
24: aload 0
aload 7
putfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
25: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 0 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 0: aload 0
getfield sun.security.ssl.Authenticator$MacImpl.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
areturn
end local 0 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 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield sun.security.ssl.Authenticator$MacImpl.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
getfield sun.security.ssl.CipherSuite$MacAlg.size:I
ifne 2
1: iconst_0
newarray 8
areturn
2: StackMap locals:
StackMap stack:
iload 4
ifne 6
3: aload 0
getfield sun.security.ssl.Authenticator$MacImpl.this$0:Lsun/security/ssl/Authenticator;
iload 1
aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 3
invokevirtual sun.security.ssl.Authenticator.acquireAuthenticationBytes:(BI[B)[B
4: astore 5
start local 5 5: aload 0
getfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
aload 5
invokevirtual javax.crypto.Mac.update:([B)V
end local 5 6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
aload 2
invokevirtual javax.crypto.Mac.update:(Ljava/nio/ByteBuffer;)V
7: aload 0
getfield sun.security.ssl.Authenticator$MacImpl.mac:Ljavax/crypto/Mac;
invokevirtual javax.crypto.Mac.doFinal:()[B
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 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: 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