diff --git a/application/src/main/kotlin/org/gxf/crestdevicesimulator/simulator/response/PskExtractor.kt b/application/src/main/kotlin/org/gxf/crestdevicesimulator/simulator/response/PskExtractor.kt index 0e0add3..800f8b7 100644 --- a/application/src/main/kotlin/org/gxf/crestdevicesimulator/simulator/response/PskExtractor.kt +++ b/application/src/main/kotlin/org/gxf/crestdevicesimulator/simulator/response/PskExtractor.kt @@ -12,7 +12,7 @@ object PskExtractor { * Group 1 containing the next 16 chars after PSK: this is only the key * Group 2 containing the next 64 chars after the key this is only the hash */ - private val pskKeyHashSplitterRegex = "!PSK:([a-zA-Z0-9]{16})([a-zA-Z0-9]{64});PSK:[a-zA-Z0-9]{16}[a-zA-Z0-9]{64}SET".toRegex() + private val pskKeyHashSplitterRegex = "!PSK:([a-zA-Z0-9]{16}):([a-zA-Z0-9]{64});PSK:[a-zA-Z0-9]{16}:[a-zA-Z0-9]{64}SET".toRegex() fun hasPskCommand(command: String) = pskKeyHashSplitterRegex.matches(command) diff --git a/application/src/test/kotlin/org/gxf/crestdevicesimulator/simulator/response/PskExtractorTest.kt b/application/src/test/kotlin/org/gxf/crestdevicesimulator/simulator/response/PskExtractorTest.kt index efa148f..4d27b73 100644 --- a/application/src/test/kotlin/org/gxf/crestdevicesimulator/simulator/response/PskExtractorTest.kt +++ b/application/src/test/kotlin/org/gxf/crestdevicesimulator/simulator/response/PskExtractorTest.kt @@ -13,9 +13,9 @@ class PskExtractorTest { companion object { private const val testHash = "1234567890123456123456789012345612345678901234561234567890123456" - private const val validPskCommand = "!PSK:1234567891234567${testHash};PSK:1234567891234567${testHash}SET" - private const val validPskCommandWithKeyWordsInKey = "!PSK:PSKaSET1PSKd2SET${testHash};PSK:PSKaSET1PSKd2SET${testHash}SET" - private const val invalidKeySizePskCommand = "!PSK:1234${testHash};PSK:1234${testHash}SET" + private const val validPskCommand = "!PSK:1234567891234567:${testHash};PSK:1234567891234567:${testHash}SET" + private const val validPskCommandWithKeyWordsInKey = "!PSK:PSKaSET1PSKd2SET:${testHash};PSK:PSKaSET1PSKd2SET:${testHash}SET" + private const val invalidKeySizePskCommand = "!PSK:1234:${testHash};PSK:1234:${testHash}SET" private const val notPskCommand = "NoPskCommandInThisString" } diff --git a/application/src/test/kotlin/org/gxf/crestdevicesimulator/simulator/response/command/PskCommandHandlerTest.kt b/application/src/test/kotlin/org/gxf/crestdevicesimulator/simulator/response/command/PskCommandHandlerTest.kt index 5a6ce47..f910053 100644 --- a/application/src/test/kotlin/org/gxf/crestdevicesimulator/simulator/response/command/PskCommandHandlerTest.kt +++ b/application/src/test/kotlin/org/gxf/crestdevicesimulator/simulator/response/command/PskCommandHandlerTest.kt @@ -54,7 +54,7 @@ class PskCommandHandlerTest { @Test fun shouldSetNewPskInStoreWhenTheKeyIsValid() { val expectedHash = DigestUtils.sha256Hex("$secret$newKey") - val pskCommand = "!PSK:$newKey$expectedHash;PSK:$newKey${expectedHash}SET" + val pskCommand = "!PSK:$newKey:$expectedHash;PSK:$newKey:${expectedHash}SET" pskCommandHandler.handlePskChange(pskCommand) @@ -64,7 +64,7 @@ class PskCommandHandlerTest { @Test fun shouldThrowErrorWhenHashDoesNotMatch() { val invalidHash = DigestUtils.sha256Hex("invalid") - val pskCommand = "!PSK:$oldKey$invalidHash;PSK:$oldKey${invalidHash}SET" + val pskCommand = "!PSK:$oldKey:$invalidHash;PSK:$oldKey:${invalidHash}SET" val thrownException = catchException { pskCommandHandler.handlePskChange(pskCommand)