summaryrefslogtreecommitdiff
path: root/src/org/noreply/fancydress/type3/Packet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/noreply/fancydress/type3/Packet.java')
-rw-r--r--src/org/noreply/fancydress/type3/Packet.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/org/noreply/fancydress/type3/Packet.java b/src/org/noreply/fancydress/type3/Packet.java
index 7c6f2f1..6a28791 100644
--- a/src/org/noreply/fancydress/type3/Packet.java
+++ b/src/org/noreply/fancydress/type3/Packet.java
@@ -15,7 +15,7 @@ public class Packet {
public Packet(
Path path,
RoutingDestination address,
- Payload payload)
+ byte[] payload)
throws Mix3BadArgumentsChainTooLongException
{
ForwardLeg leg2 = new ForwardLeg(path.getSecondHalf(), address);
@@ -28,7 +28,7 @@ public class Packet {
public Packet(
HalfPath path,
SURB surb,
- Payload payload)
+ byte[] payload)
throws Mix3BadArgumentsChainTooLongException
{
ForwardLeg leg1 = new ForwardLeg(path, surb.getRoute());
@@ -39,11 +39,13 @@ public class Packet {
return s.equals(SingleLeg.MAJOR_VERSION + "." + SingleLeg.MINOR_VERSION);
}
- private void makePacket(ForwardLeg leg1, SingleLeg leg2, Payload payload) {
- byte p[] = payload.asOctets();
+ private void makePacket(ForwardLeg leg1, SingleLeg leg2, byte[] p) {
byte h1[] = leg1.asOctets();
byte h2[] = leg2.asOctets();
+ if (p.length != 28*1024)
+ throw new IllegalArgumentException("Payload needs to be 28 kb long");
+
// Phase 1
if (leg2 instanceof SURB) {
byte[] k = ((SURB) leg2).getEncryptionKey();
@@ -66,6 +68,9 @@ public class Packet {
packet = Util.concat(Util.concat(h1,h2),p);
thisRoute = leg1.getRoute();
+
+ if (packet.length != 32*1024)
+ throw new Error("packet is not 32k bytes");
}
public RoutingForward getRoute() {