diff --git a/Private/signedMessage/Message.bin b/Private/signedMessage/Message.bin index 259dc27..0c254f9 100644 Binary files a/Private/signedMessage/Message.bin and b/Private/signedMessage/Message.bin differ 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) }