validateSignature function
void
validateSignature(
- RequestedProofs requestedProofs,
- String signature,
- ApplicationId applicationId,
- String linkingVersion,
- String timeStamp,
Implementation
void validateSignature(RequestedProofs requestedProofs, String signature,
ApplicationId applicationId, String linkingVersion, String timeStamp) {
try {
var address = '';
if (requestedProofs.claims.isNotEmpty &&
(linkingVersion == 'V2Linking' ||
requestedProofs.claims[0].payload.verificationType == 'MANUAL')) {
final messageHash = keccak256(utf8.encode(jsonEncode({
'providerId': requestedProofs.claims[0].httpProviderId,
'timestamp': timeStamp,
})));
address = EthSigUtil.recoverSignature(
signature: signature, message: messageHash);
} else {
final messageHash =
keccak256(utf8.encode(jsonEncode(requestedProofs.toJson())));
address = EthSigUtil.recoverSignature(
signature: signature, message: messageHash);
}
if (applicationId.toLowerCase() != address.toLowerCase()) {
throw InvalidSignatureError();
}
} catch (err) {
rethrow;
}
}