From f3bc5f32e2a8e933ed0accced5264132a2ca6870 Mon Sep 17 00:00:00 2001 From: Christian Risi <75698846+CnF-Gris@users.noreply.github.com> Date: Fri, 6 Dec 2024 19:08:29 +0000 Subject: [PATCH] V0.6.2 Arroyo Toad Fixed timeconversion to support unixepoch timestamp --- Private/signedMessage/Message.bin | Bin 244 -> 244 bytes Private/signedMessage/public-key.pem | 6 ++++++ Sources/MessageUtils/MessageUtils.swift | 6 +++--- Sources/MessageUtils/Utils/DataToUtils.swift | 4 ++++ Sources/MessageUtils/Utils/ToDataUtils.swift | 7 +++++++ Tests/MessageUtilsTests/MessageUtilsTests.swift | 1 + 6 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 Private/signedMessage/public-key.pem diff --git a/Private/signedMessage/Message.bin b/Private/signedMessage/Message.bin index 259dc27698872dce7f9339df22b3512f997ea2e1..0c254f9b1377043333b89907439001f583f373a5 100644 GIT binary patch delta 157 zcmV;O0Am020rUY60RR913IG5AvOsG<^dw` z0DT7-3K*Q0DcNAU(#ZUaBY;Bl-1OwY%h+Jm&dT#@e$$vBLlgnPvxHSW$p8ab3CDY^ zWqE2sK0lkkwF7=z3tfgQDW!ozSr!`wFCMN4ivjr8Rq(SMb?8KdnDlN5S#y6h24gB% LF{=g7&ZYt^s2W8_ delta 157 zcmV;O0Am020rUY60RR913IG5A+9|zui-E?G4`F`+IL|X>jLR;TL?#CX!zw>Y7_#ms zgHot}AbtUzALQSpQ72dvV6k$%LS+r)R?1TQ$3s#;cBmPtjLa|qX$S4XZ2?aP-7}>p zRa_rI{GFxFgT!_Fhaf7uLZG$Iy4(dw4=wjLs+8X4)q&oJf%b% diff --git a/Private/signedMessage/public-key.pem b/Private/signedMessage/public-key.pem new file mode 100644 index 0000000..51558e0 --- /dev/null +++ b/Private/signedMessage/public-key.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAAH1pxhFDBJWP1yFlEz71+uR19zeS +JCSj3VRcw0bWkx0SSpxBL1O2eYiwE/TaW1Xwmm70FyqOyw+bI6CdWaUlXKIA4AhQ +qKZlYp9mS7OZcjLWnraVQx/JvgCJUUJJLhppGrDPjletpM0qB5fwi+Hjc9cV8KrD +7aAYLz4kRcTSBP9Hc/c= +-----END PUBLIC KEY----- \ No newline at end of file diff --git a/Sources/MessageUtils/MessageUtils.swift b/Sources/MessageUtils/MessageUtils.swift index d4b854c..55eec55 100644 --- a/Sources/MessageUtils/MessageUtils.swift +++ b/Sources/MessageUtils/MessageUtils.swift @@ -20,7 +20,7 @@ public func serializeV1(msg: MessageP) -> Data { serializedData[4...7] = msg.signType.rawValue.data // First 8 bytes - serializedData[8...15] = msg.timestamp.data + serializedData[8...15] = msg.timestamp.timeIntervalSince1970.data // 8 Bytes serializedData[16...31] = msg.devID.data @@ -99,7 +99,7 @@ public func deserializeV1(serializedData: Data) throws -> SignedMessage { let signBytes = try signatureBytes(signature: signType) - let timestamp = serializedData[8...15].timestamp + let timestamp = serializedData[8...15].double // 8 Bytes let devID = serializedData[16...31].uint128 @@ -171,7 +171,7 @@ public func deserializeV1(serializedData: Data) throws -> SignedMessage { devType: devType, RESERVED: RESERVED, signType: signType, - timestamp: timestamp, + timestamp: Date(timeIntervalSince1970: timestamp), devID: devID, location: Location(x: locationX, y: locationY, z: locationZ), fields: fields, diff --git a/Sources/MessageUtils/Utils/DataToUtils.swift b/Sources/MessageUtils/Utils/DataToUtils.swift index 1196721..1c34f2a 100644 --- a/Sources/MessageUtils/Utils/DataToUtils.swift +++ b/Sources/MessageUtils/Utils/DataToUtils.swift @@ -29,4 +29,8 @@ public extension Data { var timestamp: Date { return self.withUnsafeBytes{ $0.bindMemory(to: Date.self) }[0] } + + var double: Double { + return self.withUnsafeBytes{ $0.bindMemory(to: Double.self) }[0] + } } \ No newline at end of file diff --git a/Sources/MessageUtils/Utils/ToDataUtils.swift b/Sources/MessageUtils/Utils/ToDataUtils.swift index 9508ab0..cd4802c 100644 --- a/Sources/MessageUtils/Utils/ToDataUtils.swift +++ b/Sources/MessageUtils/Utils/ToDataUtils.swift @@ -41,3 +41,10 @@ extension Date: DataCompatibleP { return Data(bytes: &obj, count: MemoryLayout.stride) } } + +extension Double: DataCompatibleP { + public var data: Data { + var obj = self + return Data(bytes: &obj, count: MemoryLayout.stride) + } +} diff --git a/Tests/MessageUtilsTests/MessageUtilsTests.swift b/Tests/MessageUtilsTests/MessageUtilsTests.swift index 3dd712a..6d9e68a 100644 --- a/Tests/MessageUtilsTests/MessageUtilsTests.swift +++ b/Tests/MessageUtilsTests/MessageUtilsTests.swift @@ -116,5 +116,6 @@ import Testing data.append(Data(signature)) try data.write(to: URL(filePath: "./Private/signedMessage/Message.bin")) + try key.publicKey.pemRepresentation.write(to: URL(filePath: "./Private/signedMessage/public-key.pem"), atomically: true, encoding: String.Encoding.utf8) }