public byte[] AESnew(long pFixedKey, long pVariableKey, String pComando, boolean flg_encrypt, int lunghezza) {
//BA.Log(" result comando " +pComando);
//BA.Log(" lunghezza comando " +lunghezza);
int[] tmpData = new int[255];
tmpData = hexStringToByteArray(pComando);
for ( int i = 0; i<lunghezza;i++){
//BA.Log(" result primo " + String.valueOf(tmpData));
}
SSP_COMMAND sspCommand = new SSP_COMMAND();
SSP_FULL_KEY sspFullKey = new SSP_FULL_KEY();
sspFullKey.FixedKey = pFixedKey;
sspFullKey.VariableKey = pVariableKey;
sspCommand.Key = sspFullKey;
sspCommand.EncryptionStatus = flg_encrypt;
sspCommand.encPktCount = 0;
sspCommand.CommandDataLength = lunghezza ;
//BA.Log(" aaaaaa " );
aes_encrypt(sspFullKey, tmpData,(byte) lunghezza, 0);
byte[] result = new byte[lunghezza];
for(int i = 0; i < tmpData.length; i++){
result = (byte) tmpData;
//BA.Log(" result " + tmpData);
}
return result;
}
public static int[] hexStringToByteArray(String s) {
int[] b = new int[s.length() / 2];
for (int i = 0; i < b.length; i++) {
int index = i * 2;
int v = Integer.parseInt(s.substring(index, index + 2), 16);
b = v;
}
return b;
}
void EncryptSSPPacket(SSP_COMMAND cmd) {
final byte FIXED_PACKET_LENGTH = 7;
final byte C_MAX_KEY_LENGTH = 16;
byte pkLength, i, packLength = 0;
int crc;
int[] tmpData = new int[255];
pkLength = (byte) (cmd.CommandDataLength);
// pkLength = (byte) (cmd.CommandDataLength + FIXED_PACKET_LENGTH);
for (i = 0; i < cmd.CommandDataLength; i++) {
tmpData[i + 5] = cmd.CommandData;
}
// aes_encrypt(cmd.Key, tmpData, pkLength, 0);
/*
if (pkLength % C_MAX_KEY_LENGTH != 0) {
packLength = (byte) (C_MAX_KEY_LENGTH - (pkLength % C_MAX_KEY_LENGTH));
}
pkLength += packLength;
tmpData[0] = cmd.CommandDataLength;
for (i = 0; i < 4; i++) {
tmpData[1 + i] = (byte) ((cmd.encPktCount >> (8 * i) & 0xFF));
}
for (i = 0; i < cmd.CommandDataLength; i++) {
tmpData[i + 5] = cmd.CommandData;
}
for (i = 0; i < packLength; i++) {
tmpData[5 + cmd.CommandDataLength + i] = (byte)rand.GenerateRandomNumber();
crc = cal_crc_loop_CCITT_A((pkLength - 2), 0, tmpData, CRC_SSP_SEED, CRC_SSP_POLY);
tmpData[pkLength - 2] = (crc & 0xFF);
tmpData[pkLength - 1] = ((crc >> 8) & 0xFF);
// aes_encrypt(cmd.Key, tmpData, pkLength, 0);
pkLength++;
cmd.CommandDataLength = pkLength;
cmd.CommandData[0] = SSP_STEX;
for (i = 0; i < pkLength - 1; i++) {
cmd.CommandData[1 + i] = tmpData;
}
cmd.encPktCount++;
*/
}