mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-25 01:05:19 +00:00
fix: missing file broadcast and leave message signatures + allow local development (#1078)
* add signatures to file transfers and LEAVE messages * chore: setup project for local development and signing --------- Co-authored-by: jack <212554440+jackjackbits@users.noreply.github.com>
This commit is contained in:
@@ -525,7 +525,7 @@ final class BLEService: NSObject {
|
||||
|
||||
func stopServices() {
|
||||
// Send leave message synchronously to ensure delivery
|
||||
let leavePacket = BitchatPacket(
|
||||
var leavePacket = BitchatPacket(
|
||||
type: MessageType.leave.rawValue,
|
||||
senderID: myPeerIDData,
|
||||
recipientID: nil,
|
||||
@@ -535,6 +535,10 @@ final class BLEService: NSObject {
|
||||
ttl: messageTTL
|
||||
)
|
||||
|
||||
if let signed = noiseService.signPacket(leavePacket) {
|
||||
leavePacket = signed
|
||||
}
|
||||
|
||||
// Send immediately to all connected peers (synchronized access to BLE state)
|
||||
if let data = leavePacket.toBinaryData(padding: false) {
|
||||
let leavePriority = priority(for: leavePacket, data: data)
|
||||
@@ -731,7 +735,7 @@ final class BLEService: NSObject {
|
||||
return
|
||||
}
|
||||
|
||||
let packet = BitchatPacket(
|
||||
var packet = BitchatPacket(
|
||||
type: MessageType.fileTransfer.rawValue,
|
||||
senderID: self.myPeerIDData,
|
||||
recipientID: nil,
|
||||
@@ -742,6 +746,13 @@ final class BLEService: NSObject {
|
||||
version: 2
|
||||
)
|
||||
|
||||
if let signed = self.noiseService.signPacket(packet) {
|
||||
packet = signed
|
||||
} else {
|
||||
SecureLogger.error("❌ Failed to sign file broadcast packet", category: .security)
|
||||
return
|
||||
}
|
||||
|
||||
let senderHex = packet.senderID.hexEncodedString()
|
||||
let dedupID = "\(senderHex)-\(packet.timestamp)-\(packet.type)"
|
||||
self.messageDeduplicator.markProcessed(dedupID)
|
||||
|
||||
Reference in New Issue
Block a user