Einzelnen Beitrag anzeigen

schotti65

Registriert seit: 4. Sep 2010
Ort: Berlin
53 Beiträge
 
Delphi XE5 Enterprise
 
#1

SQLite iOS encrypt password klappt nicht

  Alt 24. Jan 2014, 22:21
Ich verwende eine SQLite Datenbank.
Das "Backend" (Windows VCL) pflegt diese, die iOS-App (FMX mobile) (iPad iOS7) liest diese.
Die *.sdb für die App wird beim deployen mitverteilt und später via FTP aktualisiert.
Alles hat im Prinzip schon funktioniert.

Jetzt habe ich die *.sdb verschlüsselt, im Backend unter Windows:
Delphi-Quellcode:
  FDSQLiteSecurity1.Database := FDConnection1.Params.Values['Database'];
  FDSQLiteSecurity1.Password := constCryptDatabasePassword;
  FDSQLiteSecurity1.SetPassword;
Im Backend alles schön, das Öffnen geht danach wie folgt:
Delphi-Quellcode:
function openDb(cPath : string; db : TFDConnection) : boolean;
begin
  if cPath <> 'then begin
    db.Params.Values['Database'] := cPath;
  end;

  db.Params.Values['LockingMode'] := 'normal';
  db.Params.Values['Password'] := constCryptDatabasePassword; // ohne diese Zeile hatte alles funktioniert...

  db.Connected := true;

  ...

  result := true;
end;
Im Backend geht das auch wunderbar.
ABER in der App kommt die Fehlermeldung

"...file is encrypted or is not a database"

Als Gegenprobe habe ich die PW-Konstante geändert und bekomme dann im Backend "...invalid password is specified or db is corrupted".
In der App wie oben.
(D.h. in der App wird das PW nicht falsch interpretiert (könnte ja sein, das iOS automatisch ein "aesXYZ-" davor setzt o.ä.) - denn dann käme ja auch in der App diese Fehlermeldung, sondern einfach nicht beachtet)

Der obige Code zum Öffnen wird gleichermassen von der App und vom Backend benutzt.
(Ich hab also keinen Schreibfehler gemacht)

Es ist, als ob die SQLite-Bibliothek (sagt man unter iOS so?) sich gar nicht für den Parameter "Password" interessieren würde... ("password" mit kleinem "p" hab ich auch probiert)

Hat jemand eine Idee?

PS: in der Doku http://docwiki.embarcadero.com/RADSt...te_mit_FireDAC liest sich das für mich so, als ob "Password" unter iOS auch funzen sollte...

Geändert von schotti65 (24. Jan 2014 um 22:24 Uhr) Grund: was vergessen
  Mit Zitat antworten Zitat