From e86dbc8d380c29cdc2c643903b1d1427153b4356 Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 24 Aug 2025 18:09:24 +0200 Subject: [PATCH] QR: fix VerificationQR mutability (sigHex var) and remove duplicate Data hex helpers to resolve redeclaration; wire signed payload assembly --- bitchat/Services/VerificationService.swift | 31 +++++++--------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/bitchat/Services/VerificationService.swift b/bitchat/Services/VerificationService.swift index 67ef0345..846f31c1 100644 --- a/bitchat/Services/VerificationService.swift +++ b/bitchat/Services/VerificationService.swift @@ -21,7 +21,7 @@ final class VerificationService { let nickname: String let ts: Int64 let nonceB64: String - let sigHex: String + var sigHex: String static let context = "bitchat-verify-v1" @@ -85,8 +85,14 @@ final class VerificationService { let payload = VerificationQR(v: 1, noiseKeyHex: noiseKey, signKeyHex: signKey, npub: npub, nickname: nickname, ts: ts, nonceB64: nonceB64, sigHex: "") let msg = payload.canonicalBytes() guard let sig = noise.signData(msg) else { return nil } - var signed = payload - signed.sigHex = sig.hexEncodedString() + let signed = VerificationQR(v: payload.v, + noiseKeyHex: payload.noiseKeyHex, + signKeyHex: payload.signKeyHex, + npub: payload.npub, + nickname: payload.nickname, + ts: payload.ts, + nonceB64: payload.nonceB64, + sigHex: sig.map { String(format: "%02x", $0) }.joined()) return signed.toURLString() } @@ -130,22 +136,3 @@ final class VerificationService { return NoisePayload(type: .verifyResponse, data: tlv).encode() } } - -private extension Data { - func hexEncodedString() -> String { - self.map { String(format: "%02x", $0) }.joined() - } - init?(hexString: String) { - let len = hexString.count - guard len % 2 == 0 else { return nil } - var data = Data(capacity: len/2) - var i = hexString.startIndex - while i < hexString.endIndex { - let j = hexString.index(i, offsetBy: 2) - if let b = UInt8(hexString[i..