Einzelnen Beitrag anzeigen

philipp.hofmann

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

AW: Android - SLL-Verschlüsselung

  Alt 8. Dez 2021, 12: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/
Miniaturansicht angehängter Grafiken
screenshotopensslunderandroid.jpg  
  Mit Zitat antworten Zitat