mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-25 15:05:21 +00:00
works
This commit is contained in:
@@ -181,6 +181,14 @@ class BluetoothMeshService(private val context: Context) {
|
|||||||
return delegate?.getNickname()
|
return delegate?.getNickname()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getPeerInfo(peerID: String): PeerInfo? {
|
||||||
|
return peerManager.getPeerInfo(peerID)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun updatePeerInfo(peerID: String, nickname: String, noisePublicKey: ByteArray, signingPublicKey: ByteArray, isVerified: Boolean): Boolean {
|
||||||
|
return peerManager.updatePeerInfo(peerID, nickname, noisePublicKey, signingPublicKey, isVerified)
|
||||||
|
}
|
||||||
|
|
||||||
// Packet operations
|
// Packet operations
|
||||||
override fun sendPacket(packet: BitchatPacket) {
|
override fun sendPacket(packet: BitchatPacket) {
|
||||||
connectionManager.broadcastPacket(RoutedPacket(packet))
|
connectionManager.broadcastPacket(RoutedPacket(packet))
|
||||||
|
|||||||
@@ -191,10 +191,7 @@ class MessageHandler(private val myPeerID: String) {
|
|||||||
|
|
||||||
// Check for existing peer with different noise public key
|
// Check for existing peer with different noise public key
|
||||||
// If existing peer has a different noise public key, do not consider this verified
|
// If existing peer has a different noise public key, do not consider this verified
|
||||||
val existingPeer = (delegate as? BluetoothMeshService)?.let { service ->
|
val existingPeer = delegate?.getPeerInfo(peerID)
|
||||||
// Access PeerManager through service
|
|
||||||
service.getPeerInfo(peerID)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (existingPeer != null && existingPeer.noisePublicKey != null && !existingPeer.noisePublicKey!!.contentEquals(announcement.noisePublicKey)) {
|
if (existingPeer != null && existingPeer.noisePublicKey != null && !existingPeer.noisePublicKey!!.contentEquals(announcement.noisePublicKey)) {
|
||||||
Log.w(TAG, "⚠️ Announce key mismatch for ${peerID.take(8)}... — keeping unverified")
|
Log.w(TAG, "⚠️ Announce key mismatch for ${peerID.take(8)}... — keeping unverified")
|
||||||
@@ -218,15 +215,13 @@ class MessageHandler(private val myPeerID: String) {
|
|||||||
val signingPublicKey = announcement.signingPublicKey
|
val signingPublicKey = announcement.signingPublicKey
|
||||||
|
|
||||||
// Update peer info with verification status through new method
|
// Update peer info with verification status through new method
|
||||||
val isFirstAnnounce = (delegate as? BluetoothMeshService)?.let { service ->
|
val isFirstAnnounce = delegate?.updatePeerInfo(
|
||||||
service.updatePeerInfo(
|
peerID = peerID,
|
||||||
peerID = peerID,
|
nickname = nickname,
|
||||||
nickname = nickname,
|
noisePublicKey = noisePublicKey,
|
||||||
noisePublicKey = noisePublicKey,
|
signingPublicKey = signingPublicKey,
|
||||||
signingPublicKey = signingPublicKey,
|
isVerified = true
|
||||||
isVerified = true
|
) ?: false
|
||||||
)
|
|
||||||
} ?: false
|
|
||||||
|
|
||||||
// Update peer ID binding with noise public key for identity management
|
// Update peer ID binding with noise public key for identity management
|
||||||
delegate?.updatePeerIDBinding(
|
delegate?.updatePeerIDBinding(
|
||||||
@@ -327,7 +322,7 @@ class MessageHandler(private val myPeerID: String) {
|
|||||||
val peerID = routed.peerID ?: "unknown"
|
val peerID = routed.peerID ?: "unknown"
|
||||||
|
|
||||||
// Enforce: only accept public messages from verified peers we know
|
// Enforce: only accept public messages from verified peers we know
|
||||||
val peerInfo = (delegate as? BluetoothMeshService)?.getPeerInfo(peerID)
|
val peerInfo = delegate?.getPeerInfo(peerID)
|
||||||
if (peerInfo == null || !peerInfo.isVerifiedNickname) {
|
if (peerInfo == null || !peerInfo.isVerifiedNickname) {
|
||||||
Log.w(TAG, "🚫 Dropping public message from unverified or unknown peer ${peerID.take(8)}...")
|
Log.w(TAG, "🚫 Dropping public message from unverified or unknown peer ${peerID.take(8)}...")
|
||||||
return
|
return
|
||||||
@@ -444,6 +439,8 @@ interface MessageHandlerDelegate {
|
|||||||
fun getPeerNickname(peerID: String): String?
|
fun getPeerNickname(peerID: String): String?
|
||||||
fun getNetworkSize(): Int
|
fun getNetworkSize(): Int
|
||||||
fun getMyNickname(): String?
|
fun getMyNickname(): String?
|
||||||
|
fun getPeerInfo(peerID: String): PeerInfo?
|
||||||
|
fun updatePeerInfo(peerID: String, nickname: String, noisePublicKey: ByteArray, signingPublicKey: ByteArray, isVerified: Boolean): Boolean
|
||||||
|
|
||||||
// Packet operations
|
// Packet operations
|
||||||
fun sendPacket(packet: BitchatPacket)
|
fun sendPacket(packet: BitchatPacket)
|
||||||
|
|||||||
Reference in New Issue
Block a user