package com.dev.btse.data;
|
|
import java.nio.ByteBuffer;
|
import java.nio.ByteOrder;
|
import java.util.Random;
|
|
public class FBS9100_ComBuf
|
{
|
FBS9100_Cmd m_CMD = new FBS9100_Cmd();
|
|
public FBS9100_Cmd getFbsCmd()
|
{
|
return m_CMD;
|
}
|
|
public boolean putByteBuffer(final ByteBuffer bf)
|
{
|
if(false == m_CMD.putByteBuffer(bf))
|
return false;
|
|
return true;
|
}
|
|
public static ByteBuffer makeFbs9100CommBuf(int addr, int cmd, ByteBuffer bf, boolean aes_en)
|
{
|
FBS9100_Cmd m_CMD = new FBS9100_Cmd();
|
ByteBuffer buffer = ByteBuffer.allocate(m_CMD.BYTE_LEN + bf.limit() + 32);
|
buffer.order(ByteOrder.LITTLE_ENDIAN); //ÉèÖÃByteBufferµÄ×Ö½ÚÐò
|
|
m_CMD.makeCmd(addr, cmd, bf.limit());
|
buffer.put(m_CMD.getByteBuffer());
|
buffer.put(bf);
|
|
if(true == aes_en) {
|
Random rd = new Random();
|
if(0 == (buffer.position()%Ecb_Aes.AES_BLOCK_SIZE)) {
|
for(int n=0; n<(Ecb_Aes.AES_BLOCK_SIZE/4); n++) {
|
buffer.putInt(rd.nextInt());
|
}
|
} else {
|
int cnt = Ecb_Aes.AES_BLOCK_SIZE - (buffer.position()%Ecb_Aes.AES_BLOCK_SIZE);
|
for(int n=0; n<cnt; n++) {
|
buffer.put((byte) rd.nextInt());
|
}
|
}
|
}
|
|
buffer.flip();
|
|
return buffer;
|
}
|
}
|
/***************************************************************************************
|
****************************** end of file (FBS_ComBuf) ********************************
|
***************************************************************************************/
|