AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Android - SSL-Verschlüsselung

Ein Thema von AuronTLG · begonnen am 8. Dez 2021 · letzter Beitrag vom 20. Apr 2022
Antwort Antwort
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
323 Beiträge
 
Delphi 12 Athens
 
#1

Android - SSL-Verschlüsselung

  Alt 8. Dez 2021, 08:46
Hallo,
ich wollte bei einer App einen verschlüsselten FTP-Zugriff implementieren und hatte eigentlich erwartet, dass ich das problemlos mit OpenSSL machen kann, so wie in der VCL, wo man dem IDFTP einfach einen entsprechend SSL-IOHandler verpasst.
Dies scheint aber nicht der Fall zu sein, da OpenSSL anscheinend schon seit Android 6 nicht mehr seitens Embarcadero dafür unterstützt wird.
Ich versuche gerade herauszufinden, was nun die einfachste Möglichkeit ist, das auf Android hinzubekommen, bin aber momentan eher verwirrt von dem, was ich dazu finde. Daher wollte ich mal hier diesbezüglich nachfragen, da ich doch bestimmt nicht der einzige bin, der sowas implementieren will...
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
926 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Android - SLL-Verschlüsselung

  Alt 8. Dez 2021, 10:19
Was genau willst du implementieren? SFTP oder FTPS?
Mit Indy geht zumindest meines Wissens kein SFTP und FTPS ist nicht wirklich sicher.
Für SFTP nutze ich Chillkat, da habe ich aber nur mit deren Delphi DLLs Erfahrung, die dir hier nicht weiterhelfen.
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
323 Beiträge
 
Delphi 12 Athens
 
#3

AW: Android - SLL-Verschlüsselung

  Alt 8. Dez 2021, 10:24
Ich wollte FTPS per Indy implementieren, was ja in der VCL ziemlich problemlos ging.
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
926 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Android - SLL-Verschlüsselung

  Alt 8. Dez 2021, 10:34
Ok, also ich nutze in meinem Projekt weiterhin OpenSSL auf Android zum Versenden von Mails, dies ist also kein generelles Problem. Die Version ist dabei OpenSSL 1.0.2q 20 Nov 2018.
Geht dies bei dir nicht?
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
323 Beiträge
 
Delphi 12 Athens
 
#5

AW: Android - SLL-Verschlüsselung

  Alt 8. Dez 2021, 11:16
Ich habe bis jetzt kein eigens installiertes OpenSSL genutzt, da man in der VCL ja einfach nur die TiDSSLIOHandlerSocketOpenSSL-Komponente nutzen musste.

Wäre das der einzige Weg, um FTPS auf Android hinzubekommen?
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
926 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Android - SLL-Verschlüsselung

  Alt 8. Dez 2021, 11:46
Ich wäre auch davon ausgegangen, dass du dafür schon die OpenSSL-DLLs beilegen musst. Aber da kenne ich mich nicht aus.
Ich nutze für die Mails


und folgendermaßen initialisiere ich OpenSSL
Delphi-Quellcode:
  
object IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL
    MaxLineAction = maException
    Port = 0
    DefaultPort = 0
    SSLOptions.Method = sslvTLSv1_2
    SSLOptions.SSLVersions = [sslvTLSv1_2]
    SSLOptions.Mode = sslmUnassigned
    SSLOptions.VerifyMode = []
    SSLOptions.VerifyDepth = 0
    Left = 1096
    Top = 152
  end
und folgendermaßen initialisiere ich dies:
Delphi-Quellcode:
procedure TicTrainerF.initSSL();
{$IFNDEF IOS}
var help2: String;
{$ENDIF}
begin
  if (not sslInited) then
  begin
    sslInited:=true;
    {$IFDEF ANDROID}
      IdOpenSSLSetLibPath(String.Empty);
    {$ENDIF}
    {$IFDEF IOS}
    {$ELSE}
      {$IFDEF MACOS}
        IdOpenSSLSetCanLoadSymLinks(false);
        IdOpenSSLSetLoadSymLinksFirst(false);
        IdOpenSSLSetLibPath(TPath.GetDirectoryName(ParamStr(0)));
        mlog.info('InitSSL from ' + TPath.GetDirectoryName(ParamStr(0)));
      {$ENDIF}
    {$ENDIF}
    {$IFDEF MSWINDOWS}
      IdOpenSSLSetLibPath(TPath.GetDirectoryName(ParamStr(0)));
      mlog.info('InitSSL from ' + TPath.GetDirectoryName(ParamStr(0)));
    {$ENDIF}

    IdSSLOpenSSLHeaders.Load();
    {$IFDEF ANDROID}
      help2:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
      if (length(help2) > 0) then
      begin
        IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetLibraryPath));
        IdSSLOpenSSLHeaders.Load();
        help2:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
        if (length(help2) > 0) then
        begin
          IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetDocumentsPath));
          IdSSLOpenSSLHeaders.Load();
          mlog.info('SSL-Version(3): ' + OpenSSLVersion);
          help2:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
          if (length(help2) > 0) then
          begin
            mlog.info('SSL-Errors: ' + help2);
          end;
        end else begin
          mlog.info('SSL-Version(2): ' + OpenSSLVersion);
        end;
      end else begin
        mlog.info('SSL-Version(1): ' + OpenSSLVersion);
      end;
    {$ELSE}
      mlog.info('SSL-Version: ' + OpenSSLVersion);
      {$IFNDEF IOS}
        help2:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
        if (length(help2) > 0) then
          mlog.info('SSL-Errors : ' + help2);
      {$ENDIF}
    {$ENDIF}
  end;
end;
und natürlich legen ich der App alle notwendigen Libs bei und die habe ich von hier:
https://git.fairkom.net/chat/faircha...sl/android-arm
https://git.fairkom.net/chat/faircha...android-arm64/
Angehängte Grafiken
Dateityp: jpg ScreenshotOpenSSLunderAndroid.jpg (20,0 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz