Less "!!"
This commit is contained in:
parent
23c20acff1
commit
4504308f25
@ -33,12 +33,10 @@ internal data class MessageVerificationDoneContent(
|
||||
override fun toEventContent(): Content? = toContent()
|
||||
|
||||
override fun asValidObject(): ValidVerificationDone? {
|
||||
if (transactionID.isNullOrEmpty()) {
|
||||
return null
|
||||
}
|
||||
val validTransactionId = transactionID?.takeIf { it.isNotEmpty() } ?: return null
|
||||
|
||||
return ValidVerificationDone(
|
||||
transactionID!!
|
||||
validTransactionId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -15,8 +15,6 @@
|
||||
*/
|
||||
package im.vector.matrix.android.internal.crypto.verification
|
||||
|
||||
import timber.log.Timber
|
||||
|
||||
internal interface VerificationInfoAccept : VerificationInfo<ValidVerificationInfoAccept> {
|
||||
/**
|
||||
* The key agreement protocol that Bob’s device has selected to use, out of the list proposed by Alice’s device
|
||||
@ -45,23 +43,20 @@ internal interface VerificationInfoAccept : VerificationInfo<ValidVerificationIn
|
||||
var commitment: String?
|
||||
|
||||
override fun asValidObject(): ValidVerificationInfoAccept? {
|
||||
if (transactionID.isNullOrBlank()
|
||||
|| keyAgreementProtocol.isNullOrBlank()
|
||||
|| hash.isNullOrBlank()
|
||||
|| commitment.isNullOrBlank()
|
||||
|| messageAuthenticationCode.isNullOrBlank()
|
||||
|| shortAuthenticationStrings.isNullOrEmpty()) {
|
||||
Timber.e("## received invalid verification request")
|
||||
return null
|
||||
}
|
||||
val validTransactionId = transactionID?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validKeyAgreementProtocol = keyAgreementProtocol?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validHash = hash?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validMessageAuthenticationCode = messageAuthenticationCode?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validShortAuthenticationStrings = shortAuthenticationStrings?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validCommitment = commitment?.takeIf { it.isNotEmpty() } ?: return null
|
||||
|
||||
return ValidVerificationInfoAccept(
|
||||
transactionID!!,
|
||||
keyAgreementProtocol!!,
|
||||
hash!!,
|
||||
messageAuthenticationCode!!,
|
||||
shortAuthenticationStrings!!,
|
||||
commitment
|
||||
validTransactionId,
|
||||
validKeyAgreementProtocol,
|
||||
validHash,
|
||||
validMessageAuthenticationCode,
|
||||
validShortAuthenticationStrings,
|
||||
validCommitment
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -27,12 +27,12 @@ internal interface VerificationInfoCancel : VerificationInfo<ValidVerificationIn
|
||||
val reason: String?
|
||||
|
||||
override fun asValidObject(): ValidVerificationInfoCancel? {
|
||||
if (transactionID.isNullOrBlank() || code.isNullOrBlank()) {
|
||||
return null
|
||||
}
|
||||
val validTransactionId = transactionID?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validCode = code?.takeIf { it.isNotEmpty() } ?: return null
|
||||
|
||||
return ValidVerificationInfoCancel(
|
||||
transactionID!!,
|
||||
code!!,
|
||||
validTransactionId,
|
||||
validCode,
|
||||
reason
|
||||
)
|
||||
}
|
||||
|
@ -25,12 +25,12 @@ internal interface VerificationInfoKey : VerificationInfo<ValidVerificationInfoK
|
||||
val key: String?
|
||||
|
||||
override fun asValidObject(): ValidVerificationInfoKey? {
|
||||
if (transactionID.isNullOrBlank() || key.isNullOrBlank()) {
|
||||
return null
|
||||
}
|
||||
val validTransactionId = transactionID?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validKey = key?.takeIf { it.isNotEmpty() } ?: return null
|
||||
|
||||
return ValidVerificationInfoKey(
|
||||
transactionID!!,
|
||||
key!!
|
||||
validTransactionId,
|
||||
validKey
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -30,13 +30,14 @@ internal interface VerificationInfoMac : VerificationInfo<ValidVerificationInfoM
|
||||
val keys: String?
|
||||
|
||||
override fun asValidObject(): ValidVerificationInfoMac? {
|
||||
if (transactionID.isNullOrBlank() || keys.isNullOrBlank() || mac.isNullOrEmpty()) {
|
||||
return null
|
||||
}
|
||||
val validTransactionId = transactionID?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validMac = mac?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validKeys = keys?.takeIf { it.isNotEmpty() } ?: return null
|
||||
|
||||
return ValidVerificationInfoMac(
|
||||
transactionID!!,
|
||||
mac!!,
|
||||
keys!!
|
||||
validTransactionId,
|
||||
validMac,
|
||||
validKeys
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -37,16 +37,14 @@ internal interface VerificationInfoReady : VerificationInfo<ValidVerificationInf
|
||||
val methods: List<String>?
|
||||
|
||||
override fun asValidObject(): ValidVerificationInfoReady? {
|
||||
if (transactionID.isNullOrBlank()
|
||||
|| fromDevice.isNullOrBlank()
|
||||
|| methods.isNullOrEmpty()) {
|
||||
return null
|
||||
}
|
||||
val validTransactionId = transactionID?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validFromDevice = fromDevice?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validMethods = methods?.takeIf { it.isNotEmpty() } ?: return null
|
||||
|
||||
return ValidVerificationInfoReady(
|
||||
transactionID!!,
|
||||
fromDevice!!,
|
||||
methods!!
|
||||
validTransactionId,
|
||||
validFromDevice,
|
||||
validMethods
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -38,13 +38,14 @@ internal interface VerificationInfoRequest : VerificationInfo<ValidVerificationI
|
||||
|
||||
override fun asValidObject(): ValidVerificationInfoRequest? {
|
||||
// FIXME No check on Timestamp?
|
||||
if (transactionID.isNullOrBlank() || methods.isNullOrEmpty() || fromDevice.isNullOrEmpty()) {
|
||||
return null
|
||||
}
|
||||
val validTransactionId = transactionID?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validFromDevice = fromDevice?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validMethods = methods?.takeIf { it.isNotEmpty() } ?: return null
|
||||
|
||||
return ValidVerificationInfoRequest(
|
||||
transactionID!!,
|
||||
fromDevice!!,
|
||||
methods!!,
|
||||
validTransactionId,
|
||||
validFromDevice,
|
||||
validMethods,
|
||||
timestamp
|
||||
)
|
||||
}
|
||||
|
@ -64,43 +64,39 @@ internal interface VerificationInfoStart : VerificationInfo<ValidVerificationInf
|
||||
fun toCanonicalJson(): String
|
||||
|
||||
override fun asValidObject(): ValidVerificationInfoStart? {
|
||||
if (transactionID.isNullOrBlank()
|
||||
|| fromDevice.isNullOrBlank()) {
|
||||
return null
|
||||
}
|
||||
val validTransactionId = transactionID?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validFromDevice = fromDevice?.takeIf { it.isNotEmpty() } ?: return null
|
||||
|
||||
return when (method) {
|
||||
VERIFICATION_METHOD_SAS -> {
|
||||
if (keyAgreementProtocols.isNullOrEmpty()
|
||||
|| hashes.isNullOrEmpty()
|
||||
|| !hashes!!.contains("sha256") || messageAuthenticationCodes.isNullOrEmpty()
|
||||
|| (!messageAuthenticationCodes!!.contains(SASDefaultVerificationTransaction.SAS_MAC_SHA256)
|
||||
&& !messageAuthenticationCodes!!.contains(SASDefaultVerificationTransaction.SAS_MAC_SHA256_LONGKDF))
|
||||
|| shortAuthenticationStrings.isNullOrEmpty()
|
||||
|| !shortAuthenticationStrings!!.contains(SasMode.DECIMAL)) {
|
||||
null
|
||||
} else {
|
||||
ValidVerificationInfoStart.SasVerificationInfoStart(
|
||||
transactionID!!,
|
||||
fromDevice!!,
|
||||
keyAgreementProtocols!!,
|
||||
hashes!!,
|
||||
messageAuthenticationCodes!!,
|
||||
shortAuthenticationStrings!!,
|
||||
canonicalJson = toCanonicalJson()
|
||||
)
|
||||
}
|
||||
val validKeyAgreementProtocols = keyAgreementProtocols?.takeIf { it.isNotEmpty() } ?: return null
|
||||
val validHashes = hashes?.takeIf { it.contains("sha256") } ?: return null
|
||||
val validMessageAuthenticationCodes = messageAuthenticationCodes
|
||||
?.takeIf {
|
||||
it.contains(SASDefaultVerificationTransaction.SAS_MAC_SHA256)
|
||||
|| it.contains(SASDefaultVerificationTransaction.SAS_MAC_SHA256_LONGKDF)
|
||||
}
|
||||
?: return null
|
||||
val validShortAuthenticationStrings = shortAuthenticationStrings?.takeIf { it.contains(SasMode.DECIMAL) } ?: return null
|
||||
|
||||
ValidVerificationInfoStart.SasVerificationInfoStart(
|
||||
validTransactionId,
|
||||
validFromDevice,
|
||||
validKeyAgreementProtocols,
|
||||
validHashes,
|
||||
validMessageAuthenticationCodes,
|
||||
validShortAuthenticationStrings,
|
||||
canonicalJson = toCanonicalJson()
|
||||
)
|
||||
}
|
||||
VERIFICATION_METHOD_RECIPROCATE -> {
|
||||
if (sharedSecret.isNullOrBlank()) {
|
||||
null
|
||||
} else {
|
||||
ValidVerificationInfoStart.ReciprocateVerificationInfoStart(
|
||||
transactionID!!,
|
||||
fromDevice!!,
|
||||
sharedSecret!!
|
||||
)
|
||||
}
|
||||
val validSharedSecret = sharedSecret?.takeIf { it.isNotEmpty() } ?: return null
|
||||
|
||||
ValidVerificationInfoStart.ReciprocateVerificationInfoStart(
|
||||
validTransactionId,
|
||||
validFromDevice,
|
||||
validSharedSecret
|
||||
)
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user