修改测试代码
This commit is contained in:
parent
30087e7d53
commit
28c21ef734
@ -36,30 +36,30 @@ public class LengthTest
|
||||
byte[] bytes = api.SYD_SM4_ShortData(0, new byte[0], Consts.ECB_DEC);
|
||||
Arrays.toString(bytes);
|
||||
//解密 pcData长度不为0
|
||||
byte[] bytes2 = api.SYD_SM4_ShortData(0, new byte[0], Consts.ECB_DEC);
|
||||
byte[] bytes2 = api.SYD_SM4_ShortData(0, new byte[16], Consts.ECB_DEC);
|
||||
Arrays.toString(bytes2);
|
||||
|
||||
}
|
||||
@Test
|
||||
public void syd_SM4_BatchDataTest(){
|
||||
// 密钥索引
|
||||
int[] keyIdx = new int[]{ 0, 1, 2 };
|
||||
// 测试数据
|
||||
List<byte[]> data2 = new ArrayList<>();
|
||||
data2.add( new byte[8] );
|
||||
data2.add( new byte[16] );
|
||||
data2.add( new byte[1024] );
|
||||
List<byte[]> data = new ArrayList<>();
|
||||
data.add( new byte[0] );
|
||||
data.add( new byte[0] );
|
||||
data.add( new byte[0] );
|
||||
List<byte[]> data2 = new ArrayList<>();
|
||||
data.add( new byte[0] );
|
||||
data.add( new byte[0] );
|
||||
data.add( new byte[0] );
|
||||
//解密 pcData长度为0
|
||||
|
||||
// 解密 pcData长度为0
|
||||
List<byte[]> orgDatas = api.SYD_SM4_BatchData( keyIdx , data, Consts.ECB_DEC );
|
||||
for (byte[] byte_1 :orgDatas) {
|
||||
System.out.printf("解密后数据", Arrays.toString(byte_1));
|
||||
}
|
||||
//解密 pcData长度不为0
|
||||
List<byte[]> orgDatas2 = api.SYD_SM4_BatchData( keyIdx , data2, Consts.ECB_DEC );
|
||||
List<byte[]> encData = api.SYD_SM4_BatchData( keyIdx , data2, Consts.ECB_ENC );
|
||||
List<byte[]> orgDatas2 = api.SYD_SM4_BatchData( keyIdx , encData, Consts.ECB_DEC );
|
||||
for (byte[] byte_2 :orgDatas2) {
|
||||
System.out.printf("解密后数据", Arrays.toString(byte_2));
|
||||
}
|
||||
@ -111,6 +111,56 @@ public class LengthTest
|
||||
byte[] recv3 = api.SYD_SM4_LongData( keyIdx , buff, Consts.PkgNumMiddle, Consts.ECB_ENC);
|
||||
enDataBuff.put( recv3 );
|
||||
}
|
||||
|
||||
}
|
||||
byte[] enData = new byte[ enDataBuff.position() ];
|
||||
System.arraycopy( enDataBuff.array(), 0, enData, 0, enData.length );
|
||||
System.out.println( "EnData HEX=" + Util.bytes2HexString( enData ));
|
||||
|
||||
|
||||
// 分包解密
|
||||
// 密文数据
|
||||
ByteBuffer deDataBuff = ByteBuffer.allocate( data.length + 16 );
|
||||
{
|
||||
int n = enData.length / pack;
|
||||
int remainder = enData.length % pack;
|
||||
if ( remainder > 0 ) {
|
||||
n += 1;
|
||||
} else {
|
||||
remainder = pack;
|
||||
}
|
||||
|
||||
for ( int i = 0 ; i < n ; i ++ ) {
|
||||
byte[] buff = new byte[ pack ];
|
||||
|
||||
// 首包
|
||||
if ( 0 == i ) {
|
||||
System.arraycopy( enData, i * pack, buff, 0, pack );
|
||||
byte[] recv3 = api.SYD_SM4_LongData( keyIdx , buff, Consts.PkgNumHead, Consts.ECB_DEC);
|
||||
deDataBuff.put( recv3 );
|
||||
continue;
|
||||
}
|
||||
|
||||
// 尾包
|
||||
if ( i == (n-1) ){
|
||||
buff = new byte[ remainder ];
|
||||
System.arraycopy( enData, i * pack, buff, 0, remainder );
|
||||
byte[] recv3 = api.SYD_SM4_LongData( keyIdx , buff, Consts.PkgNumTail, Consts.ECB_DEC);
|
||||
deDataBuff.put( recv3 );
|
||||
continue;
|
||||
}
|
||||
|
||||
// 中间包
|
||||
System.arraycopy( enData, i * pack, buff, 0, pack );
|
||||
byte[] recv3 = api.SYD_SM4_LongData( keyIdx , buff, Consts.PkgNumMiddle, Consts.ECB_DEC);
|
||||
deDataBuff.put( recv3 );
|
||||
}
|
||||
}
|
||||
byte[] deData = new byte[ deDataBuff.position() ];
|
||||
System.arraycopy( deDataBuff.array(), 0, deData, 0, deData.length );
|
||||
System.out.println( "DeData HEX=" + Util.bytes2HexString( deData ));
|
||||
|
||||
// 断言解密后和原文相同
|
||||
Assert.assertArrayEquals( deData, data );
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user