public class javax.crypto.spec.DESKeySpec implements java.security.spec.KeySpec
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: javax.crypto.spec.DESKeySpec
super_class: java.lang.Object
{
public static final int DES_KEY_LEN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private byte[] key;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private static final byte[][] WEAK_KEYS;
descriptor: [[B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: .line 64
bipush 16
anewarray byte[]
dup
iconst_0
1: .line 66
bipush 8
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
iconst_1
bastore
dup
iconst_2
iconst_1
bastore
dup
iconst_3
iconst_1
bastore
dup
iconst_4
iconst_1
bastore
dup
iconst_5
2: .line 67
iconst_1
bastore
dup
bipush 6
iconst_1
bastore
dup
bipush 7
iconst_1
bastore
aastore
dup
iconst_1
3: .line 69
bipush 8
newarray 8
dup
iconst_0
bipush -2
bastore
dup
iconst_1
bipush -2
bastore
dup
iconst_2
bipush -2
bastore
dup
iconst_3
bipush -2
bastore
dup
iconst_4
bipush -2
bastore
dup
iconst_5
4: .line 70
bipush -2
bastore
dup
bipush 6
bipush -2
bastore
dup
bipush 7
bipush -2
bastore
aastore
dup
iconst_2
5: .line 72
bipush 8
newarray 8
dup
iconst_0
bipush 31
bastore
dup
iconst_1
bipush 31
bastore
dup
iconst_2
bipush 31
bastore
dup
iconst_3
bipush 31
bastore
dup
iconst_4
bipush 14
bastore
dup
iconst_5
6: .line 73
bipush 14
bastore
dup
bipush 6
bipush 14
bastore
dup
bipush 7
bipush 14
bastore
aastore
dup
iconst_3
7: .line 75
bipush 8
newarray 8
dup
iconst_0
bipush -32
bastore
dup
iconst_1
bipush -32
bastore
dup
iconst_2
bipush -32
bastore
dup
iconst_3
bipush -32
bastore
dup
iconst_4
bipush -15
bastore
dup
iconst_5
8: .line 76
bipush -15
bastore
dup
bipush 6
bipush -15
bastore
dup
bipush 7
bipush -15
bastore
aastore
dup
iconst_4
9: .line 78
bipush 8
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
bipush -2
bastore
dup
iconst_2
iconst_1
bastore
dup
iconst_3
bipush -2
bastore
dup
iconst_4
iconst_1
bastore
dup
iconst_5
10: .line 79
bipush -2
bastore
dup
bipush 6
iconst_1
bastore
dup
bipush 7
bipush -2
bastore
aastore
dup
iconst_5
11: .line 81
bipush 8
newarray 8
dup
iconst_0
bipush 31
bastore
dup
iconst_1
bipush -32
bastore
dup
iconst_2
bipush 31
bastore
dup
iconst_3
bipush -32
bastore
dup
iconst_4
bipush 14
bastore
dup
iconst_5
12: .line 82
bipush -15
bastore
dup
bipush 6
bipush 14
bastore
dup
bipush 7
bipush -15
bastore
aastore
dup
bipush 6
13: .line 84
bipush 8
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
bipush -32
bastore
dup
iconst_2
iconst_1
bastore
dup
iconst_3
bipush -32
bastore
dup
iconst_4
iconst_1
bastore
dup
iconst_5
14: .line 85
bipush -15
bastore
dup
bipush 6
iconst_1
bastore
dup
bipush 7
bipush -15
bastore
aastore
dup
bipush 7
15: .line 87
bipush 8
newarray 8
dup
iconst_0
bipush 31
bastore
dup
iconst_1
bipush -2
bastore
dup
iconst_2
bipush 31
bastore
dup
iconst_3
bipush -2
bastore
dup
iconst_4
bipush 14
bastore
dup
iconst_5
16: .line 88
bipush -2
bastore
dup
bipush 6
bipush 14
bastore
dup
bipush 7
bipush -2
bastore
aastore
dup
bipush 8
17: .line 90
bipush 8
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
bipush 31
bastore
dup
iconst_2
iconst_1
bastore
dup
iconst_3
bipush 31
bastore
dup
iconst_4
iconst_1
bastore
dup
iconst_5
18: .line 91
bipush 14
bastore
dup
bipush 6
iconst_1
bastore
dup
bipush 7
bipush 14
bastore
aastore
dup
bipush 9
19: .line 93
bipush 8
newarray 8
dup
iconst_0
bipush -32
bastore
dup
iconst_1
bipush -2
bastore
dup
iconst_2
bipush -32
bastore
dup
iconst_3
bipush -2
bastore
dup
iconst_4
bipush -15
bastore
dup
iconst_5
20: .line 94
bipush -2
bastore
dup
bipush 6
bipush -15
bastore
dup
bipush 7
bipush -2
bastore
aastore
dup
bipush 10
21: .line 96
bipush 8
newarray 8
dup
iconst_0
bipush -2
bastore
dup
iconst_1
iconst_1
bastore
dup
iconst_2
bipush -2
bastore
dup
iconst_3
iconst_1
bastore
dup
iconst_4
bipush -2
bastore
dup
iconst_5
22: .line 97
iconst_1
bastore
dup
bipush 6
bipush -2
bastore
dup
bipush 7
iconst_1
bastore
aastore
dup
bipush 11
23: .line 99
bipush 8
newarray 8
dup
iconst_0
bipush -32
bastore
dup
iconst_1
bipush 31
bastore
dup
iconst_2
bipush -32
bastore
dup
iconst_3
bipush 31
bastore
dup
iconst_4
bipush -15
bastore
dup
iconst_5
24: .line 100
bipush 14
bastore
dup
bipush 6
bipush -15
bastore
dup
bipush 7
bipush 14
bastore
aastore
dup
bipush 12
25: .line 102
bipush 8
newarray 8
dup
iconst_0
bipush -32
bastore
dup
iconst_1
iconst_1
bastore
dup
iconst_2
bipush -32
bastore
dup
iconst_3
iconst_1
bastore
dup
iconst_4
bipush -15
bastore
dup
iconst_5
26: .line 103
iconst_1
bastore
dup
bipush 6
bipush -15
bastore
dup
bipush 7
iconst_1
bastore
aastore
dup
bipush 13
27: .line 105
bipush 8
newarray 8
dup
iconst_0
bipush -2
bastore
dup
iconst_1
bipush 31
bastore
dup
iconst_2
bipush -2
bastore
dup
iconst_3
bipush 31
bastore
dup
iconst_4
bipush -2
bastore
dup
iconst_5
28: .line 106
bipush 14
bastore
dup
bipush 6
bipush -2
bastore
dup
bipush 7
bipush 14
bastore
aastore
dup
bipush 14
29: .line 108
bipush 8
newarray 8
dup
iconst_0
bipush 31
bastore
dup
iconst_1
iconst_1
bastore
dup
iconst_2
bipush 31
bastore
dup
iconst_3
iconst_1
bastore
dup
iconst_4
bipush 14
bastore
dup
iconst_5
30: .line 109
iconst_1
bastore
dup
bipush 6
bipush 14
bastore
dup
bipush 7
iconst_1
bastore
aastore
dup
bipush 15
31: .line 111
bipush 8
newarray 8
dup
iconst_0
bipush -2
bastore
dup
iconst_1
bipush -32
bastore
dup
iconst_2
bipush -2
bastore
dup
iconst_3
bipush -32
bastore
dup
iconst_4
bipush -2
bastore
dup
iconst_5
32: .line 112
bipush -15
bastore
dup
bipush 6
bipush -2
bastore
dup
bipush 7
bipush -15
bastore
aastore
33: .line 64
putstatic javax.crypto.spec.DESKeySpec.WEAK_KEYS:[[B
34: .line 113
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // javax.crypto.spec.DESKeySpec this
start local 1 // byte[] key
0: .line 131
aload 0 /* this */
aload 1 /* key */
iconst_0
invokespecial javax.crypto.spec.DESKeySpec.<init>:([BI)V
1: .line 132
return
end local 1 // byte[] key
end local 0 // javax.crypto.spec.DESKeySpec this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/crypto/spec/DESKeySpec;
0 2 1 key [B
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
public void <init>(byte[], int);
descriptor: ([BI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 // javax.crypto.spec.DESKeySpec this
start local 1 // byte[] key
start local 2 // int offset
0: .line 153
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 154
aload 1 /* key */
arraylength
iload 2 /* offset */
isub
bipush 8
if_icmpge 3
2: .line 155
new java.security.InvalidKeyException
dup
ldc "Wrong key size"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
3: .line 157
StackMap locals: javax.crypto.spec.DESKeySpec byte[] int
StackMap stack:
aload 0 /* this */
bipush 8
newarray 8
putfield javax.crypto.spec.DESKeySpec.key:[B
4: .line 158
aload 1 /* key */
iload 2 /* offset */
aload 0 /* this */
getfield javax.crypto.spec.DESKeySpec.key:[B
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 159
return
end local 2 // int offset
end local 1 // byte[] key
end local 0 // javax.crypto.spec.DESKeySpec this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljavax/crypto/spec/DESKeySpec;
0 6 1 key [B
0 6 2 offset I
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
offset
public byte[] getKey();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // javax.crypto.spec.DESKeySpec this
0: .line 168
aload 0 /* this */
getfield javax.crypto.spec.DESKeySpec.key:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
areturn
end local 0 // javax.crypto.spec.DESKeySpec this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavax/crypto/spec/DESKeySpec;
public static boolean isParityAdjusted(byte[], int);
descriptor: ([BI)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 // byte[] key
start local 1 // int offset
0: .line 188
aload 0 /* key */
ifnonnull 2
1: .line 189
new java.security.InvalidKeyException
dup
ldc "null key"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
2: .line 191
StackMap locals:
StackMap stack:
aload 0 /* key */
arraylength
iload 1 /* offset */
isub
bipush 8
if_icmpge 4
3: .line 192
new java.security.InvalidKeyException
dup
ldc "Wrong key size"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
4: .line 195
StackMap locals:
StackMap stack:
iconst_0
istore 2 /* i */
start local 2 // int i
5: goto 10
6: .line 196
StackMap locals: int
StackMap stack:
aload 0 /* key */
iload 1 /* offset */
iinc 1 /* offset */ 1
baload
sipush 255
iand
invokestatic java.lang.Integer.bitCount:(I)I
istore 3 /* k */
start local 3 // int k
7: .line 197
iload 3 /* k */
iconst_1
iand
ifne 9
8: .line 198
iconst_0
ireturn
end local 3 // int k
9: .line 195
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 2 /* i */
bipush 8
if_icmplt 6
end local 2 // int i
11: .line 202
iconst_1
ireturn
end local 1 // int offset
end local 0 // byte[] key
LocalVariableTable:
Start End Slot Name Signature
0 12 0 key [B
0 12 1 offset I
5 11 2 i I
7 9 3 k I
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
offset
public static boolean isWeak(byte[], int);
descriptor: ([BI)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 // byte[] key
start local 1 // int offset
0: .line 221
aload 0 /* key */
ifnonnull 2
1: .line 222
new java.security.InvalidKeyException
dup
ldc "null key"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
2: .line 224
StackMap locals:
StackMap stack:
aload 0 /* key */
arraylength
iload 1 /* offset */
isub
bipush 8
if_icmpge 4
3: .line 225
new java.security.InvalidKeyException
dup
ldc "Wrong key size"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
4: .line 227
StackMap locals:
StackMap stack:
iconst_0
istore 2 /* i */
start local 2 // int i
5: goto 16
6: .line 228
StackMap locals: int
StackMap stack:
iconst_1
istore 3 /* found */
start local 3 // boolean found
7: .line 229
iconst_0
istore 4 /* j */
start local 4 // int j
8: goto 12
9: .line 230
StackMap locals: int int
StackMap stack:
getstatic javax.crypto.spec.DESKeySpec.WEAK_KEYS:[[B
iload 2 /* i */
aaload
iload 4 /* j */
baload
aload 0 /* key */
iload 4 /* j */
iload 1 /* offset */
iadd
baload
if_icmpeq 11
10: .line 231
iconst_0
istore 3 /* found */
11: .line 229
StackMap locals:
StackMap stack:
iinc 4 /* j */ 1
StackMap locals:
StackMap stack:
12: iload 4 /* j */
bipush 8
if_icmpge 13
iload 3 /* found */
ifne 9
end local 4 // int j
13: .line 234
StackMap locals:
StackMap stack:
iload 3 /* found */
ifeq 15
14: .line 235
iload 3 /* found */
ireturn
end local 3 // boolean found
15: .line 227
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
16: iload 2 /* i */
getstatic javax.crypto.spec.DESKeySpec.WEAK_KEYS:[[B
arraylength
if_icmplt 6
end local 2 // int i
17: .line 238
iconst_0
ireturn
end local 1 // int offset
end local 0 // byte[] key
LocalVariableTable:
Start End Slot Name Signature
0 18 0 key [B
0 18 1 offset I
5 17 2 i I
7 15 3 found Z
8 13 4 j I
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
offset
}
SourceFile: "DESKeySpec.java"