x9eciesstructure.java

来自「进行与数字证书相关开发必须的java源码」· Java 代码 · 共 104 行

JAVA
104
字号
// 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:   X9ECIESStructure.java

package jit.asn1.x9;

import jit.math.ec.ECPoint;

public class X9ECIESStructure
{

    byte all[];
    byte Q[];
    byte encodedMessage[];
    byte macData[];
    int keyLength;
    int macSize;

    public X9ECIESStructure()
    {
    }

    public X9ECIESStructure(byte all[], int eccLength, int macLength)
    {
        this.all = all;
        macSize = macLength;
        keyLength = eccLength / 8;
        if(this.all.length <= 1 + 2 * keyLength + macSize)
            throw new IllegalArgumentException("unknown object when creating object");
        if(this.all[0] == 4)
        {
            Q = new byte[1 + 2 * keyLength];
            Q[0] = 4;
            System.arraycopy(this.all, 1, Q, 1, 2 * keyLength);
            int tLength = this.all.length;
            encodedMessage = new byte[tLength - 1 - 2 * keyLength - macSize];
            System.arraycopy(this.all, 2 * keyLength + 1, encodedMessage, 0, tLength - 1 - 2 * keyLength - macSize);
            macData = new byte[macSize];
            System.arraycopy(this.all, tLength - macSize, macData, 0, macSize);
        } else
        {
            throw new IllegalArgumentException("unknown object when creating object");
        }
    }

    public byte[] getQ()
    {
        return Q;
    }

    public byte[] getEncodedMessage()
    {
        return encodedMessage;
    }

    public byte[] getMacData()
    {
        return macData;
    }

    public byte[] getEncodedMessageAndMac()
    {
        if(encodedMessage != null && macData != null)
        {
            byte encodeAndMac[] = new byte[encodedMessage.length + macData.length];
            System.arraycopy(encodedMessage, 0, encodeAndMac, 0, encodedMessage.length);
            System.arraycopy(macData, 0, encodeAndMac, encodedMessage.length, macData.length);
            return encodeAndMac;
        } else
        {
            return null;
        }
    }

    public void setQ(ECPoint Q)
    {
        this.Q = Q.getEncoded(true);
    }

    public void setEncodedMessageAndMac(byte encodeAndMac[])
    {
        if(encodeAndMac.length > macSize)
        {
            encodedMessage = new byte[encodeAndMac.length - macSize];
            System.arraycopy(encodeAndMac, 0, encodedMessage, 0, encodeAndMac.length - macSize);
            macData = new byte[macSize];
            System.arraycopy(encodeAndMac, encodedMessage.length, macData, 0, macSize);
        } else
        {
            throw new IllegalArgumentException("unknown object when creating object");
        }
    }

    public byte[] getOutputData()
    {
        all = new byte[getQ().length + getEncodedMessage().length + getMacData().length];
        System.arraycopy(getQ(), 0, all, 0, getQ().length);
        System.arraycopy(getEncodedMessage(), 0, all, getQ().length, getEncodedMessage().length);
        System.arraycopy(getMacData(), 0, all, getQ().length + getEncodedMessage().length, getMacData().length);
        return all;
    }
}

⌨️ 快捷键说明

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