feat(backup): sealed backups + printable recovery sheet
'Save a backup' now writes a sealed .tanemaki file (AES-256-GCM under a key HKDF-derived from the root seed; format TANEBK v1, open and stable). Restoring on the same identity is silent; a copy sealed by another identity asks for the printed recovery code (TANE1 base32, typo-tolerant) and adopts that seed — recovering your bank recovers you. Legacy plain exports still restore. Settings gains a recovery sheet (QR + code PDF). BackupBox/RecoveryCode live in commons_core, pure Dart, TDD.
This commit is contained in:
parent
ba87bf2719
commit
d6781870d9
19 changed files with 1016 additions and 81 deletions
|
|
@ -63,7 +63,16 @@
|
|||
"importDone": "Importado: {added} nuevas, {updated} actualizadas",
|
||||
"importCsvDone": "Añadidas {count} entradas",
|
||||
"importFailed": "Este fichero no se pudo leer como una copia de Tanemaki",
|
||||
"failed": "Algo ha salido mal"
|
||||
"failed": "Algo ha salido mal",
|
||||
"recoveryTitle": "Tu código de recuperación",
|
||||
"recoverySubtitle": "Imprímelo y guárdalo bien: abre tus copias en otro dispositivo",
|
||||
"recoveryIntro": "Este código abre tus copias guardadas y recupera tu banco en cualquier dispositivo. Guarda dos copias en papel en sitios seguros, como tu mejor semilla. Quien lo tenga puede leer tus copias, así que no lo compartas con nadie.",
|
||||
"recoveryCopy": "Copiar",
|
||||
"recoverySave": "Guardar la hoja",
|
||||
"recoverySheetTitle": "Tanemaki — tu hoja de recuperación",
|
||||
"recoveryPromptTitle": "Escribe tu código de recuperación",
|
||||
"recoveryPromptBody": "Esta copia se guardó con otro código. Escribe el código de tu hoja de recuperación para abrirla.",
|
||||
"recoveryWrongCode": "Ese código no abre esta copia"
|
||||
},
|
||||
"about": {
|
||||
"title": "Acerca de",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue