fix: read back sent copies after the sec 5.6 upstream fix, pinned at 2d65d66

This commit is contained in:
randogoth 2026-09-28 23:49:39 +03:00
parent 52947e153d
commit d6f4c434fa
36 changed files with 4223 additions and 3118 deletions

View file

@ -8,9 +8,9 @@ import "package:smol_mail/presentation/routes/app_router.gr.dart";
import "package:smol_mail/presentation/widgets/primary_button.dart";
import "package:smol_mail/presentation/widgets/secondary_button.dart";
import "package:smol_mail/presentation/widgets/small_loading_spinner.dart";
import "package:smol_mail/smol/crypto.dart";
import "package:smol_mail/smol/address.dart";
import "package:smol_mail/smol/errors.dart";
import "package:smol_mail/smol/proto.dart";
import "package:smol_mail/smol/ui.dart";
import "package:smol_mail/presentation/theme/app_colors.dart";
import "package:smol_mail/shared/utils/snackbar.dart";
@ -49,6 +49,10 @@ class _OnboardingScreenState extends ConsumerState<OnboardingScreen> {
@override
void dispose() {
// The backup step's copy of the master is overwritten, not left to the
// garbage collector — the honest zeroization Dart allows.
createdMaster?.fillRange(0, createdMaster!.length, 0);
createdMaster = null;
seedController.dispose();
restoreAddressController.dispose();
addressController.dispose();
@ -81,11 +85,12 @@ class _OnboardingScreenState extends ConsumerState<OnboardingScreen> {
}
}
void _createIdentity() {
Future<void> _createIdentity() async {
_clearAbandonedIdentity();
final client = ref.read(clientProvider);
try {
final master = client.createIdentity();
final master = await client.createIdentity();
if (!mounted) return;
setState(() {
createdMaster = master;
step = _Step.backup;