📄 desparameters.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: DESParameters.java
package org.bouncycastle.crypto.params;
// Referenced classes of package org.bouncycastle.crypto.params:
// KeyParameter
public class DESParameters extends KeyParameter
{
public static final int DES_KEY_LENGTH = 8;
private static final int N_DES_WEAK_KEYS = 16;
private static byte DES_weak_keys[] = {
1, 1, 1, 1, 1, 1, 1, 1, 31, 31,
31, 31, 14, 14, 14, 14, -32, -32, -32, -32,
-15, -15, -15, -15, -2, -2, -2, -2, -2, -2,
-2, -2, 1, -2, 1, -2, 1, -2, 1, -2,
31, -32, 31, -32, 14, -15, 14, -15, 1, -32,
1, -32, 1, -15, 1, -15, 31, -2, 31, -2,
14, -2, 14, -2, 1, 31, 1, 31, 1, 14,
1, 14, -32, -2, -32, -2, -15, -2, -15, -2,
-2, 1, -2, 1, -2, 1, -2, 1, -32, 31,
-32, 31, -15, 14, -15, 14, -32, 1, -32, 1,
-15, 1, -15, 1, -2, 31, -2, 31, -2, 14,
-2, 14, 31, 1, 31, 1, 14, 1, 14, 1,
-2, -32, -2, -32, -2, -15, -2, -15
};
public DESParameters(byte key[])
{
super(key);
if (isWeakKey(key, 0))
throw new IllegalArgumentException("attempt to create weak DES key");
else
return;
}
public static boolean isWeakKey(byte key[], int offset)
{
if (key.length - offset < 8)
throw new IllegalArgumentException("key material too short.");
int i = 0;
label0:
do
{
label1:
{
if (i >= 16)
break label0;
for (int j = 0; j < 8; j++)
if (key[j + offset] != DES_weak_keys[i * 8 + j])
break label1;
return true;
}
i++;
} while (true);
return false;
}
public static void setOddParity(byte bytes[])
{
for (int i = 0; i < bytes.length; i++)
{
int b = bytes[i];
bytes[i] = (byte)(b & 0xfe | (b >> 1 ^ b >> 2 ^ b >> 3 ^ b >> 4 ^ b >> 5 ^ b >> 6 ^ b >> 7 ^ 1) & 1);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -