public final class sun.security.provider.SHA extends sun.security.provider.DigestBase
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.provider.SHA
super_class: sun.security.provider.DigestBase
{
private int[] W;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int[] state;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private static final int round1_kt;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1518500249
private static final int round2_kt;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1859775393
private static final int round3_kt;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1894007588
private static final int round4_kt;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -899497514
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 // sun.security.provider.SHA this
0: .line 63
aload 0 /* this */
ldc "SHA-1"
bipush 20
bipush 64
invokespecial sun.security.provider.DigestBase.<init>:(Ljava/lang/String;II)V
1: .line 64
aload 0 /* this */
iconst_5
newarray 10
putfield sun.security.provider.SHA.state:[I
2: .line 65
aload 0 /* this */
bipush 80
newarray 10
putfield sun.security.provider.SHA.W:[I
3: .line 66
aload 0 /* this */
invokevirtual sun.security.provider.SHA.resetHashes:()V
4: .line 67
return
end local 0 // sun.security.provider.SHA this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/provider/SHA;
public java.lang.Object clone();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 // sun.security.provider.SHA this
0: .line 73
aload 0 /* this */
invokespecial sun.security.provider.DigestBase.clone:()Ljava/lang/Object;
checkcast sun.security.provider.SHA
astore 1 /* copy */
start local 1 // sun.security.provider.SHA copy
1: .line 74
aload 1 /* copy */
aload 1 /* copy */
getfield sun.security.provider.SHA.state:[I
invokevirtual int[].clone:()Ljava/lang/Object;
checkcast int[]
putfield sun.security.provider.SHA.state:[I
2: .line 75
aload 1 /* copy */
bipush 80
newarray 10
putfield sun.security.provider.SHA.W:[I
3: .line 76
aload 1 /* copy */
areturn
end local 1 // sun.security.provider.SHA copy
end local 0 // sun.security.provider.SHA this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/provider/SHA;
1 4 1 copy Lsun/security/provider/SHA;
Exceptions:
throws java.lang.CloneNotSupportedException
void implReset();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // sun.security.provider.SHA this
0: .line 84
aload 0 /* this */
invokevirtual sun.security.provider.SHA.resetHashes:()V
1: .line 86
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iconst_0
invokestatic java.util.Arrays.fill:([II)V
2: .line 87
return
end local 0 // sun.security.provider.SHA this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/SHA;
private void resetHashes();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.security.provider.SHA this
0: .line 90
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_0
ldc 1732584193
iastore
1: .line 91
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_1
ldc -271733879
iastore
2: .line 92
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_2
ldc -1732584194
iastore
3: .line 93
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_3
ldc 271733878
iastore
4: .line 94
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_4
ldc -1009589776
iastore
5: .line 95
return
end local 0 // sun.security.provider.SHA this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/provider/SHA;
void implDigest(byte[], int);
descriptor: ([BI)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=3
start local 0 // sun.security.provider.SHA this
start local 1 // byte[] out
start local 2 // int ofs
0: .line 101
aload 0 /* this */
getfield sun.security.provider.SHA.bytesProcessed:J
iconst_3
lshl
lstore 3 /* bitsProcessed */
start local 3 // long bitsProcessed
1: .line 103
aload 0 /* this */
getfield sun.security.provider.SHA.bytesProcessed:J
l2i
bipush 63
iand
istore 5 /* index */
start local 5 // int index
2: .line 104
iload 5 /* index */
bipush 56
if_icmpge 3
bipush 56
iload 5 /* index */
isub
goto 4
StackMap locals: long int
StackMap stack:
3: bipush 120
iload 5 /* index */
isub
StackMap locals:
StackMap stack: int
4: istore 6 /* padLen */
start local 6 // int padLen
5: .line 105
aload 0 /* this */
getstatic sun.security.provider.SHA.padding:[B
iconst_0
iload 6 /* padLen */
invokevirtual sun.security.provider.SHA.engineUpdate:([BII)V
6: .line 107
lload 3 /* bitsProcessed */
bipush 32
lushr
l2i
aload 0 /* this */
getfield sun.security.provider.SHA.buffer:[B
bipush 56
invokestatic sun.security.provider.ByteArrayAccess.i2bBig4:(I[BI)V
7: .line 108
lload 3 /* bitsProcessed */
l2i
aload 0 /* this */
getfield sun.security.provider.SHA.buffer:[B
bipush 60
invokestatic sun.security.provider.ByteArrayAccess.i2bBig4:(I[BI)V
8: .line 109
aload 0 /* this */
aload 0 /* this */
getfield sun.security.provider.SHA.buffer:[B
iconst_0
invokevirtual sun.security.provider.SHA.implCompress:([BI)V
9: .line 111
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_0
aload 1 /* out */
iload 2 /* ofs */
bipush 20
invokestatic sun.security.provider.ByteArrayAccess.i2bBig:([II[BII)V
10: .line 112
return
end local 6 // int padLen
end local 5 // int index
end local 3 // long bitsProcessed
end local 2 // int ofs
end local 1 // byte[] out
end local 0 // sun.security.provider.SHA this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/provider/SHA;
0 11 1 out [B
0 11 2 ofs I
1 11 3 bitsProcessed J
2 11 5 index I
5 11 6 padLen I
MethodParameters:
Name Flags
out
ofs
void implCompress(byte[], int);
descriptor: ([BI)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // sun.security.provider.SHA this
start local 1 // byte[] buf
start local 2 // int ofs
0: .line 128
aload 0 /* this */
aload 1 /* buf */
iload 2 /* ofs */
invokevirtual sun.security.provider.SHA.implCompressCheck:([BI)V
1: .line 129
aload 0 /* this */
aload 1 /* buf */
iload 2 /* ofs */
invokevirtual sun.security.provider.SHA.implCompress0:([BI)V
2: .line 130
return
end local 2 // int ofs
end local 1 // byte[] buf
end local 0 // sun.security.provider.SHA this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/SHA;
0 3 1 buf [B
0 3 2 ofs I
MethodParameters:
Name Flags
buf
ofs
private void implCompressCheck(byte[], int);
descriptor: ([BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 // sun.security.provider.SHA this
start local 1 // byte[] buf
start local 2 // int ofs
0: .line 133
aload 1 /* buf */
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: .line 139
aload 1 /* buf */
iload 2 /* ofs */
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
invokestatic sun.security.provider.ByteArrayAccess.b2iBig64:([BI[I)V
2: .line 140
return
end local 2 // int ofs
end local 1 // byte[] buf
end local 0 // sun.security.provider.SHA this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/SHA;
0 3 1 buf [B
0 3 2 ofs I
MethodParameters:
Name Flags
buf
ofs
private void implCompress0(byte[], int);
descriptor: ([BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=3
start local 0 // sun.security.provider.SHA this
start local 1 // byte[] buf
start local 2 // int ofs
0: .line 150
bipush 16
istore 3 /* t */
start local 3 // int t
1: goto 5
2: .line 151
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iload 3 /* t */
iconst_3
isub
iaload
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iload 3 /* t */
bipush 8
isub
iaload
ixor
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iload 3 /* t */
bipush 14
isub
iaload
ixor
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iload 3 /* t */
bipush 16
isub
iaload
ixor
istore 4 /* temp */
start local 4 // int temp
3: .line 152
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iload 3 /* t */
iload 4 /* temp */
iconst_1
ishl
iload 4 /* temp */
bipush 31
iushr
ior
iastore
end local 4 // int temp
4: .line 150
iinc 3 /* t */ 1
StackMap locals:
StackMap stack:
5: iload 3 /* t */
bipush 79
if_icmple 2
end local 3 // int t
6: .line 155
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_0
iaload
istore 3 /* a */
start local 3 // int a
7: .line 156
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_1
iaload
istore 4 /* b */
start local 4 // int b
8: .line 157
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_2
iaload
istore 5 /* c */
start local 5 // int c
9: .line 158
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_3
iaload
istore 6 /* d */
start local 6 // int d
10: .line 159
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_4
iaload
istore 7 /* e */
start local 7 // int e
11: .line 162
iconst_0
istore 8 /* i */
start local 8 // int i
12: goto 28
13: .line 163
StackMap locals: sun.security.provider.SHA byte[] int int int int int int int
StackMap stack:
iload 3 /* a */
iconst_5
ishl
iload 3 /* a */
bipush 27
iushr
ior
14: .line 164
iload 4 /* b */
iload 5 /* c */
iand
iload 4 /* b */
iconst_m1
ixor
iload 6 /* d */
iand
ior
15: .line 163
iadd
16: .line 164
iload 7 /* e */
17: .line 163
iadd
18: .line 164
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iload 8 /* i */
iaload
19: .line 163
iadd
20: .line 164
ldc 1518500249
21: .line 163
iadd
istore 9 /* temp */
start local 9 // int temp
22: .line 165
iload 6 /* d */
istore 7 /* e */
23: .line 166
iload 5 /* c */
istore 6 /* d */
24: .line 167
iload 4 /* b */
bipush 30
ishl
iload 4 /* b */
iconst_2
iushr
ior
istore 5 /* c */
25: .line 168
iload 3 /* a */
istore 4 /* b */
26: .line 169
iload 9 /* temp */
istore 3 /* a */
end local 9 // int temp
27: .line 162
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
28: iload 8 /* i */
bipush 20
if_icmplt 13
end local 8 // int i
29: .line 173
bipush 20
istore 8 /* i */
start local 8 // int i
30: goto 46
31: .line 174
StackMap locals:
StackMap stack:
iload 3 /* a */
iconst_5
ishl
iload 3 /* a */
bipush 27
iushr
ior
32: .line 175
iload 4 /* b */
iload 5 /* c */
ixor
iload 6 /* d */
ixor
33: .line 174
iadd
34: .line 175
iload 7 /* e */
35: .line 174
iadd
36: .line 175
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iload 8 /* i */
iaload
37: .line 174
iadd
38: .line 175
ldc 1859775393
39: .line 174
iadd
istore 9 /* temp */
start local 9 // int temp
40: .line 176
iload 6 /* d */
istore 7 /* e */
41: .line 177
iload 5 /* c */
istore 6 /* d */
42: .line 178
iload 4 /* b */
bipush 30
ishl
iload 4 /* b */
iconst_2
iushr
ior
istore 5 /* c */
43: .line 179
iload 3 /* a */
istore 4 /* b */
44: .line 180
iload 9 /* temp */
istore 3 /* a */
end local 9 // int temp
45: .line 173
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
46: iload 8 /* i */
bipush 40
if_icmplt 31
end local 8 // int i
47: .line 184
bipush 40
istore 8 /* i */
start local 8 // int i
48: goto 64
49: .line 185
StackMap locals:
StackMap stack:
iload 3 /* a */
iconst_5
ishl
iload 3 /* a */
bipush 27
iushr
ior
50: .line 186
iload 4 /* b */
iload 5 /* c */
iand
iload 4 /* b */
iload 6 /* d */
iand
ior
iload 5 /* c */
iload 6 /* d */
iand
ior
51: .line 185
iadd
52: .line 186
iload 7 /* e */
53: .line 185
iadd
54: .line 186
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iload 8 /* i */
iaload
55: .line 185
iadd
56: .line 186
ldc -1894007588
57: .line 185
iadd
istore 9 /* temp */
start local 9 // int temp
58: .line 187
iload 6 /* d */
istore 7 /* e */
59: .line 188
iload 5 /* c */
istore 6 /* d */
60: .line 189
iload 4 /* b */
bipush 30
ishl
iload 4 /* b */
iconst_2
iushr
ior
istore 5 /* c */
61: .line 190
iload 3 /* a */
istore 4 /* b */
62: .line 191
iload 9 /* temp */
istore 3 /* a */
end local 9 // int temp
63: .line 184
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
64: iload 8 /* i */
bipush 60
if_icmplt 49
end local 8 // int i
65: .line 195
bipush 60
istore 8 /* i */
start local 8 // int i
66: goto 82
67: .line 196
StackMap locals:
StackMap stack:
iload 3 /* a */
iconst_5
ishl
iload 3 /* a */
bipush 27
iushr
ior
68: .line 197
iload 4 /* b */
iload 5 /* c */
ixor
iload 6 /* d */
ixor
69: .line 196
iadd
70: .line 197
iload 7 /* e */
71: .line 196
iadd
72: .line 197
aload 0 /* this */
getfield sun.security.provider.SHA.W:[I
iload 8 /* i */
iaload
73: .line 196
iadd
74: .line 197
ldc -899497514
75: .line 196
iadd
istore 9 /* temp */
start local 9 // int temp
76: .line 198
iload 6 /* d */
istore 7 /* e */
77: .line 199
iload 5 /* c */
istore 6 /* d */
78: .line 200
iload 4 /* b */
bipush 30
ishl
iload 4 /* b */
iconst_2
iushr
ior
istore 5 /* c */
79: .line 201
iload 3 /* a */
istore 4 /* b */
80: .line 202
iload 9 /* temp */
istore 3 /* a */
end local 9 // int temp
81: .line 195
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
82: iload 8 /* i */
bipush 80
if_icmplt 67
end local 8 // int i
83: .line 204
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_0
dup2
iaload
iload 3 /* a */
iadd
iastore
84: .line 205
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_1
dup2
iaload
iload 4 /* b */
iadd
iastore
85: .line 206
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_2
dup2
iaload
iload 5 /* c */
iadd
iastore
86: .line 207
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_3
dup2
iaload
iload 6 /* d */
iadd
iastore
87: .line 208
aload 0 /* this */
getfield sun.security.provider.SHA.state:[I
iconst_4
dup2
iaload
iload 7 /* e */
iadd
iastore
88: .line 209
return
end local 7 // int e
end local 6 // int d
end local 5 // int c
end local 4 // int b
end local 3 // int a
end local 2 // int ofs
end local 1 // byte[] buf
end local 0 // sun.security.provider.SHA this
LocalVariableTable:
Start End Slot Name Signature
0 89 0 this Lsun/security/provider/SHA;
0 89 1 buf [B
0 89 2 ofs I
1 6 3 t I
3 4 4 temp I
7 89 3 a I
8 89 4 b I
9 89 5 c I
10 89 6 d I
11 89 7 e I
12 29 8 i I
22 27 9 temp I
30 47 8 i I
40 45 9 temp I
48 65 8 i I
58 63 9 temp I
66 83 8 i I
76 81 9 temp I
MethodParameters:
Name Flags
buf
ofs
}
SourceFile: "SHA.java"