From 2a14f0b8ac14ad4f9da12f5dc6573a6ea1ed7fa7 Mon Sep 17 00:00:00 2001 From: actyp Date: Sun, 29 Dec 2024 20:14:24 -0500 Subject: [PATCH] Introduce useOldContentFormat parameter for sifis-home server --- experiments/args/sifis-home/server_phase_1 | 2 ++ experiments/args/sifis-home/server_phase_2 | 2 ++ experiments/args/sifis-home/server_phase_3 | 2 ++ experiments/args/sifis-home/server_phase_4 | 2 ++ .../core/protocol/messages/EdhocProtocolMessage.java | 11 ++++++++++- .../sul/mapper/config/EdhocMapperConfig.java | 8 ++++++++ .../sul/mapper/mappers/EdhocInputMapper.java | 4 +++- 7 files changed, 29 insertions(+), 2 deletions(-) diff --git a/experiments/args/sifis-home/server_phase_1 b/experiments/args/sifis-home/server_phase_1 index 4a65940b..0af465bc 100644 --- a/experiments/args/sifis-home/server_phase_1 +++ b/experiments/args/sifis-home/server_phase_1 @@ -22,6 +22,8 @@ v22 -combinedMessageVersion v07 +-useOldContentFormat + ## Mapper Auth ## -mapCredType diff --git a/experiments/args/sifis-home/server_phase_2 b/experiments/args/sifis-home/server_phase_2 index d5103e04..6041779e 100644 --- a/experiments/args/sifis-home/server_phase_2 +++ b/experiments/args/sifis-home/server_phase_2 @@ -22,6 +22,8 @@ v22 -combinedMessageVersion v07 +-useOldContentFormat + ## Mapper Auth ## -mapCredType diff --git a/experiments/args/sifis-home/server_phase_3 b/experiments/args/sifis-home/server_phase_3 index 138bd5e1..0188482d 100644 --- a/experiments/args/sifis-home/server_phase_3 +++ b/experiments/args/sifis-home/server_phase_3 @@ -22,6 +22,8 @@ v22 -combinedMessageVersion v07 +-useOldContentFormat + ## Mapper Auth ## -mapCredType diff --git a/experiments/args/sifis-home/server_phase_4 b/experiments/args/sifis-home/server_phase_4 index 0689accf..1a63e047 100644 --- a/experiments/args/sifis-home/server_phase_4 +++ b/experiments/args/sifis-home/server_phase_4 @@ -22,6 +22,8 @@ v22 -combinedMessageVersion v07 +-useOldContentFormat + ## Mapper Auth ## -mapCredType diff --git a/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/core/protocol/messages/EdhocProtocolMessage.java b/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/core/protocol/messages/EdhocProtocolMessage.java index ecbd9b15..7a7d8e37 100644 --- a/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/core/protocol/messages/EdhocProtocolMessage.java +++ b/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/core/protocol/messages/EdhocProtocolMessage.java @@ -40,6 +40,7 @@ public EdhocProtocolMessage(MessageProcessorPersistent messageProcessorPersisten contentFormat = Constants.APPLICATION_EDHOC_CBOR_SEQ; } } + public byte[] getPayload() { return payload; } @@ -48,7 +49,15 @@ public int getMessageCode() { return messageCode; } - public int getContentFormat() { + public int getContentFormat(boolean oldVersion) { + if (oldVersion) { + return switch (contentFormat) { + case Constants.APPLICATION_EDHOC_CBOR_SEQ -> 65000; + case Constants.APPLICATION_CID_EDHOC_CBOR_SEQ -> 65001; + default -> contentFormat; + }; + } + return contentFormat; } diff --git a/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/mapper/config/EdhocMapperConfig.java b/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/mapper/config/EdhocMapperConfig.java index ce398edc..b746e4d0 100644 --- a/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/mapper/config/EdhocMapperConfig.java +++ b/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/mapper/config/EdhocMapperConfig.java @@ -64,6 +64,9 @@ public class EdhocMapperConfig extends MapperConfigStandard { @Parameter(names = "-disableContentFormat", description = "Do not add CoAP Content-Format in sending messages") protected boolean disableContentFormat = false; + @Parameter(names = "-useOldContentFormat", description = "Use the old CoAP Content-Format (6500x) in sending messages") + protected boolean useOldContentFormat = false; + @Parameter(names = "-enableSessionReset", description = "Reset to default old session data, when Initiator mapper " + "sends a message to start a new session. Reset does not affect a Responder mapper") protected boolean enableSessionReset = false; @@ -156,6 +159,10 @@ public boolean useContentFormat() { return !disableContentFormat; } + public boolean useOldContentFormat() { + return useOldContentFormat; + } + public boolean useSessionReset() { return enableSessionReset; } @@ -248,6 +255,7 @@ public void printRunDescriptionSelf(PrintWriter printWriter) { printWriter.println("App Message Payload To Coap Client: " + getAppMessagePayloadToCoapClient()); printWriter.println("Coap Error As Edhoc Error: " + isCoapErrorAsEdhocError()); printWriter.println("use Content Format: " + useContentFormat()); + printWriter.println("use Old Content Format: " + useOldContentFormat()); printWriter.println("use Session Reset: " + useSessionReset()); printWriter.println("use CX Correlation: " + useCXCorrelation()); printWriter.println("Own Connection Id: " + this.ownConnectionId); diff --git a/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/mapper/mappers/EdhocInputMapper.java b/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/mapper/mappers/EdhocInputMapper.java index cdb30641..c65bd403 100644 --- a/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/mapper/mappers/EdhocInputMapper.java +++ b/src/main/java/com/github/protocolfuzzing/edhocfuzzer/components/sul/mapper/mappers/EdhocInputMapper.java @@ -29,7 +29,9 @@ protected void sendMessage(ProtocolMessage message, ExecutionContext context) { // enable or disable content format EdhocMapperConfig edhocMapperConfig = (EdhocMapperConfig) mapperConfig; - int contentFormat = edhocMapperConfig.useContentFormat() ? edhocProtocolMessage.getContentFormat() : MediaTypeRegistry.UNDEFINED; + int contentFormat = edhocMapperConfig.useContentFormat() ? + edhocProtocolMessage.getContentFormat(edhocMapperConfig.useOldContentFormat()) : + MediaTypeRegistry.UNDEFINED; edhocMapperConnector.send(edhocProtocolMessage.getPayload(), edhocProtocolMessage.getPayloadType(), edhocProtocolMessage.getMessageCode(), contentFormat);