feat(android): folder filter, icons, sort, template, updated_at, FLAG_SECURE
Works through the plan's §2 and §3 items that need no hardware and no platform decision. - allowBackup="false". The private directory holds vault.bin; a cloud backup has no business in a password manager's path, even though what would leave is encrypted by a key that stays in the chip. - FLAG_SECURE, Release builds only - in debug it also blocks development screenshots. Complementary to hiding on WillBecomeInactive rather than redundant: that one covers the recents preview, the flag also covers manual captures, screen recording and casting to an external display. - List sorted by name (snapshot order is DB order, arbitrary to the eye), entry icons decoded once per vault rather than on every keystroke, and a folder dropdown whose selection survives a background refresh. No tag filter: text search already matches tags. - template and updated_at read and shown in the detail. updated_at is also step 1 of the write path - nothing is arbitrable without it. Android code is now type-checked without deploying: dccaarm64 reaches the link step and fails only on the NDK's ldandroid.exe. A JNI declaration that does not compile no longer waits for an APK to say so. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -91,6 +91,12 @@ le champ mot de passe et s'affiche donc sous un autre intitulé, sans masque ;
|
||||
et le **code 2FA**, seule ligne vivante, rafraîchie chaque seconde et placée en
|
||||
tête — c'est ce qu'on vient chercher sur un téléphone.
|
||||
|
||||
La liste est triée par nom — l'ordre de l'instantané est celui de la base,
|
||||
arbitraire à l'œil — et porte l'icône de l'entrée quand elle en a une, décodée
|
||||
une fois par coffre et non à chaque frappe. Une liste déroulante filtre par
|
||||
dossier ; il n'y a **pas** de filtre d'étiquette, la recherche texte les
|
||||
couvrant déjà.
|
||||
|
||||
Le TOTP ([PMA.Totp.pas](PMA.Totp.pas)) accepte le base32 nu comme l'URI
|
||||
`otpauth://`, les deux circulant dans les instantanés selon la façon dont
|
||||
l'entrée a été créée. Vérifié contre les six vecteurs de la RFC 6238.
|
||||
@@ -158,6 +164,7 @@ Node ouvre le fichier et pas le client, le défaut est dans le client.
|
||||
| `PMA.Biometric.pas` | authentification via `FMX.BiometricAuth` |
|
||||
| `PMA.Vault.pas` | l'instantané en mémoire : lecture et recherche |
|
||||
| `PMA.Totp.pas` | codes TOTP (RFC 6238), base32 ou `otpauth://` |
|
||||
| `PMA.ScreenGuard.pas` | `FLAG_SECURE` (Release seulement) |
|
||||
| `selftest.dpr` | vérification console : conteneur + TOTP |
|
||||
| `PMA.TestVector.pas` | le vecteur embarqué, plus référencé par l'interface |
|
||||
| `make-testvector.js` | régénère le vecteur avec WebCrypto |
|
||||
|
||||
Reference in New Issue
Block a user