AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi BoringSSL / Android - Wie binde ich das ein??

BoringSSL / Android - Wie binde ich das ein??

Ein Thema von SearchBot · begonnen am 31. Jan 2025 · letzter Beitrag vom 3. Feb 2025
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
323 Beiträge
 
Delphi 12 Athens
 
#1

BoringSSL / Android - Wie binde ich das ein??

  Alt 31. Jan 2025, 16:24
Hallo,

In meinem Projekt möchte ich aus einer NextCloud eine Datei herunterladen, in meiner App aktualisieren und wieder in die Cloud zurück speichern.
Mit diesem Code komme ich an die API ran:
https://github.com/halilhanbadem/delphi_nextcloudapi
Scheitert aktuell nur am SSL.

Zitat:
Erste Gelegenheit für Exception bei $C372C26D. Exception-Klasse EIdOSSLCouldNotLoadSSLLibrary mit Meldung 'SSL.-Bibliothek konnte nicht geladen werden.'. Prozess MeineApp.apk (3754)
Und jetzt komme ich mal wieder nicht weiter, weil die Emba-Hilfe hier so unglaublich ausführliche Informationen bereitstellt:
Zitat:
Unter Android Version 6 und höher müssen Sie die OpenSSL-Bibliotheken einbeziehen, da Android nicht mehr OpenSSL sondern BoringSSL verwendet.
  • Wie "die OpenSSL-Bib.. einbeziehen"? Das steht doch, daß Android "BoringSSL" verwendet - warum dann die OpenSSL?
  • Und wo mache ich das "einbeziehen"?
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.649 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: BoringSSL / Android - Wie binde ich das ein??

  Alt 31. Jan 2025, 16:50
Im englischen Original steht da:

"On Android version 6 and later, you need to include the OpenSSL Libraries since Android moved away from OpenSSL to BoringSSL."

"include" -> "einbeziehen" kann man so übersetzen, macht aber wenig Sinn.
Man muss also die OpenSSL-Library selbst mitliefern.

(Ich habe aber keine Idee, wie das geht, ich programmiere nicht für Android.)
Thomas Mueller
  Mit Zitat antworten Zitat
philipp.hofmann

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

AW: BoringSSL / Android - Wie binde ich das ein??

  Alt 1. Feb 2025, 00:17
Ich glaube ich habe die OpenSSL-Libraries von hier bezogen (notfalls PN an mich mit E-Mail-Adresse dann schicke ich dir meine Libs zu):
https://git.fairkom.net/chat/faircha...android-arm64/
https://github.com/IndySockets/OpenSSL-Binaries

a) Einbinden im Deployment (sowohl im Android-32 als auch im Android-64-Projekt): Siehe Anhang
b) Einbinden im Code:

Delphi-Quellcode:
procedure TicTrainerF.initSSL();
var help2: String;
begin
  if (not sslInited) then
  begin
    sslInited:=true;
    IdOpenSSLSetLibPath(String.Empty);
    IdSSLOpenSSLHeaders.Load();
    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): ' + IdSSLOpenSSL.OpenSSLVersion);
        help2:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
        if (length(help2) > 0) then
        begin
          mlog.info('SSL-Errors: ' + help2);
        end;
      end else begin
        mlog.info('SSL-Version(2): ' + IdSSLOpenSSL.OpenSSLVersion);
      end;
    end else begin
      mlog.info('SSL-Version(1): ' + IdSSLOpenSSL.OpenSSLVersion);
    end;
  end;
end;
Das sollte es schon sein.

P.S.: Die ist alles OpenSSL 1.0, also uralt. Ich hoffe mit jedem Release, dass man sich mit Remy Lebeau (Indy) geeinigt hat und auf OpenSSL 1.1 oder neuer aktualisiert.
Miniaturansicht angehängter Grafiken
androidopenssl.png  

