mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-22 12:08:34 +00:00
Add new rules to log scrubber.
This commit is contained in:
committed by
Greyson Parrelli
parent
b7464ffca9
commit
91b411abb5
@@ -10,6 +10,7 @@ import kotlinx.parcelize.Parcelize
|
|||||||
import okio.ByteString
|
import okio.ByteString
|
||||||
import okio.ByteString.Companion.toByteString
|
import okio.ByteString.Companion.toByteString
|
||||||
import org.signal.core.util.Base64
|
import org.signal.core.util.Base64
|
||||||
|
import org.signal.core.util.Hex
|
||||||
import org.signal.core.util.Serializer
|
import org.signal.core.util.Serializer
|
||||||
import org.signal.ringrtc.CallLinkRootKey
|
import org.signal.ringrtc.CallLinkRootKey
|
||||||
|
|
||||||
@@ -34,8 +35,11 @@ class CallLinkRoomId private constructor(private val roomId: ByteArray) : Parcel
|
|||||||
return roomId.contentHashCode()
|
return roomId.contentHashCode()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints call link room id as a hex string, explicitly for logging.
|
||||||
|
*/
|
||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
return DatabaseSerializer.serialize(this)
|
return Hex.toStringCondensed(roomId)
|
||||||
}
|
}
|
||||||
|
|
||||||
object DatabaseSerializer : Serializer<CallLinkRoomId, String> {
|
object DatabaseSerializer : Serializer<CallLinkRoomId, String> {
|
||||||
|
|||||||
@@ -75,6 +75,8 @@ object Scrubber {
|
|||||||
private val CALL_LINK_PATTERN = Pattern.compile("([bBcCdDfFgGhHkKmMnNpPqQrRsStTxXzZ]{4})(-[bBcCdDfFgGhHkKmMnNpPqQrRsStTxXzZ]{4}){7}")
|
private val CALL_LINK_PATTERN = Pattern.compile("([bBcCdDfFgGhHkKmMnNpPqQrRsStTxXzZ]{4})(-[bBcCdDfFgGhHkKmMnNpPqQrRsStTxXzZ]{4}){7}")
|
||||||
private const val CALL_LINK_CENSOR_SUFFIX = "-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
|
private const val CALL_LINK_CENSOR_SUFFIX = "-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
|
||||||
|
|
||||||
|
private val CALL_LINK_ROOM_ID_PATTERN = Pattern.compile("[0-9a-f]{61}([0-9a-f]{3})")
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@Volatile
|
@Volatile
|
||||||
var identifierHmacKeyProvider: () -> ByteArray? = { null }
|
var identifierHmacKeyProvider: () -> ByteArray? = { null }
|
||||||
@@ -97,6 +99,7 @@ object Scrubber {
|
|||||||
.scrubIpv4()
|
.scrubIpv4()
|
||||||
.scrubIpv6()
|
.scrubIpv6()
|
||||||
.scrubCallLinkKeys()
|
.scrubCallLinkKeys()
|
||||||
|
.scrubCallLinkRoomIds()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun CharSequence.scrubE164(): CharSequence {
|
private fun CharSequence.scrubE164(): CharSequence {
|
||||||
@@ -192,6 +195,15 @@ object Scrubber {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun CharSequence.scrubCallLinkRoomIds(): CharSequence {
|
||||||
|
return scrub(this, CALL_LINK_ROOM_ID_PATTERN) { matcher, output ->
|
||||||
|
val match = matcher.group(1)
|
||||||
|
output
|
||||||
|
.append("[REDACTED]")
|
||||||
|
.append(match)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun scrub(input: CharSequence, pattern: Pattern, processMatch: MatchProcessor): CharSequence {
|
private fun scrub(input: CharSequence, pattern: Pattern, processMatch: MatchProcessor): CharSequence {
|
||||||
val output = StringBuilder(input.length)
|
val output = StringBuilder(input.length)
|
||||||
val matcher: Matcher = pattern.matcher(input)
|
val matcher: Matcher = pattern.matcher(input)
|
||||||
|
|||||||
Reference in New Issue
Block a user