verifyEnvelopeSignature function
Future<void>
verifyEnvelopeSignature(
- AtClient atClient,
- String requestingAtsign,
- AtSignLogger logger,
- Map envelope, {
- FileSystem? fs,
})
Implementation
Future<void> verifyEnvelopeSignature(
AtClient atClient,
String requestingAtsign,
AtSignLogger logger,
Map envelope, {
FileSystem? fs,
}) async {
final String signature = envelope['signature'];
Map payload = envelope['payload'];
final hashingAlgo = HashingAlgoType.values.byName(envelope['hashingAlgo']);
final signingAlgo = SigningAlgoType.values.byName(envelope['signingAlgo']);
final pk = await getLocallyCachedPK(atClient, requestingAtsign, fs: fs);
AtSigningVerificationInput input = AtSigningVerificationInput(
jsonEncode(payload), base64Decode(signature), pk)
..signingMode = AtSigningMode.data
..signingAlgoType = signingAlgo
..hashingAlgoType = hashingAlgo;
AtSigningResult svr = atClient.atChops!.verify(input);
logger.info('Signing Verification Result: $svr');
logger.info('svr.result is a ${svr.result.runtimeType}');
logger.info('svr.result is ${svr.result}');
if (svr.result != true) {
throw AtSigningVerificationException(
'signature verification returned false using cached public key for $requestingAtsign $pk');
}
}