Einzelnen Beitrag anzeigen

sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

SSL und Android App auf Android 6.0 Device

  Alt 27. Jan 2017, 11:07
Hallo,

seit 2 Tagen google ich und probiere mir die Finger wund, ich komme nicht weiter:

Eine App von mir, die auf Android Geräten bis 5.01 funktioniert, macht Probleme auf Android >=6.0, es kann keine SSL-Verbindung aufgebaut werden.
Dass Google da die Bibliotheken geändert hat weiß ich, ich habe die so-Files der Version 1.02g und diese auch in der RAD-Studio Bereitstellung entsprechend nach .\assets\internal\ kopieren lassen.
Ein Test im Programm zeigt auch dass die Dateien vorhanden sind.
Aber wenn ich dann in einem Testprojekt die SSL-Version anzeigen lasse, ist die weiterhin 1.01k!

Hat jemand bitte einen Tip?

Die DPR-Datei:
Code:
program Test_SSL_V6;

uses
  System.StartUpCopy,
System.IoUtils,
  FMX.Forms,
  IdSSLOpenSSLHeaders,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
{$IFDEF ANDROID}
  IdOpenSSLSetLibPath(TPath.GetDocumentsPath);
{$ENDIF}
  Application.CreateForm(TForm1, Form1);
  Application.Run;

end.
und das Programm :

Code:
unit Unit1;

interface

uses
  System.StartUpCopy,
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, IdSSLOpenSSL,
  System.ioutils, IdSSLOpenSSLHeaders, FMX.StdCtrls, FMX.Controls.Presentation;

type
  TForm1 = class(TForm)
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

function StartupFileExists(const AFilename: string): Boolean;
begin
  Result := TFile.Exists(TPath.Combine(TPath.GetDocumentsPath, AFilename));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Showmessage(OpenSSLVersion);
end;

procedure TForm1.FormShow(Sender: TObject);
var
fn : string;
begin
  if not StartupFileExists('libssl.so') then
    showmessage('libssl.so in '+  TPath.GetDocumentsPath + ' nicht gefunden');
  fn := TPath.GetDocumentsPath;
  IdOpenSSLSetLibPath(fn); // no effect
  Showmessage(OpenSSLVersion); // opensll 1.0.1k-fips 8 Jan 2015
  Showmessage(WhichFailedToLoad); // empty

end;

end.
Danke
Ciao
Stefan
  Mit Zitat antworten Zitat