openSSSS method
Implementation
Future<void> openSSSS({
String? passphrase,
String? recoveryKey,
String? keyOrPassphrase,
bool skip = false,
}) async {
Future<void> next() async {
if (_nextAction == 'request') {
await sendRequest();
} else if (_nextAction == 'done') {
// and now let's sign them all in the background
unawaited(encryption.crossSigning.sign(_verifiedDevices));
setState(KeyVerificationState.done);
} else if (_nextAction == 'showQRSuccess') {
setState(KeyVerificationState.showQRSuccess);
}
}
if (skip) {
await next();
return;
}
final handle = encryption.ssss.open(EventTypes.CrossSigningUserSigning);
await handle.unlock(
passphrase: passphrase,
recoveryKey: recoveryKey,
keyOrPassphrase: keyOrPassphrase,
);
await handle.maybeCacheAll();
await next();
}