public final class sun.security.krb5.internal.crypto.Des
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.krb5.internal.crypto.Des
super_class: java.lang.Object
{
private static final java.lang.String CHARSET;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long[] bad_keys;
descriptor: [J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] good_parity;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: .line 58
new sun.security.action.GetPropertyAction
dup
ldc "sun.security.krb5.msinterop.des.s2kcharset"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
1: .line 57
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
2: .line 56
putstatic sun.security.krb5.internal.crypto.Des.CHARSET:Ljava/lang/String;
3: .line 60
bipush 16
newarray 11
dup
iconst_0
4: .line 61
ldc 72340172838076673
lastore
dup
iconst_1
ldc -72340172838076674
lastore
dup
iconst_2
5: .line 62
ldc 2242545357980376863
lastore
dup
iconst_3
ldc -2242545357980376864
lastore
dup
iconst_4
6: .line 63
ldc 143554428589179390
lastore
dup
iconst_5
ldc -143554428589179391
lastore
dup
bipush 6
7: .line 64
ldc 2296870857142767345
lastore
dup
bipush 7
ldc -2296870857142767346
lastore
dup
bipush 8
8: .line 65
ldc 135110050437988849
lastore
dup
bipush 9
ldc -2305315235293957887
lastore
dup
bipush 10
9: .line 66
ldc 2305315235293957886
lastore
dup
bipush 11
ldc -135110050437988850
lastore
dup
bipush 12
10: .line 67
ldc 80784550989267214
lastore
dup
bipush 13
ldc 2234100979542855169
lastore
dup
bipush 14
11: .line 68
ldc -2234100979542855170
lastore
dup
bipush 15
ldc -80784550989267215
lastore
12: .line 60
putstatic sun.security.krb5.internal.crypto.Des.bad_keys:[J
13: .line 71
sipush 256
newarray 8
dup
iconst_0
14: .line 72
iconst_1
bastore
dup
iconst_1
iconst_1
bastore
dup
iconst_2
iconst_2
bastore
dup
iconst_3
iconst_2
bastore
dup
iconst_4
iconst_4
bastore
dup
iconst_5
iconst_4
bastore
dup
bipush 6
bipush 7
bastore
dup
bipush 7
bipush 7
bastore
dup
bipush 8
15: .line 73
bipush 8
bastore
dup
bipush 9
bipush 8
bastore
dup
bipush 10
bipush 11
bastore
dup
bipush 11
bipush 11
bastore
dup
bipush 12
bipush 13
bastore
dup
bipush 13
bipush 13
bastore
dup
bipush 14
bipush 14
bastore
dup
bipush 15
bipush 14
bastore
dup
bipush 16
16: .line 74
bipush 16
bastore
dup
bipush 17
bipush 16
bastore
dup
bipush 18
bipush 19
bastore
dup
bipush 19
bipush 19
bastore
dup
bipush 20
bipush 21
bastore
dup
bipush 21
bipush 21
bastore
dup
bipush 22
bipush 22
bastore
dup
bipush 23
bipush 22
bastore
dup
bipush 24
17: .line 75
bipush 25
bastore
dup
bipush 25
bipush 25
bastore
dup
bipush 26
bipush 26
bastore
dup
bipush 27
bipush 26
bastore
dup
bipush 28
bipush 28
bastore
dup
bipush 29
bipush 28
bastore
dup
bipush 30
bipush 31
bastore
dup
bipush 31
bipush 31
bastore
dup
bipush 32
18: .line 76
bipush 32
bastore
dup
bipush 33
bipush 32
bastore
dup
bipush 34
bipush 35
bastore
dup
bipush 35
bipush 35
bastore
dup
bipush 36
bipush 37
bastore
dup
bipush 37
bipush 37
bastore
dup
bipush 38
bipush 38
bastore
dup
bipush 39
bipush 38
bastore
dup
bipush 40
19: .line 77
bipush 41
bastore
dup
bipush 41
bipush 41
bastore
dup
bipush 42
bipush 42
bastore
dup
bipush 43
bipush 42
bastore
dup
bipush 44
bipush 44
bastore
dup
bipush 45
bipush 44
bastore
dup
bipush 46
bipush 47
bastore
dup
bipush 47
bipush 47
bastore
dup
bipush 48
20: .line 78
bipush 49
bastore
dup
bipush 49
bipush 49
bastore
dup
bipush 50
bipush 50
bastore
dup
bipush 51
bipush 50
bastore
dup
bipush 52
bipush 52
bastore
dup
bipush 53
bipush 52
bastore
dup
bipush 54
bipush 55
bastore
dup
bipush 55
bipush 55
bastore
dup
bipush 56
21: .line 79
bipush 56
bastore
dup
bipush 57
bipush 56
bastore
dup
bipush 58
bipush 59
bastore
dup
bipush 59
bipush 59
bastore
dup
bipush 60
bipush 61
bastore
dup
bipush 61
bipush 61
bastore
dup
bipush 62
bipush 62
bastore
dup
bipush 63
bipush 62
bastore
dup
bipush 64
22: .line 80
bipush 64
bastore
dup
bipush 65
bipush 64
bastore
dup
bipush 66
bipush 67
bastore
dup
bipush 67
bipush 67
bastore
dup
bipush 68
bipush 69
bastore
dup
bipush 69
bipush 69
bastore
dup
bipush 70
bipush 70
bastore
dup
bipush 71
bipush 70
bastore
dup
bipush 72
23: .line 81
bipush 73
bastore
dup
bipush 73
bipush 73
bastore
dup
bipush 74
bipush 74
bastore
dup
bipush 75
bipush 74
bastore
dup
bipush 76
bipush 76
bastore
dup
bipush 77
bipush 76
bastore
dup
bipush 78
bipush 79
bastore
dup
bipush 79
bipush 79
bastore
dup
bipush 80
24: .line 82
bipush 81
bastore
dup
bipush 81
bipush 81
bastore
dup
bipush 82
bipush 82
bastore
dup
bipush 83
bipush 82
bastore
dup
bipush 84
bipush 84
bastore
dup
bipush 85
bipush 84
bastore
dup
bipush 86
bipush 87
bastore
dup
bipush 87
bipush 87
bastore
dup
bipush 88
25: .line 83
bipush 88
bastore
dup
bipush 89
bipush 88
bastore
dup
bipush 90
bipush 91
bastore
dup
bipush 91
bipush 91
bastore
dup
bipush 92
bipush 93
bastore
dup
bipush 93
bipush 93
bastore
dup
bipush 94
bipush 94
bastore
dup
bipush 95
bipush 94
bastore
dup
bipush 96
26: .line 84
bipush 97
bastore
dup
bipush 97
bipush 97
bastore
dup
bipush 98
bipush 98
bastore
dup
bipush 99
bipush 98
bastore
dup
bipush 100
bipush 100
bastore
dup
bipush 101
bipush 100
bastore
dup
bipush 102
bipush 103
bastore
dup
bipush 103
bipush 103
bastore
dup
bipush 104
27: .line 85
bipush 104
bastore
dup
bipush 105
bipush 104
bastore
dup
bipush 106
bipush 107
bastore
dup
bipush 107
bipush 107
bastore
dup
bipush 108
bipush 109
bastore
dup
bipush 109
bipush 109
bastore
dup
bipush 110
bipush 110
bastore
dup
bipush 111
bipush 110
bastore
dup
bipush 112
28: .line 86
bipush 112
bastore
dup
bipush 113
bipush 112
bastore
dup
bipush 114
bipush 115
bastore
dup
bipush 115
bipush 115
bastore
dup
bipush 116
bipush 117
bastore
dup
bipush 117
bipush 117
bastore
dup
bipush 118
bipush 118
bastore
dup
bipush 119
bipush 118
bastore
dup
bipush 120
29: .line 87
bipush 121
bastore
dup
bipush 121
bipush 121
bastore
dup
bipush 122
bipush 122
bastore
dup
bipush 123
bipush 122
bastore
dup
bipush 124
bipush 124
bastore
dup
bipush 125
bipush 124
bastore
dup
bipush 126
bipush 127
bastore
dup
bipush 127
bipush 127
bastore
dup
sipush 128
30: .line 88
bipush -128
bastore
dup
sipush 129
bipush -128
bastore
dup
sipush 130
bipush -125
bastore
dup
sipush 131
bipush -125
bastore
dup
sipush 132
31: .line 89
bipush -123
bastore
dup
sipush 133
bipush -123
bastore
dup
sipush 134
bipush -122
bastore
dup
sipush 135
bipush -122
bastore
dup
sipush 136
32: .line 90
bipush -119
bastore
dup
sipush 137
bipush -119
bastore
dup
sipush 138
bipush -118
bastore
dup
sipush 139
bipush -118
bastore
dup
sipush 140
33: .line 91
bipush -116
bastore
dup
sipush 141
bipush -116
bastore
dup
sipush 142
bipush -113
bastore
dup
sipush 143
bipush -113
bastore
dup
sipush 144
34: .line 92
bipush -111
bastore
dup
sipush 145
bipush -111
bastore
dup
sipush 146
bipush -110
bastore
dup
sipush 147
bipush -110
bastore
dup
sipush 148
35: .line 93
bipush -108
bastore
dup
sipush 149
bipush -108
bastore
dup
sipush 150
bipush -105
bastore
dup
sipush 151
bipush -105
bastore
dup
sipush 152
36: .line 94
bipush -104
bastore
dup
sipush 153
bipush -104
bastore
dup
sipush 154
bipush -101
bastore
dup
sipush 155
bipush -101
bastore
dup
sipush 156
37: .line 95
bipush -99
bastore
dup
sipush 157
bipush -99
bastore
dup
sipush 158
bipush -98
bastore
dup
sipush 159
bipush -98
bastore
dup
sipush 160
38: .line 96
bipush -95
bastore
dup
sipush 161
bipush -95
bastore
dup
sipush 162
bipush -94
bastore
dup
sipush 163
bipush -94
bastore
dup
sipush 164
39: .line 97
bipush -92
bastore
dup
sipush 165
bipush -92
bastore
dup
sipush 166
bipush -89
bastore
dup
sipush 167
bipush -89
bastore
dup
sipush 168
40: .line 98
bipush -88
bastore
dup
sipush 169
bipush -88
bastore
dup
sipush 170
bipush -85
bastore
dup
sipush 171
bipush -85
bastore
dup
sipush 172
41: .line 99
bipush -83
bastore
dup
sipush 173
bipush -83
bastore
dup
sipush 174
bipush -82
bastore
dup
sipush 175
bipush -82
bastore
dup
sipush 176
42: .line 100
bipush -80
bastore
dup
sipush 177
bipush -80
bastore
dup
sipush 178
bipush -77
bastore
dup
sipush 179
bipush -77
bastore
dup
sipush 180
43: .line 101
bipush -75
bastore
dup
sipush 181
bipush -75
bastore
dup
sipush 182
bipush -74
bastore
dup
sipush 183
bipush -74
bastore
dup
sipush 184
44: .line 102
bipush -71
bastore
dup
sipush 185
bipush -71
bastore
dup
sipush 186
bipush -70
bastore
dup
sipush 187
bipush -70
bastore
dup
sipush 188
45: .line 103
bipush -68
bastore
dup
sipush 189
bipush -68
bastore
dup
sipush 190
bipush -65
bastore
dup
sipush 191
bipush -65
bastore
dup
sipush 192
46: .line 104
bipush -63
bastore
dup
sipush 193
bipush -63
bastore
dup
sipush 194
bipush -62
bastore
dup
sipush 195
bipush -62
bastore
dup
sipush 196
47: .line 105
bipush -60
bastore
dup
sipush 197
bipush -60
bastore
dup
sipush 198
bipush -57
bastore
dup
sipush 199
bipush -57
bastore
dup
sipush 200
48: .line 106
bipush -56
bastore
dup
sipush 201
bipush -56
bastore
dup
sipush 202
bipush -53
bastore
dup
sipush 203
bipush -53
bastore
dup
sipush 204
49: .line 107
bipush -51
bastore
dup
sipush 205
bipush -51
bastore
dup
sipush 206
bipush -50
bastore
dup
sipush 207
bipush -50
bastore
dup
sipush 208
50: .line 108
bipush -48
bastore
dup
sipush 209
bipush -48
bastore
dup
sipush 210
bipush -45
bastore
dup
sipush 211
bipush -45
bastore
dup
sipush 212
51: .line 109
bipush -43
bastore
dup
sipush 213
bipush -43
bastore
dup
sipush 214
bipush -42
bastore
dup
sipush 215
bipush -42
bastore
dup
sipush 216
52: .line 110
bipush -39
bastore
dup
sipush 217
bipush -39
bastore
dup
sipush 218
bipush -38
bastore
dup
sipush 219
bipush -38
bastore
dup
sipush 220
53: .line 111
bipush -36
bastore
dup
sipush 221
bipush -36
bastore
dup
sipush 222
bipush -33
bastore
dup
sipush 223
bipush -33
bastore
dup
sipush 224
54: .line 112
bipush -32
bastore
dup
sipush 225
bipush -32
bastore
dup
sipush 226
bipush -29
bastore
dup
sipush 227
bipush -29
bastore
dup
sipush 228
55: .line 113
bipush -27
bastore
dup
sipush 229
bipush -27
bastore
dup
sipush 230
bipush -26
bastore
dup
sipush 231
bipush -26
bastore
dup
sipush 232
56: .line 114
bipush -23
bastore
dup
sipush 233
bipush -23
bastore
dup
sipush 234
bipush -22
bastore
dup
sipush 235
bipush -22
bastore
dup
sipush 236
57: .line 115
bipush -20
bastore
dup
sipush 237
bipush -20
bastore
dup
sipush 238
bipush -17
bastore
dup
sipush 239
bipush -17
bastore
dup
sipush 240
58: .line 116
bipush -15
bastore
dup
sipush 241
bipush -15
bastore
dup
sipush 242
bipush -14
bastore
dup
sipush 243
bipush -14
bastore
dup
sipush 244
59: .line 117
bipush -12
bastore
dup
sipush 245
bipush -12
bastore
dup
sipush 246
bipush -9
bastore
dup
sipush 247
bipush -9
bastore
dup
sipush 248
60: .line 118
bipush -8
bastore
dup
sipush 249
bipush -8
bastore
dup
sipush 250
bipush -5
bastore
dup
sipush 251
bipush -5
bastore
dup
sipush 252
61: .line 119
bipush -3
bastore
dup
sipush 253
bipush -3
bastore
dup
sipush 254
bipush -2
bastore
dup
sipush 255
bipush -2
bastore
62: .line 71
putstatic sun.security.krb5.internal.crypto.Des.good_parity:[B
63: .line 120
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.krb5.internal.crypto.Des this
0: .line 43
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // sun.security.krb5.internal.crypto.Des this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/crypto/Des;
public static final byte[] set_parity(byte[]);
descriptor: ([B)[B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Code:
stack=5, locals=2, args_size=1
start local 0 // byte[] key
0: .line 123
iconst_0
istore 1 /* i */
start local 1 // int i
1: goto 4
2: .line 124
StackMap locals: int
StackMap stack:
aload 0 /* key */
iload 1 /* i */
getstatic sun.security.krb5.internal.crypto.Des.good_parity:[B
aload 0 /* key */
iload 1 /* i */
baload
sipush 255
iand
baload
bastore
3: .line 123
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 1 /* i */
bipush 8
if_icmplt 2
end local 1 // int i
5: .line 126
aload 0 /* key */
areturn
end local 0 // byte[] key
LocalVariableTable:
Start End Slot Name Signature
0 6 0 key [B
1 5 1 i I
MethodParameters:
Name Flags
key
public static final long set_parity(long);
descriptor: (J)J
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 // long key
0: .line 130
lload 0 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J)[B
invokestatic sun.security.krb5.internal.crypto.Des.set_parity:([B)[B
invokestatic sun.security.krb5.internal.crypto.Des.octet2long:([B)J
lreturn
end local 0 // long key
LocalVariableTable:
Start End Slot Name Signature
0 1 0 key J
MethodParameters:
Name Flags
key
public static final boolean bad_key(long);
descriptor: (J)Z
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=1
start local 0 // long key
0: .line 134
iconst_0
istore 2 /* i */
start local 2 // int i
1: goto 5
2: .line 135
StackMap locals: int
StackMap stack:
getstatic sun.security.krb5.internal.crypto.Des.bad_keys:[J
iload 2 /* i */
laload
lload 0 /* key */
lcmp
ifne 4
3: .line 136
iconst_1
ireturn
4: .line 134
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 2 /* i */
getstatic sun.security.krb5.internal.crypto.Des.bad_keys:[J
arraylength
if_icmplt 2
end local 2 // int i
6: .line 139
iconst_0
ireturn
end local 0 // long key
LocalVariableTable:
Start End Slot Name Signature
0 7 0 key J
1 6 2 i I
MethodParameters:
Name Flags
key
public static final boolean bad_key(byte[]);
descriptor: ([B)Z
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 // byte[] key
0: .line 143
aload 0 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.octet2long:([B)J
invokestatic sun.security.krb5.internal.crypto.Des.bad_key:(J)Z
ireturn
end local 0 // byte[] key
LocalVariableTable:
Start End Slot Name Signature
0 1 0 key [B
MethodParameters:
Name Flags
key
public static long octet2long(byte[]);
descriptor: ([B)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // byte[] input
0: .line 147
aload 0 /* input */
iconst_0
invokestatic sun.security.krb5.internal.crypto.Des.octet2long:([BI)J
lreturn
end local 0 // byte[] input
LocalVariableTable:
Start End Slot Name Signature
0 1 0 input [B
MethodParameters:
Name Flags
input
public static long octet2long(byte[], int);
descriptor: ([BI)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=2
start local 0 // byte[] input
start local 1 // int offset
0: .line 151
lconst_0
lstore 2 /* result */
start local 2 // long result
1: .line 152
iconst_0
istore 4 /* i */
start local 4 // int i
2: goto 6
3: .line 153
StackMap locals: long int
StackMap stack:
iload 4 /* i */
iload 1 /* offset */
iadd
aload 0 /* input */
arraylength
if_icmpge 5
4: .line 154
lload 2 /* result */
aload 0 /* input */
iload 4 /* i */
iload 1 /* offset */
iadd
baload
i2l
ldc 255
land
bipush 7
iload 4 /* i */
isub
bipush 8
imul
lshl
lor
lstore 2 /* result */
5: .line 152
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 4 /* i */
bipush 8
if_icmplt 3
end local 4 // int i
7: .line 157
lload 2 /* result */
lreturn
end local 2 // long result
end local 1 // int offset
end local 0 // byte[] input
LocalVariableTable:
Start End Slot Name Signature
0 8 0 input [B
0 8 1 offset I
1 8 2 result J
2 7 4 i I
MethodParameters:
Name Flags
input
offset
public static byte[] long2octet(long);
descriptor: (J)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 // long input
0: .line 161
bipush 8
newarray 8
astore 2 /* output */
start local 2 // byte[] output
1: .line 162
iconst_0
istore 3 /* i */
start local 3 // int i
2: goto 5
3: .line 163
StackMap locals: byte[] int
StackMap stack:
aload 2 /* output */
iload 3 /* i */
lload 0 /* input */
bipush 7
iload 3 /* i */
isub
bipush 8
imul
lushr
ldc 255
land
l2i
i2b
bastore
4: .line 162
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 3 /* i */
bipush 8
if_icmplt 3
end local 3 // int i
6: .line 165
aload 2 /* output */
areturn
end local 2 // byte[] output
end local 0 // long input
LocalVariableTable:
Start End Slot Name Signature
0 7 0 input J
1 7 2 output [B
2 6 3 i I
MethodParameters:
Name Flags
input
public static void long2octet(long, byte[]);
descriptor: (J[B)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 // long input
start local 2 // byte[] output
0: .line 169
lload 0 /* input */
aload 2 /* output */
iconst_0
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J[BI)V
1: .line 170
return
end local 2 // byte[] output
end local 0 // long input
LocalVariableTable:
Start End Slot Name Signature
0 2 0 input J
0 2 2 output [B
MethodParameters:
Name Flags
input
output
public static void long2octet(long, byte[], int);
descriptor: (J[BI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=3
start local 0 // long input
start local 2 // byte[] output
start local 3 // int offset
0: .line 173
iconst_0
istore 4 /* i */
start local 4 // int i
1: goto 7
2: .line 174
StackMap locals: int
StackMap stack:
iload 4 /* i */
iload 3 /* offset */
iadd
aload 2 /* output */
arraylength
if_icmpge 6
3: .line 175
aload 2 /* output */
iload 4 /* i */
iload 3 /* offset */
iadd
4: .line 176
lload 0 /* input */
bipush 7
iload 4 /* i */
isub
bipush 8
imul
lushr
ldc 255
land
l2i
i2b
5: .line 175
bastore
6: .line 173
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 4 /* i */
bipush 8
if_icmplt 2
end local 4 // int i
8: .line 179
return
end local 3 // int offset
end local 2 // byte[] output
end local 0 // long input
LocalVariableTable:
Start End Slot Name Signature
0 9 0 input J
0 9 2 output [B
0 9 3 offset I
1 8 4 i I
MethodParameters:
Name Flags
input
output
offset
public static void cbc_encrypt(byte[], byte[], byte[], byte[], boolean);
descriptor: ([B[B[B[BZ)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=5
start local 0 // byte[] input
start local 1 // byte[] output
start local 2 // byte[] key
start local 3 // byte[] ivec
start local 4 // boolean encrypt
0: .line 197
aconst_null
astore 5 /* cipher */
start local 5 // javax.crypto.Cipher cipher
1: .line 200
ldc "DES/CBC/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 5 /* cipher */
2: .line 201
goto 9
StackMap locals: byte[] byte[] byte[] byte[] int javax.crypto.Cipher
StackMap stack: java.security.GeneralSecurityException
3: astore 6 /* e */
start local 6 // java.security.GeneralSecurityException e
4: .line 202
new sun.security.krb5.KrbCryptoException
dup
new java.lang.StringBuilder
dup
ldc "JCE provider may not be installed. "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: .line 203
aload 6 /* e */
invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: .line 202
invokespecial sun.security.krb5.KrbCryptoException.<init>:(Ljava/lang/String;)V
astore 7 /* ke */
start local 7 // sun.security.krb5.KrbCryptoException ke
7: .line 204
aload 7 /* ke */
aload 6 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
8: .line 205
aload 7 /* ke */
athrow
end local 7 // sun.security.krb5.KrbCryptoException ke
end local 6 // java.security.GeneralSecurityException e
9: .line 207
StackMap locals:
StackMap stack:
new javax.crypto.spec.IvParameterSpec
dup
aload 3 /* ivec */
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 6 /* params */
start local 6 // javax.crypto.spec.IvParameterSpec params
10: .line 208
new javax.crypto.spec.SecretKeySpec
dup
aload 2 /* key */
ldc "DES"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 7 /* skSpec */
start local 7 // javax.crypto.spec.SecretKeySpec skSpec
11: .line 210
ldc "DES"
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
pop
12: .line 212
aload 7 /* skSpec */
astore 8 /* sk */
start local 8 // javax.crypto.SecretKey sk
13: .line 213
iload 4 /* encrypt */
ifeq 15
14: .line 214
aload 5 /* cipher */
iconst_1
aload 8 /* sk */
aload 6 /* params */
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
goto 16
15: .line 216
StackMap locals: javax.crypto.spec.IvParameterSpec javax.crypto.spec.SecretKeySpec javax.crypto.SecretKey
StackMap stack:
aload 5 /* cipher */
iconst_2
aload 8 /* sk */
aload 6 /* params */
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
16: .line 218
StackMap locals:
StackMap stack:
aload 5 /* cipher */
aload 0 /* input */
invokevirtual javax.crypto.Cipher.doFinal:([B)[B
astore 9 /* result */
start local 9 // byte[] result
17: .line 219
aload 9 /* result */
iconst_0
aload 1 /* output */
iconst_0
aload 9 /* result */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 9 // byte[] result
end local 8 // javax.crypto.SecretKey sk
18: .line 220
goto 23
StackMap locals: byte[] byte[] byte[] byte[] int javax.crypto.Cipher javax.crypto.spec.IvParameterSpec javax.crypto.spec.SecretKeySpec
StackMap stack: java.security.GeneralSecurityException
19: astore 8 /* e */
start local 8 // java.security.GeneralSecurityException e
20: .line 221
new sun.security.krb5.KrbCryptoException
dup
aload 8 /* e */
invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
invokespecial sun.security.krb5.KrbCryptoException.<init>:(Ljava/lang/String;)V
astore 9 /* ke */
start local 9 // sun.security.krb5.KrbCryptoException ke
21: .line 222
aload 9 /* ke */
aload 8 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
22: .line 223
aload 9 /* ke */
athrow
end local 9 // sun.security.krb5.KrbCryptoException ke
end local 8 // java.security.GeneralSecurityException e
23: .line 225
StackMap locals:
StackMap stack:
return
end local 7 // javax.crypto.spec.SecretKeySpec skSpec
end local 6 // javax.crypto.spec.IvParameterSpec params
end local 5 // javax.crypto.Cipher cipher
end local 4 // boolean encrypt
end local 3 // byte[] ivec
end local 2 // byte[] key
end local 1 // byte[] output
end local 0 // byte[] input
LocalVariableTable:
Start End Slot Name Signature
0 24 0 input [B
0 24 1 output [B
0 24 2 key [B
0 24 3 ivec [B
0 24 4 encrypt Z
1 24 5 cipher Ljavax/crypto/Cipher;
4 9 6 e Ljava/security/GeneralSecurityException;
7 9 7 ke Lsun/security/krb5/KrbCryptoException;
10 24 6 params Ljavax/crypto/spec/IvParameterSpec;
11 24 7 skSpec Ljavax/crypto/spec/SecretKeySpec;
13 18 8 sk Ljavax/crypto/SecretKey;
17 18 9 result [B
20 23 8 e Ljava/security/GeneralSecurityException;
21 23 9 ke Lsun/security/krb5/KrbCryptoException;
Exception table:
from to target type
1 2 3 Class java.security.GeneralSecurityException
11 18 19 Class java.security.GeneralSecurityException
Exceptions:
throws sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
input
output
key
ivec
encrypt
public static long char_to_key(char[]);
descriptor: ([C)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=13, args_size=1
start local 0 // char[] passwdChars
0: .line 235
lconst_0
lstore 1 /* key */
start local 1 // long key
1: .line 237
aconst_null
astore 7 /* cbytes */
start local 7 // byte[] cbytes
2: .line 241
getstatic sun.security.krb5.internal.crypto.Des.CHARSET:Ljava/lang/String;
ifnonnull 5
3: .line 242
new java.lang.String
dup
aload 0 /* passwdChars */
invokespecial java.lang.String.<init>:([C)V
invokevirtual java.lang.String.getBytes:()[B
astore 7 /* cbytes */
4: .line 243
goto 14
5: .line 244
StackMap locals: char[] long top top top top byte[]
StackMap stack:
new java.lang.String
dup
aload 0 /* passwdChars */
invokespecial java.lang.String.<init>:([C)V
getstatic sun.security.krb5.internal.crypto.Des.CHARSET:Ljava/lang/String;
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
astore 7 /* cbytes */
6: .line 246
goto 14
StackMap locals:
StackMap stack: java.lang.Exception
7: astore 8 /* e */
start local 8 // java.lang.Exception e
8: .line 248
aload 7 /* cbytes */
ifnull 10
9: .line 249
aload 7 /* cbytes */
iconst_0
aload 7 /* cbytes */
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
10: .line 252
StackMap locals: java.lang.Exception
StackMap stack:
new sun.security.krb5.KrbCryptoException
dup
new java.lang.StringBuilder
dup
ldc "Unable to convert passwd, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8 /* e */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial sun.security.krb5.KrbCryptoException.<init>:(Ljava/lang/String;)V
11: .line 251
astore 9 /* ce */
start local 9 // sun.security.krb5.KrbCryptoException ce
12: .line 253
aload 9 /* ce */
aload 8 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
13: .line 254
aload 9 /* ce */
athrow
end local 9 // sun.security.krb5.KrbCryptoException ce
end local 8 // java.lang.Exception e
14: .line 258
StackMap locals:
StackMap stack:
aload 7 /* cbytes */
invokestatic sun.security.krb5.internal.crypto.Des.pad:([B)[B
astore 8 /* passwdBytes */
start local 8 // byte[] passwdBytes
15: .line 260
bipush 8
newarray 8
astore 9 /* newkey */
start local 9 // byte[] newkey
16: .line 261
aload 8 /* passwdBytes */
arraylength
bipush 8
idiv
aload 8 /* passwdBytes */
arraylength
bipush 8
irem
ifne 17
iconst_0
goto 18
StackMap locals: char[] long top top top top byte[] byte[] byte[]
StackMap stack: int
17: iconst_1
StackMap locals: char[] long top top top top byte[] byte[] byte[]
StackMap stack: int int
18: iadd
istore 10 /* length */
start local 10 // int length
19: .line 262
iconst_0
istore 11 /* i */
start local 11 // int i
20: goto 32
21: .line 263
StackMap locals: int int
StackMap stack:
aload 8 /* passwdBytes */
iload 11 /* i */
bipush 8
imul
invokestatic sun.security.krb5.internal.crypto.Des.octet2long:([BI)J
ldc 9187201950435737471
land
lstore 3 /* octet */
start local 3 // long octet
22: .line 264
iload 11 /* i */
iconst_2
irem
iconst_1
if_icmpne 30
23: .line 265
lconst_0
lstore 5 /* octet1 */
start local 5 // long octet1
24: .line 266
iconst_0
istore 12 /* j */
start local 12 // int j
25: goto 28
26: .line 267
StackMap locals: char[] long long long byte[] byte[] byte[] int int int
StackMap stack:
lload 5 /* octet1 */
lload 3 /* octet */
lconst_1
iload 12 /* j */
lshl
land
iload 12 /* j */
lushr
bipush 63
iload 12 /* j */
isub
lshl
lor
lstore 5 /* octet1 */
27: .line 266
iinc 12 /* j */ 1
StackMap locals:
StackMap stack:
28: iload 12 /* j */
bipush 64
if_icmplt 26
end local 12 // int j
29: .line 269
lload 5 /* octet1 */
iconst_1
lushr
lstore 3 /* octet */
end local 5 // long octet1
30: .line 271
StackMap locals: char[] long long top top byte[] byte[] byte[] int int
StackMap stack:
lload 1 /* key */
lload 3 /* octet */
iconst_1
lshl
lxor
lstore 1 /* key */
31: .line 262
iinc 11 /* i */ 1
end local 3 // long octet
StackMap locals: char[] long top top top top byte[] byte[] byte[] int int
StackMap stack:
32: iload 11 /* i */
iload 10 /* length */
if_icmplt 21
end local 11 // int i
33: .line 273
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.set_parity:(J)J
lstore 1 /* key */
34: .line 274
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.bad_key:(J)Z
ifeq 38
35: .line 275
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J)[B
astore 11 /* temp */
start local 11 // byte[] temp
36: .line 276
aload 11 /* temp */
bipush 7
dup2
baload
sipush 240
ixor
i2b
bastore
37: .line 277
aload 11 /* temp */
invokestatic sun.security.krb5.internal.crypto.Des.octet2long:([B)J
lstore 1 /* key */
end local 11 // byte[] temp
38: .line 280
StackMap locals:
StackMap stack:
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J)[B
aload 8 /* passwdBytes */
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J)[B
invokestatic sun.security.krb5.internal.crypto.Des.des_cksum:([B[B[B)[B
astore 9 /* newkey */
39: .line 281
aload 9 /* newkey */
invokestatic sun.security.krb5.internal.crypto.Des.set_parity:([B)[B
invokestatic sun.security.krb5.internal.crypto.Des.octet2long:([B)J
lstore 1 /* key */
40: .line 282
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.bad_key:(J)Z
ifeq 44
41: .line 283
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J)[B
astore 11 /* temp */
start local 11 // byte[] temp
42: .line 284
aload 11 /* temp */
bipush 7
dup2
baload
sipush 240
ixor
i2b
bastore
43: .line 285
aload 11 /* temp */
invokestatic sun.security.krb5.internal.crypto.Des.octet2long:([B)J
lstore 1 /* key */
end local 11 // byte[] temp
44: .line 289
StackMap locals:
StackMap stack:
aload 7 /* cbytes */
ifnull 46
45: .line 290
aload 7 /* cbytes */
iconst_0
aload 7 /* cbytes */
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
46: .line 292
StackMap locals:
StackMap stack:
aload 8 /* passwdBytes */
ifnull 48
47: .line 293
aload 8 /* passwdBytes */
iconst_0
aload 8 /* passwdBytes */
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
48: .line 296
StackMap locals:
StackMap stack:
lload 1 /* key */
lreturn
end local 10 // int length
end local 9 // byte[] newkey
end local 8 // byte[] passwdBytes
end local 7 // byte[] cbytes
end local 1 // long key
end local 0 // char[] passwdChars
LocalVariableTable:
Start End Slot Name Signature
0 49 0 passwdChars [C
1 49 1 key J
22 32 3 octet J
24 30 5 octet1 J
2 49 7 cbytes [B
8 14 8 e Ljava/lang/Exception;
12 14 9 ce Lsun/security/krb5/KrbCryptoException;
15 49 8 passwdBytes [B
16 49 9 newkey [B
19 49 10 length I
20 33 11 i I
25 29 12 j I
36 38 11 temp [B
42 44 11 temp [B
Exception table:
from to target type
2 6 7 Class java.lang.Exception
Exceptions:
throws sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
passwdChars
public static byte[] des_cksum(byte[], byte[], byte[]);
descriptor: ([B[B[B)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=9, args_size=3
start local 0 // byte[] ivec
start local 1 // byte[] msg
start local 2 // byte[] key
0: .line 310
aconst_null
astore 3 /* cipher */
start local 3 // javax.crypto.Cipher cipher
1: .line 312
bipush 8
newarray 8
astore 4 /* result */
start local 4 // byte[] result
2: .line 314
ldc "DES/CBC/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 3 /* cipher */
3: .line 315
goto 10
StackMap locals: byte[] byte[] byte[] javax.crypto.Cipher byte[]
StackMap stack: java.lang.Exception
4: astore 5 /* e */
start local 5 // java.lang.Exception e
5: .line 316
new sun.security.krb5.KrbCryptoException
dup
new java.lang.StringBuilder
dup
ldc "JCE provider may not be installed. "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: .line 317
aload 5 /* e */
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: .line 316
invokespecial sun.security.krb5.KrbCryptoException.<init>:(Ljava/lang/String;)V
astore 6 /* ke */
start local 6 // sun.security.krb5.KrbCryptoException ke
8: .line 318
aload 6 /* ke */
aload 5 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
9: .line 319
aload 6 /* ke */
athrow
end local 6 // sun.security.krb5.KrbCryptoException ke
end local 5 // java.lang.Exception e
10: .line 321
StackMap locals:
StackMap stack:
new javax.crypto.spec.IvParameterSpec
dup
aload 0 /* ivec */
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 5 /* params */
start local 5 // javax.crypto.spec.IvParameterSpec params
11: .line 322
new javax.crypto.spec.SecretKeySpec
dup
aload 2 /* key */
ldc "DES"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 6 /* skSpec */
start local 6 // javax.crypto.spec.SecretKeySpec skSpec
12: .line 324
ldc "DES"
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
pop
13: .line 326
aload 6 /* skSpec */
astore 7 /* sk */
start local 7 // javax.crypto.SecretKey sk
14: .line 327
aload 3 /* cipher */
iconst_1
aload 7 /* sk */
aload 5 /* params */
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
15: .line 328
iconst_0
istore 8 /* i */
start local 8 // int i
16: goto 20
17: .line 329
StackMap locals: byte[] byte[] byte[] javax.crypto.Cipher byte[] javax.crypto.spec.IvParameterSpec javax.crypto.spec.SecretKeySpec javax.crypto.SecretKey int
StackMap stack:
aload 3 /* cipher */
aload 1 /* msg */
iload 8 /* i */
bipush 8
imul
bipush 8
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 4 /* result */
18: .line 330
aload 3 /* cipher */
iconst_1
aload 7 /* sk */
new javax.crypto.spec.IvParameterSpec
dup
aload 4 /* result */
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
19: .line 328
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
20: iload 8 /* i */
aload 1 /* msg */
arraylength
bipush 8
idiv
if_icmplt 17
end local 8 // int i
end local 7 // javax.crypto.SecretKey sk
21: .line 332
goto 26
22: .line 333
StackMap locals: byte[] byte[] byte[] javax.crypto.Cipher byte[] javax.crypto.spec.IvParameterSpec javax.crypto.spec.SecretKeySpec
StackMap stack: java.security.GeneralSecurityException
astore 7 /* e */
start local 7 // java.security.GeneralSecurityException e
23: .line 334
new sun.security.krb5.KrbCryptoException
dup
aload 7 /* e */
invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
invokespecial sun.security.krb5.KrbCryptoException.<init>:(Ljava/lang/String;)V
astore 8 /* ke */
start local 8 // sun.security.krb5.KrbCryptoException ke
24: .line 335
aload 8 /* ke */
aload 7 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
25: .line 336
aload 8 /* ke */
athrow
end local 8 // sun.security.krb5.KrbCryptoException ke
end local 7 // java.security.GeneralSecurityException e
26: .line 338
StackMap locals:
StackMap stack:
aload 4 /* result */
areturn
end local 6 // javax.crypto.spec.SecretKeySpec skSpec
end local 5 // javax.crypto.spec.IvParameterSpec params
end local 4 // byte[] result
end local 3 // javax.crypto.Cipher cipher
end local 2 // byte[] key
end local 1 // byte[] msg
end local 0 // byte[] ivec
LocalVariableTable:
Start End Slot Name Signature
0 27 0 ivec [B
0 27 1 msg [B
0 27 2 key [B
1 27 3 cipher Ljavax/crypto/Cipher;
2 27 4 result [B
5 10 5 e Ljava/lang/Exception;
8 10 6 ke Lsun/security/krb5/KrbCryptoException;
11 27 5 params Ljavax/crypto/spec/IvParameterSpec;
12 27 6 skSpec Ljavax/crypto/spec/SecretKeySpec;
14 21 7 sk Ljavax/crypto/SecretKey;
16 21 8 i I
23 26 7 e Ljava/security/GeneralSecurityException;
24 26 8 ke Lsun/security/krb5/KrbCryptoException;
Exception table:
from to target type
2 3 4 Class java.lang.Exception
12 21 22 Class java.security.GeneralSecurityException
Exceptions:
throws sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
ivec
msg
key
static byte[] pad(byte[]);
descriptor: ([B)[B
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 // byte[] data
0: .line 350
aload 0 /* data */
arraylength
bipush 8
if_icmpge 2
aload 0 /* data */
arraylength
istore 1 /* len */
start local 1 // int len
1: goto 3
end local 1 // int len
2: .line 351
StackMap locals:
StackMap stack:
aload 0 /* data */
arraylength
bipush 8
irem
istore 1 /* len */
start local 1 // int len
3: .line 352
StackMap locals: int
StackMap stack:
iload 1 /* len */
ifne 4
aload 0 /* data */
areturn
4: .line 354
StackMap locals:
StackMap stack:
bipush 8
iload 1 /* len */
isub
aload 0 /* data */
arraylength
iadd
newarray 8
astore 2 /* padding */
start local 2 // byte[] padding
5: .line 355
aload 2 /* padding */
arraylength
iconst_1
isub
istore 3 /* i */
start local 3 // int i
6: goto 9
7: .line 356
StackMap locals: byte[] int
StackMap stack:
aload 2 /* padding */
iload 3 /* i */
iconst_0
bastore
8: .line 355
iinc 3 /* i */ -1
StackMap locals:
StackMap stack:
9: iload 3 /* i */
aload 0 /* data */
arraylength
iconst_1
isub
if_icmpgt 7
end local 3 // int i
10: .line 358
aload 0 /* data */
iconst_0
aload 2 /* padding */
iconst_0
aload 0 /* data */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: .line 359
aload 2 /* padding */
areturn
end local 2 // byte[] padding
end local 1 // int len
end local 0 // byte[] data
LocalVariableTable:
Start End Slot Name Signature
0 12 0 data [B
1 2 1 len I
3 12 1 len I
5 12 2 padding [B
6 10 3 i I
MethodParameters:
Name Flags
data
public static byte[] string_to_key_bytes(char[]);
descriptor: ([C)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // char[] passwdChars
0: .line 366
aload 0 /* passwdChars */
invokestatic sun.security.krb5.internal.crypto.Des.char_to_key:([C)J
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J)[B
areturn
end local 0 // char[] passwdChars
LocalVariableTable:
Start End Slot Name Signature
0 1 0 passwdChars [C
Exceptions:
throws sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
passwdChars
}
SourceFile: "Des.java"