diff --git a/SignalServiceKit/src/Loki/API/Multi Device/DeviceLinkingUtilities.swift b/SignalServiceKit/src/Loki/API/Multi Device/DeviceLinkingUtilities.swift index 51f381b7c..a36a75e60 100644 --- a/SignalServiceKit/src/Loki/API/Multi Device/DeviceLinkingUtilities.swift +++ b/SignalServiceKit/src/Loki/API/Multi Device/DeviceLinkingUtilities.swift @@ -7,7 +7,7 @@ public enum DeviceLinkingUtilities { public static func getLinkingRequestMessage(for masterHexEncodedPublicKey: String) -> DeviceLinkMessage { let slaveKeyPair = OWSIdentityManager.shared().identityKeyPair()! let slaveHexEncodedPublicKey = slaveKeyPair.hexEncodedPublicKey - var kind = LKDeviceLinkMessageKind.request + var kind = UInt8(LKDeviceLinkMessageKind.request.rawValue) let data = Data(hex: masterHexEncodedPublicKey) + Data(bytes: &kind, count: MemoryLayout.size(ofValue: kind)) let slaveSignature = try! Ed25519.sign(data, with: slaveKeyPair) let thread = TSContactThread.getOrCreateThread(contactId: masterHexEncodedPublicKey) @@ -18,7 +18,7 @@ public enum DeviceLinkingUtilities { let masterKeyPair = OWSIdentityManager.shared().identityKeyPair()! let masterHexEncodedPublicKey = masterKeyPair.hexEncodedPublicKey let slaveHexEncodedPublicKey = deviceLink.slave.hexEncodedPublicKey - var kind = LKDeviceLinkMessageKind.authorization + var kind = UInt8(LKDeviceLinkMessageKind.authorization.rawValue) let data = Data(hex: slaveHexEncodedPublicKey) + Data(bytes: &kind, count: MemoryLayout.size(ofValue: kind)) let masterSignature = try! Ed25519.sign(data, with: masterKeyPair) let slaveSignature = deviceLink.slave.signature! @@ -29,7 +29,7 @@ public enum DeviceLinkingUtilities { public static func hasValidSlaveSignature(_ deviceLink: DeviceLink) -> Bool { guard let slaveSignature = deviceLink.slave.signature else { return false } let slavePublicKey = Data(hex: deviceLink.slave.hexEncodedPublicKey.removing05PrefixIfNeeded()) - var kind = LKDeviceLinkMessageKind.request + var kind = UInt8(LKDeviceLinkMessageKind.request.rawValue) let data = Data(hex: deviceLink.master.hexEncodedPublicKey) + Data(bytes: &kind, count: MemoryLayout.size(ofValue: kind)) return (try? Ed25519.verifySignature(slaveSignature, publicKey: slavePublicKey, data: data)) ?? false } @@ -37,7 +37,7 @@ public enum DeviceLinkingUtilities { public static func hasValidMasterSignature(_ deviceLink: DeviceLink) -> Bool { guard let masterSignature = deviceLink.master.signature else { return false } let masterPublicKey = Data(hex: deviceLink.master.hexEncodedPublicKey.removing05PrefixIfNeeded()) - var kind = LKDeviceLinkMessageKind.authorization + var kind = UInt8(LKDeviceLinkMessageKind.authorization.rawValue) let data = Data(hex: deviceLink.slave.hexEncodedPublicKey) + Data(bytes: &kind, count: MemoryLayout.size(ofValue: kind)) return (try? Ed25519.verifySignature(masterSignature, publicKey: masterPublicKey, data: data)) ?? false }