package com.sunyard.sge.database; import com.sunyard.sge.EntityCache; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class SydApiSM4 { private SydApi4Database api; // private phHandle byte[] pcData; int iDataLen; String[] pcOutData; //多余出的字节长度 int piOutDataLen; int key; int endeFlag; int ret = 0, i = 0; int decloopnum = 0; // int tmpdatalen = MAX_LIN * 8; int alltmpdatalen = 0; EntityCache entityCache = new EntityCache(); int k = 0; byte[] bytes = new byte[k]; ByteBuffer byteBuffer; public SydApiSM4(SydApi4Database api, int key, int endeFlag) { this.api = api; this.key = key; this.endeFlag = endeFlag; } public byte[] update(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) { int plength = pcData.length; byte[] pcDatas = pcData; if (piOutDataLen == 0) { if (iFlag == 1) { if (plength < 16) { int falg = piOutDataLen; piOutDataLen += plength; bytes = new byte[piOutDataLen]; System.arraycopy(pcData,0,bytes,falg,pcData.length); throw new IllegalArgumentException(); } int index = plength % 16; int findex = plength - index; if (index != 0) { pcDatas = Arrays.copyOf(pcData, findex); int falg = piOutDataLen; piOutDataLen += plength-findex; bytes = new byte[piOutDataLen]; System.arraycopy(pcData,findex,bytes,falg,plength-findex); } byte[] bytes = api.SYD_SM4_LongData(iKeyIndex, pcDatas, iPkgNum, iFlag); return bytes; } else { } } else { int combinationLength = piOutDataLen+ plength; if (iFlag==1){ if (combinationLength<16){ piOutDataLen = piOutDataLen+combinationLength; int falg = piOutDataLen; bytes = new byte[piOutDataLen]; throw new IllegalArgumentException(); } } } // byte[] bytes = api.SYD_SM4_LongData(iKeyIndex, pcData, iPkgNum, iFlag); return null; } // // public finish(){ // api.SYD_SM4_LongData(); // } }