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 57
ldc "sun.security.krb5.msinterop.des.s2kcharset"
invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
1: .line 56
putstatic sun.security.krb5.internal.crypto.Des.CHARSET:Ljava/lang/String;
2: .line 59
bipush 16
newarray 11
dup
iconst_0
3: .line 60
ldc 72340172838076673
lastore
dup
iconst_1
ldc -72340172838076674
lastore
dup
iconst_2
4: .line 61
ldc 2242545357980376863
lastore
dup
iconst_3
ldc -2242545357980376864
lastore
dup
iconst_4
5: .line 62
ldc 143554428589179390
lastore
dup
iconst_5
ldc -143554428589179391
lastore
dup
bipush 6
6: .line 63
ldc 2296870857142767345
lastore
dup
bipush 7
ldc -2296870857142767346
lastore
dup
bipush 8
7: .line 64
ldc 135110050437988849
lastore
dup
bipush 9
ldc -2305315235293957887
lastore
dup
bipush 10
8: .line 65
ldc 2305315235293957886
lastore
dup
bipush 11
ldc -135110050437988850
lastore
dup
bipush 12
9: .line 66
ldc 80784550989267214
lastore
dup
bipush 13
ldc 2234100979542855169
lastore
dup
bipush 14
10: .line 67
ldc -2234100979542855170
lastore
dup
bipush 15
ldc -80784550989267215
lastore
11: .line 59
putstatic sun.security.krb5.internal.crypto.Des.bad_keys:[J
12: .line 70
sipush 256
newarray 8
dup
iconst_0
13: .line 71
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
14: .line 72
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
15: .line 73
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
16: .line 74
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
17: .line 75
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
18: .line 76
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
19: .line 77
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
20: .line 78
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
21: .line 79
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
22: .line 80
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
23: .line 81
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
24: .line 82
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
25: .line 83
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
26: .line 84
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
27: .line 85
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
28: .line 86
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
29: .line 87
bipush -128
bastore
dup
sipush 129
bipush -128
bastore
dup
sipush 130
bipush -125
bastore
dup
sipush 131
bipush -125
bastore
dup
sipush 132
30: .line 88
bipush -123
bastore
dup
sipush 133
bipush -123
bastore
dup
sipush 134
bipush -122
bastore
dup
sipush 135
bipush -122
bastore
dup
sipush 136
31: .line 89
bipush -119
bastore
dup
sipush 137
bipush -119
bastore
dup
sipush 138
bipush -118
bastore
dup
sipush 139
bipush -118
bastore
dup
sipush 140
32: .line 90
bipush -116
bastore
dup
sipush 141
bipush -116
bastore
dup
sipush 142
bipush -113
bastore
dup
sipush 143
bipush -113
bastore
dup
sipush 144
33: .line 91
bipush -111
bastore
dup
sipush 145
bipush -111
bastore
dup
sipush 146
bipush -110
bastore
dup
sipush 147
bipush -110
bastore
dup
sipush 148
34: .line 92
bipush -108
bastore
dup
sipush 149
bipush -108
bastore
dup
sipush 150
bipush -105
bastore
dup
sipush 151
bipush -105
bastore
dup
sipush 152
35: .line 93
bipush -104
bastore
dup
sipush 153
bipush -104
bastore
dup
sipush 154
bipush -101
bastore
dup
sipush 155
bipush -101
bastore
dup
sipush 156
36: .line 94
bipush -99
bastore
dup
sipush 157
bipush -99
bastore
dup
sipush 158
bipush -98
bastore
dup
sipush 159
bipush -98
bastore
dup
sipush 160
37: .line 95
bipush -95
bastore
dup
sipush 161
bipush -95
bastore
dup
sipush 162
bipush -94
bastore
dup
sipush 163
bipush -94
bastore
dup
sipush 164
38: .line 96
bipush -92
bastore
dup
sipush 165
bipush -92
bastore
dup
sipush 166
bipush -89
bastore
dup
sipush 167
bipush -89
bastore
dup
sipush 168
39: .line 97
bipush -88
bastore
dup
sipush 169
bipush -88
bastore
dup
sipush 170
bipush -85
bastore
dup
sipush 171
bipush -85
bastore
dup
sipush 172
40: .line 98
bipush -83
bastore
dup
sipush 173
bipush -83
bastore
dup
sipush 174
bipush -82
bastore
dup
sipush 175
bipush -82
bastore
dup
sipush 176
41: .line 99
bipush -80
bastore
dup
sipush 177
bipush -80
bastore
dup
sipush 178
bipush -77
bastore
dup
sipush 179
bipush -77
bastore
dup
sipush 180
42: .line 100
bipush -75
bastore
dup
sipush 181
bipush -75
bastore
dup
sipush 182
bipush -74
bastore
dup
sipush 183
bipush -74
bastore
dup
sipush 184
43: .line 101
bipush -71
bastore
dup
sipush 185
bipush -71
bastore
dup
sipush 186
bipush -70
bastore
dup
sipush 187
bipush -70
bastore
dup
sipush 188
44: .line 102
bipush -68
bastore
dup
sipush 189
bipush -68
bastore
dup
sipush 190
bipush -65
bastore
dup
sipush 191
bipush -65
bastore
dup
sipush 192
45: .line 103
bipush -63
bastore
dup
sipush 193
bipush -63
bastore
dup
sipush 194
bipush -62
bastore
dup
sipush 195
bipush -62
bastore
dup
sipush 196
46: .line 104
bipush -60
bastore
dup
sipush 197
bipush -60
bastore
dup
sipush 198
bipush -57
bastore
dup
sipush 199
bipush -57
bastore
dup
sipush 200
47: .line 105
bipush -56
bastore
dup
sipush 201
bipush -56
bastore
dup
sipush 202
bipush -53
bastore
dup
sipush 203
bipush -53
bastore
dup
sipush 204
48: .line 106
bipush -51
bastore
dup
sipush 205
bipush -51
bastore
dup
sipush 206
bipush -50
bastore
dup
sipush 207
bipush -50
bastore
dup
sipush 208
49: .line 107
bipush -48
bastore
dup
sipush 209
bipush -48
bastore
dup
sipush 210
bipush -45
bastore
dup
sipush 211
bipush -45
bastore
dup
sipush 212
50: .line 108
bipush -43
bastore
dup
sipush 213
bipush -43
bastore
dup
sipush 214
bipush -42
bastore
dup
sipush 215
bipush -42
bastore
dup
sipush 216
51: .line 109
bipush -39
bastore
dup
sipush 217
bipush -39
bastore
dup
sipush 218
bipush -38
bastore
dup
sipush 219
bipush -38
bastore
dup
sipush 220
52: .line 110
bipush -36
bastore
dup
sipush 221
bipush -36
bastore
dup
sipush 222
bipush -33
bastore
dup
sipush 223
bipush -33
bastore
dup
sipush 224
53: .line 111
bipush -32
bastore
dup
sipush 225
bipush -32
bastore
dup
sipush 226
bipush -29
bastore
dup
sipush 227
bipush -29
bastore
dup
sipush 228
54: .line 112
bipush -27
bastore
dup
sipush 229
bipush -27
bastore
dup
sipush 230
bipush -26
bastore
dup
sipush 231
bipush -26
bastore
dup
sipush 232
55: .line 113
bipush -23
bastore
dup
sipush 233
bipush -23
bastore
dup
sipush 234
bipush -22
bastore
dup
sipush 235
bipush -22
bastore
dup
sipush 236
56: .line 114
bipush -20
bastore
dup
sipush 237
bipush -20
bastore
dup
sipush 238
bipush -17
bastore
dup
sipush 239
bipush -17
bastore
dup
sipush 240
57: .line 115
bipush -15
bastore
dup
sipush 241
bipush -15
bastore
dup
sipush 242
bipush -14
bastore
dup
sipush 243
bipush -14
bastore
dup
sipush 244
58: .line 116
bipush -12
bastore
dup
sipush 245
bipush -12
bastore
dup
sipush 246
bipush -9
bastore
dup
sipush 247
bipush -9
bastore
dup
sipush 248
59: .line 117
bipush -8
bastore
dup
sipush 249
bipush -8
bastore
dup
sipush 250
bipush -5
bastore
dup
sipush 251
bipush -5
bastore
dup
sipush 252
60: .line 118
bipush -3
bastore
dup
sipush 253
bipush -3
bastore
dup
sipush 254
bipush -2
bastore
dup
sipush 255
bipush -2
bastore
61: .line 70
putstatic sun.security.krb5.internal.crypto.Des.good_parity:[B
62: .line 119
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 122
iconst_0
istore 1 /* i */
start local 1 // int i
1: goto 4
2: .line 123
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 122
iinc 1 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 1 /* i */
bipush 8
if_icmplt 2
end local 1 // int i
5: .line 125
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 129
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 133
iconst_0
istore 2 /* i */
start local 2 // int i
1: goto 5
2: .line 134
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 135
iconst_1
ireturn
4: .line 133
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 138
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 142
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 146
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 150
lconst_0
lstore 2 /* result */
start local 2 // long result
1: .line 151
iconst_0
istore 4 /* i */
start local 4 // int i
2: goto 6
3: .line 152
StackMap locals: long int
StackMap stack:
iload 4 /* i */
iload 1 /* offset */
iadd
aload 0 /* input */
arraylength
if_icmpge 5
4: .line 153
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 151
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 156
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 160
bipush 8
newarray 8
astore 2 /* output */
start local 2 // byte[] output
1: .line 161
iconst_0
istore 3 /* i */
start local 3 // int i
2: goto 5
3: .line 162
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 161
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 3 /* i */
bipush 8
if_icmplt 3
end local 3 // int i
6: .line 164
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 168
lload 0 /* input */
aload 2 /* output */
iconst_0
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J[BI)V
1: .line 169
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 172
iconst_0
istore 4 /* i */
start local 4 // int i
1: goto 7
2: .line 173
StackMap locals: int
StackMap stack:
iload 4 /* i */
iload 3 /* offset */
iadd
aload 2 /* output */
arraylength
if_icmpge 6
3: .line 174
aload 2 /* output */
iload 4 /* i */
iload 3 /* offset */
iadd
4: .line 175
lload 0 /* input */
bipush 7
iload 4 /* i */
isub
bipush 8
imul
lushr
ldc 255
land
l2i
i2b
5: .line 174
bastore
6: .line 172
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 178
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 196
aconst_null
astore 5 /* cipher */
start local 5 // javax.crypto.Cipher cipher
1: .line 199
ldc "DES/CBC/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 5 /* cipher */
2: .line 200
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 201
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 202
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 201
invokespecial sun.security.krb5.KrbCryptoException.<init>:(Ljava/lang/String;)V
astore 7 /* ke */
start local 7 // sun.security.krb5.KrbCryptoException ke
7: .line 203
aload 7 /* ke */
aload 6 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
8: .line 204
aload 7 /* ke */
athrow
end local 7 // sun.security.krb5.KrbCryptoException ke
end local 6 // java.security.GeneralSecurityException e
9: .line 206
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 207
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 209
ldc "DES"
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
pop
12: .line 211
aload 7 /* skSpec */
astore 8 /* sk */
start local 8 // javax.crypto.SecretKey sk
13: .line 212
iload 4 /* encrypt */
ifeq 15
14: .line 213
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 215
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 217
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 218
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 219
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 220
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 221
aload 9 /* ke */
aload 8 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
22: .line 222
aload 9 /* ke */
athrow
end local 9 // sun.security.krb5.KrbCryptoException ke
end local 8 // java.security.GeneralSecurityException e
23: .line 224
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 234
lconst_0
lstore 1 /* key */
start local 1 // long key
1: .line 236
aconst_null
astore 7 /* cbytes */
start local 7 // byte[] cbytes
2: .line 240
getstatic sun.security.krb5.internal.crypto.Des.CHARSET:Ljava/lang/String;
ifnonnull 5
3: .line 241
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 242
goto 14
5: .line 243
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 245
goto 14
StackMap locals:
StackMap stack: java.lang.Exception
7: astore 8 /* e */
start local 8 // java.lang.Exception e
8: .line 247
aload 7 /* cbytes */
ifnull 10
9: .line 248
aload 7 /* cbytes */
iconst_0
aload 7 /* cbytes */
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
10: .line 251
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 250
astore 9 /* ce */
start local 9 // sun.security.krb5.KrbCryptoException ce
12: .line 252
aload 9 /* ce */
aload 8 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
13: .line 253
aload 9 /* ce */
athrow
end local 9 // sun.security.krb5.KrbCryptoException ce
end local 8 // java.lang.Exception e
14: .line 257
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 259
bipush 8
newarray 8
astore 9 /* newkey */
start local 9 // byte[] newkey
16: .line 260
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 261
iconst_0
istore 11 /* i */
start local 11 // int i
20: goto 32
21: .line 262
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 263
iload 11 /* i */
iconst_2
irem
iconst_1
if_icmpne 30
23: .line 264
lconst_0
lstore 5 /* octet1 */
start local 5 // long octet1
24: .line 265
iconst_0
istore 12 /* j */
start local 12 // int j
25: goto 28
26: .line 266
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 265
iinc 12 /* j */ 1
StackMap locals:
StackMap stack:
28: iload 12 /* j */
bipush 64
if_icmplt 26
end local 12 // int j
29: .line 268
lload 5 /* octet1 */
iconst_1
lushr
lstore 3 /* octet */
end local 5 // long octet1
30: .line 270
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 261
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 272
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.set_parity:(J)J
lstore 1 /* key */
34: .line 273
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.bad_key:(J)Z
ifeq 38
35: .line 274
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J)[B
astore 11 /* temp */
start local 11 // byte[] temp
36: .line 275
aload 11 /* temp */
bipush 7
dup2
baload
sipush 240
ixor
i2b
bastore
37: .line 276
aload 11 /* temp */
invokestatic sun.security.krb5.internal.crypto.Des.octet2long:([B)J
lstore 1 /* key */
end local 11 // byte[] temp
38: .line 279
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 280
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 281
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.bad_key:(J)Z
ifeq 44
41: .line 282
lload 1 /* key */
invokestatic sun.security.krb5.internal.crypto.Des.long2octet:(J)[B
astore 11 /* temp */
start local 11 // byte[] temp
42: .line 283
aload 11 /* temp */
bipush 7
dup2
baload
sipush 240
ixor
i2b
bastore
43: .line 284
aload 11 /* temp */
invokestatic sun.security.krb5.internal.crypto.Des.octet2long:([B)J
lstore 1 /* key */
end local 11 // byte[] temp
44: .line 288
StackMap locals:
StackMap stack:
aload 7 /* cbytes */
ifnull 46
45: .line 289
aload 7 /* cbytes */
iconst_0
aload 7 /* cbytes */
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
46: .line 291
StackMap locals:
StackMap stack:
aload 8 /* passwdBytes */
ifnull 48
47: .line 292
aload 8 /* passwdBytes */
iconst_0
aload 8 /* passwdBytes */
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
48: .line 295
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 309
aconst_null
astore 3 /* cipher */
start local 3 // javax.crypto.Cipher cipher
1: .line 311
bipush 8
newarray 8
astore 4 /* result */
start local 4 // byte[] result
2: .line 313
ldc "DES/CBC/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 3 /* cipher */
3: .line 314
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 315
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 316
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 315
invokespecial sun.security.krb5.KrbCryptoException.<init>:(Ljava/lang/String;)V
astore 6 /* ke */
start local 6 // sun.security.krb5.KrbCryptoException ke
8: .line 317
aload 6 /* ke */
aload 5 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
9: .line 318
aload 6 /* ke */
athrow
end local 6 // sun.security.krb5.KrbCryptoException ke
end local 5 // java.lang.Exception e
10: .line 320
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 321
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 323
ldc "DES"
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
pop
13: .line 325
aload 6 /* skSpec */
astore 7 /* sk */
start local 7 // javax.crypto.SecretKey sk
14: .line 326
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 327
iconst_0
istore 8 /* i */
start local 8 // int i
16: goto 20
17: .line 328
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 329
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 327
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 331
goto 26
22: .line 332
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 333
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 334
aload 8 /* ke */
aload 7 /* e */
invokevirtual sun.security.krb5.KrbCryptoException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
25: .line 335
aload 8 /* ke */
athrow
end local 8 // sun.security.krb5.KrbCryptoException ke
end local 7 // java.security.GeneralSecurityException e
26: .line 337
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 349
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 350
StackMap locals:
StackMap stack:
aload 0 /* data */
arraylength
bipush 8
irem
istore 1 /* len */
start local 1 // int len
3: .line 351
StackMap locals: int
StackMap stack:
iload 1 /* len */
ifne 4
aload 0 /* data */
areturn
4: .line 353
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 354
aload 2 /* padding */
arraylength
iconst_1
isub
istore 3 /* i */
start local 3 // int i
6: goto 9
7: .line 355
StackMap locals: byte[] int
StackMap stack:
aload 2 /* padding */
iload 3 /* i */
iconst_0
bastore
8: .line 354
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 357
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 358
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 365
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"