feat(crypto): wire AES-GCM and PBKDF2 to Windows CNG
The viewer compiled for Win64 but died on first use: AesGcmDecrypt existed only as JNI, so the desktop build downloaded 27 KB and then refused it. Windows has the same primitive in bcrypt.dll - no DLL to ship, no OpenSSL, and BCryptDeriveKeyPBKDF2 takes bytes, so none of the char[] encoding doubt that keeps the Pascal loop around on Android. This exists so the client can be exercised on the desktop; deploying an APK to watch a list redraw is a slow way to build a UI. selftest.dpr replaces the crypto-vector button the viewer dropped: same known-answer vector, console, exit code = failures. Measured here - Pascal 1670 ms, CNG 528 ms, identical keys on the non-ASCII password. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -80,14 +80,26 @@ téléphone demanderait le `PUT` côté serveur et une fusion côté client.
|
||||
|
||||
### Tester sans téléphone
|
||||
|
||||
Tout sauf le Keystore et la biométrie tourne en **Win64** — `PMA.Store`
|
||||
retourne « pas de coffre » hors Android, donc chaque lancement retélécharge et
|
||||
redérive. Suffisant pour éprouver la liste, la recherche et la copie :
|
||||
Tout sauf le Keystore et la biométrie tourne en **Win64**. `PMA.Crypto` a une
|
||||
branche Windows adossée à **CNG** (`bcrypt.dll`) — même primitive, aucune DLL à
|
||||
livrer, et la clé dérivée est identique à celle d'Android (vérifié sur le
|
||||
vecteur, mot de passe non-ASCII compris). `PMA.Store` répond « pas de coffre »
|
||||
hors Android, donc chaque lancement retélécharge et redérive.
|
||||
|
||||
```bash
|
||||
"C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\dcc64.exe" -B "-UC:\Program Files (x86)\Embarcadero\Studio\23.0\lib\Win64\release" pmserverApk.dpr
|
||||
```
|
||||
|
||||
`selftest.dpr` vérifie la chaîne crypto contre le vecteur en console — c'est ce
|
||||
qui a remplacé le bouton *Test crypto* du banc d'essai. Code de sortie = nombre
|
||||
d'échecs :
|
||||
|
||||
```bash
|
||||
"C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\dcc64.exe" -B "-UC:\Program Files (x86)\Embarcadero\Studio\23.0\lib\Win64\release" android-client\selftest.dpr
|
||||
```
|
||||
|
||||
Mesures sur ce poste : PBKDF2 Pascal 1670 ms, CNG **528 ms**, clés identiques.
|
||||
|
||||
## Diagnostiquer un échec de déchiffrement
|
||||
|
||||
`try-open.js` ouvre un conteneur avec Node, donc avec les primitives du
|
||||
|
||||
Reference in New Issue
Block a user