⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 desparameters.java

📁 进行与数字证书相关开发必须的java源码
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   DESParameters.java

package jit.crypto.params;


// Referenced classes of package jit.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 ^ 0x1) & 0x1);
        }

    }

    static 
    {
        DES_KEY_LENGTH = 8;
        N_DES_WEAK_KEYS = 16;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -