fix(android): Sync ouvrait le coffre sans demander le code
Le garde de DoSync ne couvrait que l'empreinte, et les deux protections s'excluent : un cache scelle par un code porte VER_PIN, donc VaultNeedsAuth y est FAUX. Synchroniser reconstruisait le coffre depuis le depot et l'affichait sans que le code soit demande - il ne gardait qu'un bouton sur deux. Exiger un champ rempli n'aurait rien valu : le depot est scelle par le mot de passe de sync, pas par le code, donc rien ici ne le confronte a quoi que ce soit et n'importe quelle frappe serait passee. Seul LoadVault sait si le code est le bon, et c'est "Open vault" qui l'appelle - d'ou le renvoi vers lui. Place AVANT ReconcileWithRemote et PublishPending, qui sortent de DoSync par leurs propres chemins. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+22
@@ -2147,6 +2147,28 @@ begin
|
||||
end;
|
||||
WebCall('PM.clearLog()');
|
||||
|
||||
// MEME PORTE QUE L'OUVERTURE, LE CODE DE DEVERROUILLAGE COMPRIS.
|
||||
//
|
||||
// Le garde suivant ne couvre que l'empreinte, et les deux protections
|
||||
// s'excluent : un cache scelle par un code porte VER_PIN, donc VaultNeedsAuth
|
||||
// y est FAUX et rien ne s'y opposait. Synchroniser reconstruisait alors le
|
||||
// coffre depuis le depot et l'affichait sans que le code soit demande - il ne
|
||||
// gardait qu'un bouton sur deux.
|
||||
//
|
||||
// ET C'EST L'OUVERTURE QUI VERIFIE, PAS CE GARDE. Un code tape ici ne serait
|
||||
// confronte a rien : le depot est scelle par le mot de passe de sync, pas par
|
||||
// le code. Se contenter d'exiger un champ rempli laisserait donc passer
|
||||
// n'importe quelle frappe. Seul LoadVault sait si le code est le bon, et
|
||||
// c'est "Open vault" qui l'appelle - d'ou le renvoi vers lui plutot qu'une
|
||||
// verification recopiee ici.
|
||||
if VaultNeedsPin and (FVault.Count = 0) then
|
||||
begin
|
||||
Status('Open the vault first');
|
||||
WebCall('PM.focusPin()');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
|
||||
// UN COFFRE NE ICI A QUI L'ON DONNE UN DEPOT : il faut fondre les deux, pas
|
||||
// ecraser l'un par l'autre. Sans cela le conteneur local resterait
|
||||
// l'autorite, les enregistrements n'atteindraient jamais le depot, et les
|
||||
|
||||
Reference in New Issue
Block a user