Geändert von philipp.hofmann ( 1. Feb 2025 um 00:19 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.017 Beiträge
 
Delphi 12 Athens
 
#4

AW: BoringSSL / Android - Wie binde ich das ein??

  Alt 2. Feb 2025, 15:56
Hallo,

was ich so mitbekommen habe läuft gerade wohl ein irgendwie zu Indy gehörendes Projekt,
welches TLS 1.3 Unterstützung umsetzt. Ich würde mal vermuten, dass da auch neuere OpenSSL
Versionen mit am Start sind.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
philipp.hofmann

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

AW: BoringSSL / Android - Wie binde ich das ein??

  Alt 2. Feb 2025, 22:40
Müssen ja dann neue Versionen am Start sein, Version 1.0 wird kein TLS 1.3 mehr bekommen. Es wird auch endlich Zeit. Danke für den Hinweis, dann hoffe ich mal auf Delphi 13.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.777 Beiträge
 
Delphi 12 Athens
 
#6

AW: BoringSSL / Android - Wie binde ich das ein??

  Alt 3. Feb 2025, 00:51
was ich so mitbekommen habe läuft gerade wohl ein irgendwie zu Indy gehörendes Projekt,
welches TLS 1.3 Unterstützung umsetzt. Ich würde mal vermuten, dass da auch neuere OpenSSL
Versionen mit am Start sind.
Ja, genau darum geht es dabei. Embarcadero ist da ja selbst interessiert dran und wenn der OpenSSL-Teil nun wie beschrieben ausgelagert wird, soll ein Update in Zukunft einfacher sein. Mal schauen, was daraus wird und natürlich auch wie schnell:
https://www.indyproject.org/2024/08/...enssl-updates/

Es gibt aber andere Lösungen, insbesondere diese:
https://www.esegece.com/products/sgcindy - Das ist eine Erweiterung der Indy Komponenten, mit Unterstützung für OpenSSL 1.1.1 & 3.0.0 und win32, win64, Android, iOS and Mac OSX. Das würde ich hier empfehlen, da man die gewohnten Indy-Komponenten nutzen kann. Entsprechend gehe ich davon aus, dass das mit dem genannten Projekt ebenfalls direkt nutzbar sein sollte.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
307 Beiträge
 
#7

AW: BoringSSL / Android - Wie binde ich das ein??

  Alt 3. Feb 2025, 08:19
In meinem Projekt möchte ich aus einer NextCloud eine Datei herunterladen, in meiner App aktualisieren und wieder in die Cloud zurück speichern.
Mit diesem Code komme ich an die API ran:
https://github.com/halilhanbadem/delphi_nextcloudapi
Scheitert aktuell nur am SSL.
Warum verwendet du nicht die RESTClient / RESTRequest / RESTResponse Komponenten die Delphi dir mitliefert? Die können SSL ohne irgend ein Gefummel mit DLLs etc. Un der Code in der delphi_nextcloudapi sieht nicht besonders komplex aus, ich denke nicht das es länger als 1h dauert das mit den REST-Komponenten nach zu bauen.

vG
PJM
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
323 Beiträge
 
Delphi 12 Athens
 
#8

AW: BoringSSL / Android - Wie binde ich das ein??

  Alt 3. Feb 2025, 12:19
Hallo Philipp,

vielen Dank
https://github.com/IndySockets/OpenSSL-Binaries

a) Einbinden im Deployment (sowohl im Android-32 als auch im Android-64-Projekt): Siehe Anhang
Da habe ich ein bisschen suchen müssen - im Athens ist das im Menü "Projekt / Bereitstellung" und hat erst geklappt, nachdem ich in der Spalte "Remote-Pfad" den Eintrag zu "library\lib\armeabi-v7a" geändert habe, also da, wo auch die <Projektname>.so drin ist.

Zitat:
b) Einbinden im Code:
Für "IdOpenSSLSetLibPath" und "TPath" musste ich noch die units "IdSSLOpenSSLHeaders, System.IOUtils" ins uses der NextCloudAPI und dort auch im SetConfig als erstes deine initSSL; hinzufügen.

Nun klappt es.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:12 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 by Thomas Breitkreuz