add:添加Packet部分联调测试

This commit is contained in:
zhaofeng233
2021-04-22 15:59:18 +08:00
parent 4ed7cf57d9
commit 87cc1e6590
5 changed files with 248 additions and 24 deletions
+73 -9
View File
@@ -1,19 +1,16 @@
package packet;
import component.ComponentException;
import component.Identifier;
import component.IdentifierWrapper;
import component.TTL;
import component.*;
import encoding.*;
import org.junit.Test;
import java.util.Arrays;
/*
* @Author: Wang Feng
* @Author: feng Zhao
* @Description:
* @Version: 1.0.0
* @Date: 14:08 2021/4/7
* @Date: 14:08 2021/4/14
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
public class CPacketTest {
@@ -21,10 +18,20 @@ public class CPacketTest {
public void TestCPacket_GetIdentifier() throws ComponentException {
MINPacket packet=new MINPacket();
Identifier wrapper=new Identifier("/min/pku/sz");
Identifier wrapper1=new Identifier("/net/王");
Identifier wrapper1=new Identifier("/pkusz/zf");
// byte[] buf = new byte[]{1, 2, 3, 4, 5, 6, 7, 8};
// SignatureValue got = new SignatureValue(buf);
// byte[] buf1 = new byte[]{1, 2, 3, 4, 5, 6, 7, 9};
// SignatureValue got1 = new SignatureValue(buf1);
// SignatureAlgorithm value = new SignatureAlgorithm(0);
// SignatureInfo info = new SignatureInfo(value);
// Signature signature = new Signature(info,got);
// Signature signature1 = new Signature(info,got1);
// packet.signatureField.addSignature(signature);
// packet.signatureField.addSignature(signature1);
packet.packetType=new VlInt(3);
CPacket cPacket=new CPacket();
cPacket.setSrcIdentifier(wrapper);
cPacket.setDstIdentifier(wrapper1);
@@ -55,7 +62,18 @@ public class CPacketTest {
public void TestCPacket_WireEncode() throws EncoderException, ComponentException, PacketException, BlockException {
MINPacket packet=new MINPacket();
Identifier wrapper=new Identifier("/min/pku/sz");
Identifier wrapper1=new Identifier("/net/王");
Identifier wrapper1=new Identifier("/pkusz/zf");
// byte[] buf = new byte[]{1, 2, 3, 4, 5, 6, 7, 8};
// SignatureValue got = new SignatureValue(buf);
// byte[] buf1 = new byte[]{1, 2, 3, 4, 5, 6, 7, 9};
// SignatureValue got1 = new SignatureValue(buf1);
// SignatureAlgorithm value = new SignatureAlgorithm(0);
// SignatureInfo info = new SignatureInfo(value);
// Signature signature = new Signature(info,got);
// Signature signature1 = new Signature(info,got1);
// packet.signatureField.addSignature(signature);
// packet.signatureField.addSignature(signature1);
packet.packetType=new VlInt(3);
@@ -86,4 +104,50 @@ public class CPacketTest {
System.out.println("ttl: "+newPacket.getTtl().ttl());
System.out.println("value: "+ Arrays.toString(newPacket.getValue()));
}
@Test
public void TestCPacket_WireDecode() throws ComponentException, PacketException, BlockException, EncoderException {
MINPacket packet = new MINPacket();
Identifier wrapper = new Identifier("/min/pku/sz");
Identifier wrapper1 = new Identifier("/install");
// byte[] buf = new byte[]{1, 2, 3, 4, 5, 6, 7, 8};
// SignatureValue got = new SignatureValue(buf);
// byte[] buf1 = new byte[]{1, 2, 3, 4, 5, 6, 7, 9};
// SignatureValue got1 = new SignatureValue(buf1);
// SignatureAlgorithm value = new SignatureAlgorithm(0);
// SignatureInfo info = new SignatureInfo(value);
// Signature signature = new Signature(info,got);
// Signature signature1 = new Signature(info,got1);
// packet.signatureField.addSignature(signature);
// packet.signatureField.addSignature(signature1);
packet.packetType = new VlInt(3);
CPacket cPacket = new CPacket();
cPacket.setSrcIdentifier(wrapper);
cPacket.setDstIdentifier(wrapper1);
TTL ttl = new TTL();
ttl.setTtl(16546418374324163L);
cPacket.setTtl(ttl);
byte[] bytes={(byte)1,(byte)2,(byte)3,(byte)4,(byte)6};
cPacket.payload.setValue(bytes);
System.out.println("cPacket:"+cPacket.srcIdentifier.toUri()+","+cPacket.dstIdentifier.toUri()
+","+cPacket.getTtl().ttl()+","+Arrays.toString(cPacket.payload.getValue()));
Encoder encoder = new Encoder();
encoder.encoderReset(new SizeT(Encoder.MaxPacketSize), new SizeT(0));
cPacket.wireEncode(encoder);
byte[] buf = encoder.getBuffer();
Block block = Block.createBlockByBuffer(buf,false);
// System.out.println(" block : "+block.getType()+","+block.getLength()+","+Arrays.toString(block.getValue()));
CPacket newPacket = new CPacket();
newPacket.wireDecode(block);
System.out.println("new cPacket srcUri:"+newPacket.srcIdentifier.toUri()+",dstUri:"+newPacket.dstIdentifier.toUri() +",ttl:"+newPacket.getTtl().ttl()+",block:"
+newPacket.minPacket.readOnlyField.getBlocks().getBlock(0).getValue()+","
+newPacket.minPacket.identifierField.getIdentifier(0).toUri()+","
+newPacket.minPacket.identifierField.getIdentifier(1).toUri()
);
}
}
+44 -6
View File
@@ -3,22 +3,24 @@ package packet;
import component.ComponentException;
import component.Identifier;
import encoding.*;
import minsecurity.identity.Identity;
import org.junit.Test;
import security.KeyChain;
import java.util.Arrays;
/*
* @Author: Wang Feng
* @Author: feng Zhao
* @Description:
* @Version: 1.0.0
* @Date: 21:19 2021/4/7
* @Date: 21:19 2021/4/15
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
public class DataTest {
@Test
public void TestData_ToUri() throws ComponentException {
Data data=new Data();
Identifier name=new Identifier("/wefree/王");
Identifier name=new Identifier("/pkusz/zf");
data.setName(name);
System.out.println(data.getName().toUri());
}
@@ -40,13 +42,14 @@ public class DataTest {
* @throws BlockException
*/
@Test
public void TestData_WireEncode() throws ComponentException, EncoderException, PacketException, BlockException {
public void TestData_WireEncode_Decode() throws ComponentException, EncoderException, PacketException, BlockException {
/////////////// Encode ///////////////
Data data=new Data();
data.freshnessPeriod.setFreshnessPeriod(Long.MAX_VALUE);
byte[] value={(byte)132,(byte)221,(byte)223,(byte)25};
data.payload.setValue(value);
data.congestionMark.setCongestionLevel(Long.MAX_VALUE);
Identifier name=new Identifier("/wefree/王");
Identifier name=new Identifier("/pkusz/zf");
data.setName(name);
Encoder encoder=new Encoder();
@@ -57,6 +60,8 @@ public class DataTest {
Block block=new Block(buf,false);
System.out.println("block buf: "+Arrays.toString(block.getValue()));
/////////////// Decode ///////////////
Data newData=new Data();
System.out.println("decode res: "+newData.wireDecode(block));
encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0));
@@ -64,6 +69,39 @@ public class DataTest {
byte[] newbuf=encoder.getBuffer();
System.out.println("newbuf: "+ Arrays.toString(newbuf));
System.out.println("new uri: "+newData.toUri()
+" , freshness "+newData.freshnessPeriod.getFreshnessPeriod());
+" , freshness "+newData.freshnessPeriod.getFreshnessPeriod()
+" , payload: "+newData.payload.getValue() );
}
@Test
public void WireEncode2() throws Exception {
Identifier name = new Identifier("/min/pkusz");
//////////////////// 构建数据包 ////////////////////////
Data data = new Data();
data.setName(name);
data.freshnessPeriod.setFreshnessPeriod(1234);
byte[] str = "hello world".getBytes();
data.congestionMark.setCongestionLevel(1234);
// todo data.setttl(1234);
/////////////////////////////////////////////////////
//////////////////// 数据包签名 ////////////////////////
// 如果要进行包签名的话,则需要加入KeyChain
KeyChain keyChain = new KeyChain();
// 获取身份
Identity i = keyChain.getIdentifyManager().getIdentityByName("/localhost/operator");
// 将身份对应的加密秘钥作为第二个参数传入
keyChain.setCurrentIdentity(i,"pkusz123pkusz123");
keyChain.signData(data);
/////////////////////////////////////////////////////
// 获取编码结果
Encoder encoder = new Encoder();
encoder.encoderReset(new SizeT(Encoder.MaxPacketSize), new SizeT(0));
data.wireEncode(encoder);
byte[] buf = encoder.getBuffer();
System.out.println(Arrays.toString(buf));
}
}
+40 -4
View File
@@ -4,22 +4,24 @@ import component.ComponentException;
import component.Identifier;
import component.TTL;
import encoding.*;
import minsecurity.identity.Identity;
import org.junit.Test;
import security.KeyChain;
import java.util.Arrays;
/*
* @Author: Wang Feng
* @Author: feng Zhao
* @Description:
* @Version: 1.0.0
* @Date: 10:32 2021/4/8
* @Date: 10:32 2021/4/14
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
public class InterestTest {
@Test
public void TestInterest_ToUri() throws ComponentException {
Interest interest=new Interest();
Identifier name=new Identifier("/wefree/王");
Identifier name=new Identifier("/pkusz/zf");
interest.setName(name);
System.out.println(interest.getName().toUri());
}
@@ -48,7 +50,7 @@ public class InterestTest {
byte[] value={(byte)132,(byte)221,(byte)223,(byte)25};
interest.payload.setValue(value);
interest.congestionMark.setCongestionLevel(Long.MAX_VALUE);
Identifier name=new Identifier("/wefree/王");
Identifier name=new Identifier("/pkusz/zf");
interest.setName(name);
Encoder encoder=new Encoder();
@@ -68,4 +70,38 @@ public class InterestTest {
System.out.println("new uri: "+newInterest.toUri()
+" , ttl "+newInterest.ttl.ttl());
}
@Test
public void TestInterest_WireEncode2() throws Exception {
Identifier name = new Identifier("/min/pkusz");
//////////////////// 构建兴趣包 ////////////////////////
Interest interest = new Interest();
interest.setName(name);
interest.canBePrefix.setCanBePrefix(true);
interest.mustBeRefresh.setMustBeRefresh(true);
interest.nonce.setNonce(1234);
interest.hopLimit.setHopLimit(1234);
interest.congestionMark.setCongestionLevel(1234);
interest.ttl.setTtl(1234);
byte[] str = "hello world".getBytes();
interest.payload.setValue(str);
//////////////////////////////////////////////////////
//////////////////// 兴趣包签名 ////////////////////////
// 如果要进行包签名的话,则需要加入KeyChain
KeyChain keyChain = new KeyChain();
// Identity i = keyChain.getIdentifyManager().getIdentityByName("/min123");
Identity i = keyChain.getIdentifyManager().getIdentityByName("/localhost/operator");
keyChain.setCurrentIdentity(i,"pkusz123pkusz123");
keyChain.signInterest(interest);
/////////////////////////////////////////////////////
// 获取编码结果
Encoder encoder = new Encoder();
encoder.encoderReset(new SizeT(Encoder.MaxPacketSize), new SizeT(0));
interest.wireEncode(encoder);
byte[] buf = encoder.getBuffer();
System.out.println(Arrays.toString(buf));
}
}
+79 -2
View File
@@ -1,12 +1,89 @@
package packet;
import component.*;
import encoding.*;
import org.junit.Test;
import java.util.Arrays;
/*
* @Author: Wang Feng
* @Author: feng Zhao
* @Description:
* @Version: 1.0.0
* @Date: 11:17 2021/4/2
* @Date: 11:17 2021/4/16
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
public class MINPacketTest {
@Test
public void TestMINPacket_IsPacketValid() throws ComponentException, EncoderException, PacketException, BlockException {
MINPacket packet = new MINPacket();
IdentifierWrapper wrapper = new IdentifierWrapper();
wrapper.createCommonIdentifierByString("/min/pku/sz");
IdentifierWrapper wrapper1 = new IdentifierWrapper(new VlInt(105), "/install");
packet.identifierField.setIdentifier(0,wrapper);
packet.identifierField.setIdentifier(1,wrapper1);
byte[] buf = new byte[]{1, 2, 3, 4, 5, 6, 7, 8};
SignatureValue got = new SignatureValue(buf);
byte[] buf1 = new byte[]{1, 2, 3, 4, 5, 6, 7, 9};
SignatureValue got1 = new SignatureValue(buf1);
SignatureAlgorithm value = new SignatureAlgorithm(0);
SignatureInfo info = new SignatureInfo(value);
Signature signature = new Signature(info,got);
Signature signature1 = new Signature(info,got1);
packet.signatureField.addSignature(signature);
packet.signatureField.addSignature(signature1);
packet.packetType = new VlInt(3);
System.out.println("packet:"+packet.isPacketValid());
Encoder encoder = new Encoder();
encoder.encoderReset(new SizeT(Encoder.MaxPacketSize), new SizeT(0));
packet.wireEncode(encoder);
byte[] packetBuf = encoder.getBuffer();
System.out.println("packetBuf:"+ Arrays.toString(packetBuf));
System.out.println("encode res: "+packet.wireEncode(encoder));
// /////////////// Decode /////////////////
// Block block = new Block(packetBuf,false);
// MINPacket newPacket = new MINPacket();
// System.out.println("decode res: "+ newPacket.wireDecode(block));
// newPacket.wireDecode(block);
// System.out.println("IdentifiersContainer size: "+newPacket.identifierField.getIdentifiers().length());
// System.out.println("new v:"+newPacket.identifierField.getIdentifiers().getElement(0).toUri());
}
@Test
public void TestMINPacket_WireDecode() throws ComponentException, EncoderException, PacketException, BlockException {
MINPacket packet = new MINPacket();
IdentifierWrapper wrapper = new IdentifierWrapper();
wrapper.createCommonIdentifierByString("/min/pku/sz");
IdentifierWrapper wrapper1 = new IdentifierWrapper(new VlInt(105), "/install");
packet.identifierField.setIdentifier(0,wrapper);
packet.identifierField.setIdentifier(1,wrapper1);
packet.packetType = new VlInt(3);
// System.out.println("v:"+packet.identifierField.getIdentifiers().getElement(0).toUri());
System.out.println("packet:"+packet.isPacketValid());
Encoder encoder = new Encoder();
encoder.encoderReset(new SizeT(Encoder.MaxPacketSize), new SizeT(0));
packet.wireEncode(encoder);
byte[] packetBuf = encoder.getBuffer();
System.out.println("packetBuf:"+ Arrays.toString(packetBuf));
Block block = new Block(packetBuf,false);
MINPacket newPacket = new MINPacket();
System.out.println("decode res1:"+ newPacket.wireDecode(block));
newPacket.wireDecode(block);
System.out.println("decode res2:"+ newPacket.wireDecode(block));
System.out.println("new v:"+newPacket.identifierField.getIdentifiers().getElement(0).toUri());
}
}