feat(android): le mot de passe de creation ouvre le coffre

Il ne servait qu'une fois, a la creation : le cache s'ouvrait ensuite
sans rien demander, et n'importe qui tenant le telephone deverrouille
lisait le coffre.

Il est desormais pose comme code de deverrouillage - c'est exactement ce
que ce format sait faire, et il accepte un mot de passe entier aussi bien
que des chiffres depuis qu'on a retire le clavier numerique. Le cache
porte donc VER_PIN, la seule forme qui survive aussi a une
reinitialisation du verrouillage d'ecran.

Retirable en deux appuis depuis les reglages, pour qui prefere
l'ouverture immediate.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-08-28 16:14:54 +01:00
parent 9b26a1dbd0
commit 494efddb44
+14 -2
View File
@@ -1884,9 +1884,21 @@ begin
// Pas d'ETag : rien n'a ete publie. Le cache s'ecrit quand meme, sinon
// la prochaine ouverture redemanderait six secondes de derivation pour
// un coffre vide.
SaveVault(LPlain, '', APwd, BiometricAvailable, False, FPin,
// LE MOT DE PASSE DE CREATION OUVRE LE COFFRE, et c'est le sens qu'on
// attend de lui. Sans cela le cache s'ouvrait sans rien demander : le
// mot de passe ne servait qu'une fois, a la creation, et n'importe qui
// tenant le telephone deverrouille lisait le coffre ensuite.
//
// On le pose donc comme code de deverrouillage - c'est exactement ce
// que ce format sait faire, et il accepte un mot de passe entier aussi
// bien que des chiffres. ARequireAuth a FAUX : les deux protections
// s'excluent, un cache scelle par un code porte VER_PIN.
//
// Il reste retirable en deux appuis depuis les reglages, pour qui
// prefere l'ouverture immediate.
SaveVault(LPlain, '', APwd, False, False, APwd,
FKey, FKeySalt, FKeyIters);
FPinSealed := FPin; // coffre neuf : ce code est desormais le sien
FPinSealed := APwd; // coffre neuf : ce mot de passe est desormais le sien
TThread.Queue(nil,
procedure
begin