public class org.bouncycastle.crypto.digests.MD2Digest implements org.bouncycastle.crypto.ExtendedDigest, org.bouncycastle.util.Memoable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.digests.MD2Digest
super_class: java.lang.Object
{
private static final int DIGEST_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private byte[] X;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int xOff;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] M;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int mOff;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] C;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int COff;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final byte[] S;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: .line 200
sipush 256
newarray 8
dup
iconst_0
1: .line 201
bipush 41
bastore
dup
iconst_1
bipush 46
bastore
dup
iconst_2
bipush 67
bastore
dup
iconst_3
bipush -55
bastore
dup
iconst_4
bipush -94
bastore
dup
iconst_5
bipush -40
bastore
dup
bipush 6
bipush 124
bastore
dup
bipush 7
2: .line 202
iconst_1
bastore
dup
bipush 8
bipush 61
bastore
dup
bipush 9
bipush 54
bastore
dup
bipush 10
bipush 84
bastore
dup
bipush 11
bipush -95
bastore
dup
bipush 12
bipush -20
bastore
dup
bipush 13
bipush -16
bastore
dup
bipush 14
3: .line 203
bipush 6
bastore
dup
bipush 15
bipush 19
bastore
dup
bipush 16
bipush 98
bastore
dup
bipush 17
bipush -89
bastore
dup
bipush 18
iconst_5
bastore
dup
bipush 19
bipush -13
bastore
dup
bipush 20
bipush -64
bastore
dup
bipush 21
4: .line 204
bipush -57
bastore
dup
bipush 22
bipush 115
bastore
dup
bipush 23
bipush -116
bastore
dup
bipush 24
bipush -104
bastore
dup
bipush 25
bipush -109
bastore
dup
bipush 26
bipush 43
bastore
dup
bipush 27
bipush -39
bastore
dup
bipush 28
5: .line 205
bipush -68
bastore
dup
bipush 29
bipush 76
bastore
dup
bipush 30
bipush -126
bastore
dup
bipush 31
bipush -54
bastore
dup
bipush 32
bipush 30
bastore
dup
bipush 33
bipush -101
bastore
dup
bipush 34
bipush 87
bastore
dup
bipush 35
6: .line 206
bipush 60
bastore
dup
bipush 36
bipush -3
bastore
dup
bipush 37
bipush -44
bastore
dup
bipush 38
bipush -32
bastore
dup
bipush 39
bipush 22
bastore
dup
bipush 40
bipush 103
bastore
dup
bipush 41
bipush 66
bastore
dup
bipush 42
7: .line 207
bipush 111
bastore
dup
bipush 43
bipush 24
bastore
dup
bipush 44
bipush -118
bastore
dup
bipush 45
bipush 23
bastore
dup
bipush 46
bipush -27
bastore
dup
bipush 47
bipush 18
bastore
dup
bipush 48
bipush -66
bastore
dup
bipush 49
8: .line 208
bipush 78
bastore
dup
bipush 50
bipush -60
bastore
dup
bipush 51
bipush -42
bastore
dup
bipush 52
bipush -38
bastore
dup
bipush 53
bipush -98
bastore
dup
bipush 54
bipush -34
bastore
dup
bipush 55
bipush 73
bastore
dup
bipush 56
9: .line 209
bipush -96
bastore
dup
bipush 57
bipush -5
bastore
dup
bipush 58
bipush -11
bastore
dup
bipush 59
bipush -114
bastore
dup
bipush 60
bipush -69
bastore
dup
bipush 61
bipush 47
bastore
dup
bipush 62
bipush -18
bastore
dup
bipush 63
10: .line 210
bipush 122
bastore
dup
bipush 64
bipush -87
bastore
dup
bipush 65
bipush 104
bastore
dup
bipush 66
bipush 121
bastore
dup
bipush 67
bipush -111
bastore
dup
bipush 68
bipush 21
bastore
dup
bipush 69
bipush -78
bastore
dup
bipush 70
11: .line 211
bipush 7
bastore
dup
bipush 71
bipush 63
bastore
dup
bipush 72
bipush -108
bastore
dup
bipush 73
bipush -62
bastore
dup
bipush 74
bipush 16
bastore
dup
bipush 75
bipush -119
bastore
dup
bipush 76
bipush 11
bastore
dup
bipush 77
12: .line 212
bipush 34
bastore
dup
bipush 78
bipush 95
bastore
dup
bipush 79
bipush 33
bastore
dup
bipush 80
bipush -128
bastore
dup
bipush 81
bipush 127
bastore
dup
bipush 82
bipush 93
bastore
dup
bipush 83
bipush -102
bastore
dup
bipush 84
13: .line 213
bipush 90
bastore
dup
bipush 85
bipush -112
bastore
dup
bipush 86
bipush 50
bastore
dup
bipush 87
bipush 39
bastore
dup
bipush 88
bipush 53
bastore
dup
bipush 89
bipush 62
bastore
dup
bipush 90
bipush -52
bastore
dup
bipush 91
14: .line 214
bipush -25
bastore
dup
bipush 92
bipush -65
bastore
dup
bipush 93
bipush -9
bastore
dup
bipush 94
bipush -105
bastore
dup
bipush 95
iconst_3
bastore
dup
bipush 96
iconst_m1
bastore
dup
bipush 97
bipush 25
bastore
dup
bipush 98
15: .line 215
bipush 48
bastore
dup
bipush 99
bipush -77
bastore
dup
bipush 100
bipush 72
bastore
dup
bipush 101
bipush -91
bastore
dup
bipush 102
bipush -75
bastore
dup
bipush 103
bipush -47
bastore
dup
bipush 104
bipush -41
bastore
dup
bipush 105
16: .line 216
bipush 94
bastore
dup
bipush 106
bipush -110
bastore
dup
bipush 107
bipush 42
bastore
dup
bipush 108
bipush -84
bastore
dup
bipush 109
bipush 86
bastore
dup
bipush 110
bipush -86
bastore
dup
bipush 111
bipush -58
bastore
dup
bipush 112
17: .line 217
bipush 79
bastore
dup
bipush 113
bipush -72
bastore
dup
bipush 114
bipush 56
bastore
dup
bipush 115
bipush -46
bastore
dup
bipush 116
bipush -106
bastore
dup
bipush 117
bipush -92
bastore
dup
bipush 118
bipush 125
bastore
dup
bipush 119
18: .line 218
bipush -74
bastore
dup
bipush 120
bipush 118
bastore
dup
bipush 121
bipush -4
bastore
dup
bipush 122
bipush 107
bastore
dup
bipush 123
bipush -30
bastore
dup
bipush 124
bipush -100
bastore
dup
bipush 125
bipush 116
bastore
dup
bipush 126
19: .line 219
iconst_4
bastore
dup
bipush 127
bipush -15
bastore
dup
sipush 128
bipush 69
bastore
dup
sipush 129
bipush -99
bastore
dup
sipush 130
bipush 112
bastore
dup
sipush 131
bipush 89
bastore
dup
sipush 132
bipush 100
bastore
dup
sipush 133
20: .line 220
bipush 113
bastore
dup
sipush 134
bipush -121
bastore
dup
sipush 135
bipush 32
bastore
dup
sipush 136
bipush -122
bastore
dup
sipush 137
bipush 91
bastore
dup
sipush 138
bipush -49
bastore
dup
sipush 139
bipush 101
bastore
dup
sipush 140
21: .line 221
bipush -26
bastore
dup
sipush 141
bipush 45
bastore
dup
sipush 142
bipush -88
bastore
dup
sipush 143
iconst_2
bastore
dup
sipush 144
bipush 27
bastore
dup
sipush 145
bipush 96
bastore
dup
sipush 146
bipush 37
bastore
dup
sipush 147
22: .line 222
bipush -83
bastore
dup
sipush 148
bipush -82
bastore
dup
sipush 149
bipush -80
bastore
dup
sipush 150
bipush -71
bastore
dup
sipush 151
bipush -10
bastore
dup
sipush 152
bipush 28
bastore
dup
sipush 153
bipush 70
bastore
dup
sipush 154
23: .line 223
bipush 97
bastore
dup
sipush 155
bipush 105
bastore
dup
sipush 156
bipush 52
bastore
dup
sipush 157
bipush 64
bastore
dup
sipush 158
bipush 126
bastore
dup
sipush 159
bipush 15
bastore
dup
sipush 160
bipush 85
bastore
dup
sipush 161
24: .line 224
bipush 71
bastore
dup
sipush 162
bipush -93
bastore
dup
sipush 163
bipush 35
bastore
dup
sipush 164
bipush -35
bastore
dup
sipush 165
bipush 81
bastore
dup
sipush 166
bipush -81
bastore
dup
sipush 167
bipush 58
bastore
dup
sipush 168
25: .line 225
bipush -61
bastore
dup
sipush 169
bipush 92
bastore
dup
sipush 170
bipush -7
bastore
dup
sipush 171
bipush -50
bastore
dup
sipush 172
bipush -70
bastore
dup
sipush 173
bipush -59
bastore
dup
sipush 174
bipush -22
bastore
dup
sipush 175
26: .line 226
bipush 38
bastore
dup
sipush 176
bipush 44
bastore
dup
sipush 177
bipush 83
bastore
dup
sipush 178
bipush 13
bastore
dup
sipush 179
bipush 110
bastore
dup
sipush 180
bipush -123
bastore
dup
sipush 181
bipush 40
bastore
dup
sipush 182
27: .line 227
bipush -124
bastore
dup
sipush 183
bipush 9
bastore
dup
sipush 184
bipush -45
bastore
dup
sipush 185
bipush -33
bastore
dup
sipush 186
bipush -51
bastore
dup
sipush 187
bipush -12
bastore
dup
sipush 188
bipush 65
bastore
dup
sipush 189
28: .line 228
bipush -127
bastore
dup
sipush 190
bipush 77
bastore
dup
sipush 191
bipush 82
bastore
dup
sipush 192
bipush 106
bastore
dup
sipush 193
bipush -36
bastore
dup
sipush 194
bipush 55
bastore
dup
sipush 195
bipush -56
bastore
dup
sipush 196
29: .line 229
bipush 108
bastore
dup
sipush 197
bipush -63
bastore
dup
sipush 198
bipush -85
bastore
dup
sipush 199
bipush -6
bastore
dup
sipush 200
bipush 36
bastore
dup
sipush 201
bipush -31
bastore
dup
sipush 202
bipush 123
bastore
dup
sipush 203
30: .line 230
bipush 8
bastore
dup
sipush 204
bipush 12
bastore
dup
sipush 205
bipush -67
bastore
dup
sipush 206
bipush -79
bastore
dup
sipush 207
bipush 74
bastore
dup
sipush 208
bipush 120
bastore
dup
sipush 209
bipush -120
bastore
dup
sipush 210
31: .line 231
bipush -107
bastore
dup
sipush 211
bipush -117
bastore
dup
sipush 212
bipush -29
bastore
dup
sipush 213
bipush 99
bastore
dup
sipush 214
bipush -24
bastore
dup
sipush 215
bipush 109
bastore
dup
sipush 216
bipush -23
bastore
dup
sipush 217
32: .line 232
bipush -53
bastore
dup
sipush 218
bipush -43
bastore
dup
sipush 219
bipush -2
bastore
dup
sipush 220
bipush 59
bastore
dup
sipush 222
bipush 29
bastore
dup
sipush 223
bipush 57
bastore
dup
sipush 224
33: .line 233
bipush -14
bastore
dup
sipush 225
bipush -17
bastore
dup
sipush 226
bipush -73
bastore
dup
sipush 227
bipush 14
bastore
dup
sipush 228
bipush 102
bastore
dup
sipush 229
bipush 88
bastore
dup
sipush 230
bipush -48
bastore
dup
sipush 231
34: .line 234
bipush -28
bastore
dup
sipush 232
bipush -90
bastore
dup
sipush 233
bipush 119
bastore
dup
sipush 234
bipush 114
bastore
dup
sipush 235
bipush -8
bastore
dup
sipush 236
bipush -21
bastore
dup
sipush 237
bipush 117
bastore
dup
sipush 238
35: .line 235
bipush 75
bastore
dup
sipush 239
bipush 10
bastore
dup
sipush 240
bipush 49
bastore
dup
sipush 241
bipush 68
bastore
dup
sipush 242
bipush 80
bastore
dup
sipush 243
bipush -76
bastore
dup
sipush 244
bipush -113
bastore
dup
sipush 245
36: .line 236
bipush -19
bastore
dup
sipush 246
bipush 31
bastore
dup
sipush 247
bipush 26
bastore
dup
sipush 248
bipush -37
bastore
dup
sipush 249
bipush -103
bastore
dup
sipush 250
bipush -115
bastore
dup
sipush 251
bipush 51
bastore
dup
sipush 252
37: .line 237
bipush -97
bastore
dup
sipush 253
bipush 17
bastore
dup
sipush 254
bipush -125
bastore
dup
sipush 255
bipush 20
bastore
38: .line 200
putstatic org.bouncycastle.crypto.digests.MD2Digest.S:[B
39: .line 238
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
0: .line 25
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 16
aload 0 /* this */
bipush 48
newarray 8
putfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
2: .line 19
aload 0 /* this */
bipush 16
newarray 8
putfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
3: .line 22
aload 0 /* this */
bipush 16
newarray 8
putfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
4: .line 27
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.reset:()V
5: .line 28
return
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
public void <init>(org.bouncycastle.crypto.digests.MD2Digest);
descriptor: (Lorg/bouncycastle/crypto/digests/MD2Digest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
start local 1 // org.bouncycastle.crypto.digests.MD2Digest t
0: .line 30
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 16
aload 0 /* this */
bipush 48
newarray 8
putfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
2: .line 19
aload 0 /* this */
bipush 16
newarray 8
putfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
3: .line 22
aload 0 /* this */
bipush 16
newarray 8
putfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
4: .line 32
aload 0 /* this */
aload 1 /* t */
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.copyIn:(Lorg/bouncycastle/crypto/digests/MD2Digest;)V
5: .line 33
return
end local 1 // org.bouncycastle.crypto.digests.MD2Digest t
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
0 6 1 t Lorg/bouncycastle/crypto/digests/MD2Digest;
MethodParameters:
Name Flags
t
private void copyIn(org.bouncycastle.crypto.digests.MD2Digest);
descriptor: (Lorg/bouncycastle/crypto/digests/MD2Digest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
start local 1 // org.bouncycastle.crypto.digests.MD2Digest t
0: .line 37
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
iconst_0
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
iconst_0
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
1: .line 38
aload 0 /* this */
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.MD2Digest.xOff:I
putfield org.bouncycastle.crypto.digests.MD2Digest.xOff:I
2: .line 39
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
iconst_0
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
iconst_0
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: .line 40
aload 0 /* this */
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
putfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
4: .line 41
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
iconst_0
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
iconst_0
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 42
aload 0 /* this */
aload 1 /* t */
getfield org.bouncycastle.crypto.digests.MD2Digest.COff:I
putfield org.bouncycastle.crypto.digests.MD2Digest.COff:I
6: .line 43
return
end local 1 // org.bouncycastle.crypto.digests.MD2Digest t
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
0 7 1 t Lorg/bouncycastle/crypto/digests/MD2Digest;
MethodParameters:
Name Flags
t
public java.lang.String getAlgorithmName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
0: .line 52
ldc "MD2"
areturn
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
public int getDigestSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
0: .line 61
bipush 16
ireturn
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
public int doFinal(byte[], int);
descriptor: ([BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
start local 1 // byte[] out
start local 2 // int outOff
0: .line 73
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
arraylength
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
isub
i2b
istore 3 /* paddingByte */
start local 3 // byte paddingByte
1: .line 74
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
istore 4 /* i */
start local 4 // int i
2: goto 5
3: .line 76
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
iload 4 /* i */
iload 3 /* paddingByte */
bastore
4: .line 74
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 4 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
arraylength
if_icmplt 3
end local 4 // int i
6: .line 79
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processCheckSum:([B)V
7: .line 81
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processBlock:([B)V
8: .line 83
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processBlock:([B)V
9: .line 85
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.xOff:I
aload 1 /* out */
iload 2 /* outOff */
bipush 16
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: .line 87
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.reset:()V
11: .line 89
bipush 16
ireturn
end local 3 // byte paddingByte
end local 2 // int outOff
end local 1 // byte[] out
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
0 12 1 out [B
0 12 2 outOff I
1 12 3 paddingByte B
2 6 4 i I
MethodParameters:
Name Flags
out
outOff
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
0: .line 96
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.digests.MD2Digest.xOff:I
1: .line 97
iconst_0
istore 1 /* i */
start local 1 // int i
2: goto 5
3: .line 99
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
iload 1 /* i */
iconst_0
bastore
4: .line 97
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 1 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
arraylength
if_icmpne 3
end local 1 // int i
6: .line 101
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
7: .line 102
iconst_0
istore 1 /* i */
start local 1 // int i
8: goto 11
9: .line 104
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
iload 1 /* i */
iconst_0
bastore
10: .line 102
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
11: iload 1 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
arraylength
if_icmpne 9
end local 1 // int i
12: .line 106
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.digests.MD2Digest.COff:I
13: .line 107
iconst_0
istore 1 /* i */
start local 1 // int i
14: goto 17
15: .line 109
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
iload 1 /* i */
iconst_0
bastore
16: .line 107
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
17: iload 1 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
arraylength
if_icmpne 15
end local 1 // int i
18: .line 111
return
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
2 6 1 i I
8 12 1 i I
14 18 1 i I
public void update(byte);
descriptor: (B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
start local 1 // byte in
0: .line 119
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
dup_x1
iconst_1
iadd
putfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
iload 1 /* in */
bastore
1: .line 121
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
bipush 16
if_icmpne 5
2: .line 123
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processCheckSum:([B)V
3: .line 124
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processBlock:([B)V
4: .line 125
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
5: .line 127
StackMap locals:
StackMap stack:
return
end local 1 // byte in
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
0 6 1 in B
MethodParameters:
Name Flags
in
public void update(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
start local 1 // byte[] in
start local 2 // int inOff
start local 3 // int len
0: .line 141
goto 4
1: .line 143
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
baload
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.update:(B)V
2: .line 144
iinc 2 /* inOff */ 1
3: .line 145
iinc 3 /* len */ -1
4: .line 141
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
ifeq 11
iload 3 /* len */
ifgt 1
5: .line 151
goto 11
6: .line 153
StackMap locals:
StackMap stack:
aload 1 /* in */
iload 2 /* inOff */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
iconst_0
bipush 16
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: .line 154
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processCheckSum:([B)V
8: .line 155
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processBlock:([B)V
9: .line 156
iinc 3 /* len */ -16
10: .line 157
iinc 2 /* inOff */ 16
11: .line 151
StackMap locals:
StackMap stack:
iload 3 /* len */
bipush 16
if_icmpgt 6
12: .line 163
goto 16
13: .line 165
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
baload
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.update:(B)V
14: .line 166
iinc 2 /* inOff */ 1
15: .line 167
iinc 3 /* len */ -1
16: .line 163
StackMap locals:
StackMap stack:
iload 3 /* len */
ifgt 13
17: .line 169
return
end local 3 // int len
end local 2 // int inOff
end local 1 // byte[] in
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
0 18 1 in [B
0 18 2 inOff I
0 18 3 len I
MethodParameters:
Name Flags
in
inOff
len
protected void processCheckSum(byte[]);
descriptor: ([B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=4, args_size=2
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
start local 1 // byte[] m
0: .line 172
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
bipush 15
baload
istore 2 /* L */
start local 2 // int L
1: .line 173
iconst_0
istore 3 /* i */
start local 3 // int i
2: goto 6
3: .line 175
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
iload 3 /* i */
dup2
baload
getstatic org.bouncycastle.crypto.digests.MD2Digest.S:[B
aload 1 /* m */
iload 3 /* i */
baload
iload 2 /* L */
ixor
sipush 255
iand
baload
ixor
i2b
bastore
4: .line 176
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
iload 3 /* i */
baload
istore 2 /* L */
5: .line 173
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 3 /* i */
bipush 16
if_icmplt 3
end local 3 // int i
7: .line 178
return
end local 2 // int L
end local 1 // byte[] m
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
0 8 1 m [B
1 8 2 L I
2 7 3 i I
MethodParameters:
Name Flags
m
protected void processBlock(byte[]);
descriptor: ([B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=2
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
start local 1 // byte[] m
0: .line 181
iconst_0
istore 2 /* i */
start local 2 // int i
1: goto 5
2: .line 183
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
iload 2 /* i */
bipush 16
iadd
aload 1 /* m */
iload 2 /* i */
baload
bastore
3: .line 184
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
iload 2 /* i */
bipush 32
iadd
aload 1 /* m */
iload 2 /* i */
baload
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
iload 2 /* i */
baload
ixor
i2b
bastore
4: .line 181
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 2 /* i */
bipush 16
if_icmplt 2
end local 2 // int i
6: .line 187
iconst_0
istore 2 /* t */
start local 2 // int t
7: .line 189
iconst_0
istore 3 /* j */
start local 3 // int j
8: goto 17
9: .line 191
StackMap locals: int
StackMap stack:
iconst_0
istore 4 /* k */
start local 4 // int k
10: goto 14
11: .line 193
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
iload 4 /* k */
dup2
baload
getstatic org.bouncycastle.crypto.digests.MD2Digest.S:[B
iload 2 /* t */
baload
ixor
i2b
dup_x2
bastore
istore 2 /* t */
12: .line 194
iload 2 /* t */
sipush 255
iand
istore 2 /* t */
13: .line 191
iinc 4 /* k */ 1
StackMap locals:
StackMap stack:
14: iload 4 /* k */
bipush 48
if_icmplt 11
end local 4 // int k
15: .line 196
iload 2 /* t */
iload 3 /* j */
iadd
sipush 256
irem
istore 2 /* t */
16: .line 189
iinc 3 /* j */ 1
StackMap locals:
StackMap stack:
17: iload 3 /* j */
bipush 18
if_icmplt 9
end local 3 // int j
18: .line 198
return
end local 2 // int t
end local 1 // byte[] m
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
0 19 1 m [B
1 6 2 i I
7 19 2 t I
8 18 3 j I
10 15 4 k I
MethodParameters:
Name Flags
m
public int getByteLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
0: .line 242
bipush 16
ireturn
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
public org.bouncycastle.util.Memoable copy();
descriptor: ()Lorg/bouncycastle/util/Memoable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
0: .line 247
new org.bouncycastle.crypto.digests.MD2Digest
dup
aload 0 /* this */
invokespecial org.bouncycastle.crypto.digests.MD2Digest.<init>:(Lorg/bouncycastle/crypto/digests/MD2Digest;)V
areturn
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
public void reset(org.bouncycastle.util.Memoable);
descriptor: (Lorg/bouncycastle/util/Memoable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
start local 1 // org.bouncycastle.util.Memoable other
0: .line 252
aload 1 /* other */
checkcast org.bouncycastle.crypto.digests.MD2Digest
astore 2 /* d */
start local 2 // org.bouncycastle.crypto.digests.MD2Digest d
1: .line 254
aload 0 /* this */
aload 2 /* d */
invokevirtual org.bouncycastle.crypto.digests.MD2Digest.copyIn:(Lorg/bouncycastle/crypto/digests/MD2Digest;)V
2: .line 255
return
end local 2 // org.bouncycastle.crypto.digests.MD2Digest d
end local 1 // org.bouncycastle.util.Memoable other
end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/digests/MD2Digest;
0 3 1 other Lorg/bouncycastle/util/Memoable;
1 3 2 d Lorg/bouncycastle/crypto/digests/MD2Digest;
MethodParameters:
Name Flags
other
}
SourceFile: "MD2Digest.java"