Add new rules to log scrubber.

This commit is contained in:
Alex Hart 2024-11-21 14:55:54 -04:00 committed by Greyson Parrelli
parent b7464ffca9
commit 91b411abb5
2 changed files with 17 additions and 1 deletions

View file

@ -10,6 +10,7 @@ import kotlinx.parcelize.Parcelize
import okio.ByteString
import okio.ByteString.Companion.toByteString
import org.signal.core.util.Base64
import org.signal.core.util.Hex
import org.signal.core.util.Serializer
import org.signal.ringrtc.CallLinkRootKey
@ -34,8 +35,11 @@ class CallLinkRoomId private constructor(private val roomId: ByteArray) : Parcel
return roomId.contentHashCode()
}
/**
* Prints call link room id as a hex string, explicitly for logging.
*/
override fun toString(): String {
return DatabaseSerializer.serialize(this)
return Hex.toStringCondensed(roomId)
}
object DatabaseSerializer : Serializer<CallLinkRoomId, String> {

View file

@ -75,6 +75,8 @@ object Scrubber {
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 val CALL_LINK_ROOM_ID_PATTERN = Pattern.compile("[0-9a-f]{61}([0-9a-f]{3})")
@JvmStatic
@Volatile
var identifierHmacKeyProvider: () -> ByteArray? = { null }
@ -97,6 +99,7 @@ object Scrubber {
.scrubIpv4()
.scrubIpv6()
.scrubCallLinkKeys()
.scrubCallLinkRoomIds()
}
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 {
val output = StringBuilder(input.length)
val matcher: Matcher = pattern.matcher(input)