verifyPrsonalMessage method
verify personal message. the signature must be a valid sui signature.
Implementation
@override
bool verifyPrsonalMessage(
{required List<int> message, required List<int> signature}) {
try {
final digest = SuiCryptoUtils.generatePersonalMessageDigest(message);
final multisigSignature = SuiBaseSignature.deserialize(signature)
.cast<SuiMultisigSignature>(error: "Invalid signature scheme.");
// Check public key match
if (multisigSignature.publicKey != this) {
return false;
}
int weight = 0;
for (final i in multisigSignature.signatures) {
for (final publicKey in publicKeys) {
if (i.algorithm != publicKey.publicKey.algorithm) continue;
if (publicKey.publicKey
.verify(message: digest, signature: i.signature)) {
weight += publicKey.weight;
break;
}
}
}
return weight >= threshold;
} on DartSuiPluginException {
rethrow;
} catch (e) {
throw DartSuiPluginException(
"Invalid multisig signature: deserialize signature failed.");
}
}