修改测试代码
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);
|
byte[] bytes = api.SYD_SM4_ShortData(0, new byte[0], Consts.ECB_DEC);
|
||||||
Arrays.toString(bytes);
|
Arrays.toString(bytes);
|
||||||
//解密 pcData长度不为0
|
//解密 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);
|
Arrays.toString(bytes2);
|
||||||
|
|
||||||
}
|
}
|
||||||
@Test
|
@Test
|
||||||
public void syd_SM4_BatchDataTest(){
|
public void syd_SM4_BatchDataTest(){
|
||||||
// 密钥索引
|
|
||||||
int[] keyIdx = new int[]{ 0, 1, 2 };
|
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<>();
|
List<byte[]> data = new ArrayList<>();
|
||||||
data.add( new byte[0] );
|
data.add( new byte[0] );
|
||||||
data.add( new byte[0] );
|
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 );
|
List<byte[]> orgDatas = api.SYD_SM4_BatchData( keyIdx , data, Consts.ECB_DEC );
|
||||||
for (byte[] byte_1 :orgDatas) {
|
for (byte[] byte_1 :orgDatas) {
|
||||||
System.out.printf("解密后数据", Arrays.toString(byte_1));
|
System.out.printf("解密后数据", Arrays.toString(byte_1));
|
||||||
}
|
}
|
||||||
//解密 pcData长度不为0
|
//解密 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) {
|
for (byte[] byte_2 :orgDatas2) {
|
||||||
System.out.printf("解密后数据", Arrays.toString(byte_2));
|
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);
|
byte[] recv3 = api.SYD_SM4_LongData( keyIdx , buff, Consts.PkgNumMiddle, Consts.ECB_ENC);
|
||||||
enDataBuff.put( recv3 );
|
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