diff --git a/android-client/PMA.Store.pas b/android-client/PMA.Store.pas index 012204d..e701c81 100644 --- a/android-client/PMA.Store.pas +++ b/android-client/PMA.Store.pas @@ -150,6 +150,19 @@ type end; TJGCMParameterSpecX = class(TJavaGenericImport) end; + // KeyStore.load a deux surcharges, et celle a un argument prend un + // LoadStoreParameter - pas un Object. Declarer JObject faisait chercher au + // pont une methode inexistante : "methode introuvable" a l'execution, sans + // rien signaler a la compilation. + JLoadStoreParameterClass = interface(IJavaClass) + ['{1C2D3E4F-5061-7283-94A5-B6C7D8E9F001}'] + end; + [JavaSignature('java/security/KeyStore$LoadStoreParameter')] + JLoadStoreParameter = interface(IJavaInstance) + ['{2D3E4F50-6172-8394-A5B6-C7D8E9F00112}'] + end; + TJLoadStoreParameter = class(TJavaGenericImport) end; + JKeyStoreXClass = interface(JObjectClass) ['{A49283B5-C6D7-E2F3-0415-8091A2B3C4D5}'] function getInstance(&type: JString): JKeyStoreX; cdecl; @@ -157,7 +170,7 @@ type [JavaSignature('java/security/KeyStore')] JKeyStoreX = interface(JObject) ['{B5A394C6-D7E8-F304-1526-91A2B3C4D5E6}'] - procedure load(param: JObject); cdecl; + procedure load(param: JLoadStoreParameter); cdecl; function getKey(alias: JString; password: TJavaArray): JKeyX; cdecl; function containsAlias(alias: JString): Boolean; cdecl; end; diff --git a/mainApk.pas b/mainApk.pas index 5191361..3242a02 100644 --- a/mainApk.pas +++ b/mainApk.pas @@ -290,8 +290,10 @@ begin else Log(' coffre enregistre - AUCUNE protection sur cet appareil'); except + // La classe compte autant que le message : "methode introuvable" + // designe une signature JNI fausse, pas un probleme de stockage. on E: Exception do - Log(' cache non ecrit : ' + E.Message); + Log(' cache non ecrit : ' + E.ClassName + ' - ' + E.Message); end; Log(' ' + LSw.ElapsedMilliseconds.ToString + ' ms pour ' + Length(LPlain).ToString + ' caracteres');