Improve new convo error messages
parent
006c50e38d
commit
e25b90b229
@ -1,18 +1,11 @@
|
|||||||
package org.session.libsignal.utilities
|
package org.session.libsignal.utilities
|
||||||
|
|
||||||
object PublicKeyValidation {
|
object PublicKeyValidation {
|
||||||
|
private val HEX_CHARACTERS = "0123456789ABCDEF".toSet()
|
||||||
|
private val INVALID_PREFIXES = setOf(IdPrefix.GROUP, IdPrefix.BLINDED, IdPrefix.BLINDEDV2)
|
||||||
|
|
||||||
@JvmStatic
|
fun isValid(candidate: String, isPrefixRequired: Boolean = true): Boolean = hasValidLength(candidate) && isValidHexEncoding(candidate) && (!isPrefixRequired || IdPrefix.fromValue(candidate) != null)
|
||||||
fun isValid(candidate: String): Boolean {
|
fun hasValidPrefix(candidate: String) = IdPrefix.fromValue(candidate) !in INVALID_PREFIXES
|
||||||
return isValid(candidate, 66, true)
|
private fun hasValidLength(candidate: String) = candidate.length == 66
|
||||||
}
|
private fun isValidHexEncoding(candidate: String) = HEX_CHARACTERS.containsAll(candidate.uppercase().toSet())
|
||||||
|
|
||||||
@JvmStatic
|
|
||||||
fun isValid(candidate: String, expectedLength: Int, isPrefixRequired: Boolean): Boolean {
|
|
||||||
val hexCharacters = "0123456789ABCDEF".toSet()
|
|
||||||
val isValidHexEncoding = hexCharacters.containsAll(candidate.uppercase().toSet())
|
|
||||||
val hasValidLength = candidate.length == expectedLength
|
|
||||||
val hasValidPrefix = if (isPrefixRequired) IdPrefix.fromValue(candidate) != null else true
|
|
||||||
return isValidHexEncoding && hasValidLength && hasValidPrefix
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue