Fix encoding error

This commit is contained in:
Christoph Hagen
2023-12-20 09:25:53 +01:00
parent b749a80f5d
commit ad94588b3c
6 changed files with 30 additions and 13 deletions

View File

@ -56,8 +56,13 @@ struct Message: Equatable, Hashable {
throw MessageResult.invalidMessageTypeFromDevice
}
self.messageType = messageType
self.clientChallenge = UInt32(data: data.dropFirst().prefix(UInt32.byteSize))
self.serverChallenge = UInt32(data: data.dropFirst(UInt32.byteSize+1).prefix(UInt32.byteSize))
let messageTypeEndIndex = data.startIndex+1
let clientChallengeEndIndex = messageTypeEndIndex + UInt32.byteSize
let clientChallengeData = Array(data[messageTypeEndIndex..<clientChallengeEndIndex])
self.clientChallenge = UInt32(bytes: clientChallengeData)
let serverChallengeEndIndex = clientChallengeEndIndex + UInt32.byteSize
let serverChallengeData = Array(data[clientChallengeEndIndex..<serverChallengeEndIndex])
self.serverChallenge = UInt32(bytes: serverChallengeData)
guard let result = MessageResult(rawValue: data.last!) else {
print("Invalid message result \(data.last!)")
throw MessageResult.unknownMessageResultFromDevice