diff --git a/mainApk.pas b/mainApk.pas index 8242ba6..6ac80bb 100644 --- a/mainApk.pas +++ b/mainApk.pas @@ -1009,11 +1009,29 @@ begin // Journalise le verdict MEME quand rien n'est fait : sans cette ligne, un // rescellement qui n'a pas lieu ne laisse aucune trace, et on ne sait pas // s'il a echoue ou s'il n'a jamais ete tente. - if not VaultNeedsAuth then + if VaultNeedsPin then + Log('Cache sealed under the unlock code') + else if not VaultNeedsAuth then Log('Plain cache; device authentication available: ' + BoolToStr(BiometricAvailable, True) + ' ' + LastBiometricError); - if (not VaultNeedsAuth) and BiometricAvailable then + // LE CODE RESCELLE ICI, ET NULLE PART AILLEURS. Poser un code puis + // synchroniser ne suffisait pas : une synchronisation qui repond 304 + // n'ecrit rien, donc le cache restait dans son ancienne forme et le code + // semblait sans effet. L'ouverture, elle, tient le clair a chaque fois. + if (FPin <> '') and (not VaultNeedsPin) then + begin + try + SaveVault(LPlain, LETag, LPwd, False, False, FPin); + if VaultNeedsPin then + Log('Cache re-sealed under the unlock code') + else + Log('Re-seal under code refused: ' + LastStoreError); + except + on E: Exception do Log('Re-seal under code failed: ' + E.Message); + end; + end + else if (not VaultNeedsAuth) and (not VaultNeedsPin) and BiometricAvailable then begin try // Cle NEUVE, obligatoirement : le changement qui vient de ramener la