Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi SSL for dummies (https://www.delphipraxis.net/209501-ssl-dummies.html)

NicoleWagner 14. Dez 2021 18:04

SSL for dummies
 
Vor langer Zeit half mir diese Gemeinschaft hier selbstlos, eine Datei herunterzuladen. Es war so schwierig.
Ich verstand kaum, was man mir sagte, doch es klappte endlich mit dieser Zeile:

DL.IOHndl.SSLOptions.SSLVersions := [sslvTLSv1_2]; // erzwingt TSL-Protokoll 1.2 für SSL

Mittlerweile klappt es nicht mehr. Und wenn ich den Server zum Thema ausquetsche: sie verwenden mittlerweile TSL 1.3

Wie lautet die Zeile dafür?
DL.IOHndl.SSLOptions.SSLVersions := [sslvTLSv1_3];
ist es leider nicht!

Danke für Hinweise.

Steku 14. Dez 2021 20:10

AW: SSH for dummies
 
Falls du Indy benutzt, kann es sein das die verwendete Indy-Version zu alt ist.
Bin mir nicht sicher, aber ich glaube TLS 1.3 wird erst seit Indy OpenSSL 1.1.1 IOHandler unterstützt...

Grüße
Steku

Gefunden: https://www.delphipraxis.net/204185-...tls-1-3-a.html

TurboMagic 14. Dez 2021 22:53

AW: SSH for dummies
 
Stimmt die von dir angegebenen Delphi Version noch?
Wäre da evtl. Mal ein Update möglich?
Da wäre dann vieles aktueller...

NicoleWagner 15. Dez 2021 15:28

AW: SSH for dummies
 
Danke für die Antworten.

Ich habe Delphi XE3, das Einkommen einer Kirchenmaus und den Bedarf (an Komplexität) eines Konzerns.
Der Umstieg auf die neue Version geht aus ersteren Gründen nicht, Freepascal nicht aus zweiteren Gründen.

Gibt es keinen anderen Weg, die Datei zu holen?

Es ist einfach ein Link, das ich im Browser anwählen kann und "speichern unter..".
Mit dem Explorer 6.0 unter Win 7 (damit läuft meine Delphi VM) kann ich die Datei abspeichern, wenn ich es manuell via Adreszeile anwähle und die Befehle über das Menü eingebe.

KodeZwerg 15. Dez 2021 15:46

AW: SSH for dummies
 
Wäre ein Umstieg von Indy auf WinAPI denkbar?

Achim Kalwa 15. Dez 2021 15:47

AW: SSH for dummies
 
Zitat:

Zitat von NicoleWagner (Beitrag 1499164)
Gibt es keinen anderen Weg, die Datei zu holen?
Es ist einfach ein Link, das ich im Browser anwählen kann und "speichern unter..".

Wenn der Download mit Windows Boardmitteln (hier: Internet Explorer) funktioniert, dann sollte es auch mit folgendem Stück Delphi-Code funktionieren:
Code:
uses
  ..,Vcl.ExtActns,...;
var
  Loader : TDownLoadURL;
begin
  Loader := TDownLoadURL.Create(Self);
  try
    Loader.URL := 'http://hier.deine.quelle.eintragen.pdf';
    Loader.FileName := 'D:\temp\zieldatei.pdf';
    Loader.Execute;
  finally
    Loader.Free;
  end;
end;
HTH

Delphi.Narium 15. Dez 2021 17:16

AW: SSH for dummies
 
Für aktuellere Indy braucht man kein aktuelleres Delphi.

Man kann auch Indy für XE3 aktuallisieren. Geht ja auch für Delphi7 und das ist schon ein paar Wochen älter.

Wenn dashier die aktuellste Version ist, klappt das ab Delphi 5: https://github.com/IndySockets/Indy/tree/master/Lib

Um welche Url handelt es sich denn da? Unterstützt die ausschließlich TSL 1.3?

Ansonsten versuch mal bitte sslvSSLV23, das besagt grob: "Liebe Komponente, einige Dich bitte mit dem Server selbst auf die passende Methode."
Wenn da nix bei rauskommt, brauchst Du neuere Indykomponenten.

Ansonten probier' bitte mal die Routine aus, sie sucht einfach aus allen unterstützten Protokollen die Erstbeste heraus, die funktioniert.

dummzeuch 15. Dez 2021 18:13

AW: SSH for dummies
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1499177)
Wenn dashier die aktuellste Version ist, klappt das ab Delphi 5: https://github.com/IndySockets/Indy/tree/master/Lib

Mit der Aussage wäre ich vorsichtig. Dass es Packages für eine Delphi-Version gibt, heißt nicht, dass es auch damit compiliert.

Aber zumindest ab Delphi 2007 sollte es klappen. Für Delphi 6 und 7 hatte ich vor ein paar Monaten (oder sind es inzwischen schon Jahre?) mal Fixes eingestellt, die Remy dann irgendwann tatsächlich eingepflegt hat. (Wobei man ihm keinen Vorwurf machen kann, er ist wie die Maintainer von vielen anderen Delphi-Bibliotheken fast allein für alles zuständig.)

Delphi.Narium 15. Dez 2021 18:43

AW: SSH for dummies
 
Bei meinem Delphi 7 hat's letztens aber geklappt.

mjustin 16. Dez 2021 08:58

AW: SSH for dummies
 
Zitat:

Zitat von dummzeuch (Beitrag 1499179)
Mit der Aussage wäre ich vorsichtig. Dass es Packages für eine Delphi-Version gibt, heißt nicht, dass es auch damit compiliert.

Aber zumindest ab Delphi 2007 sollte es klappen. Für Delphi 6 und 7 hatte ich vor ein paar Monaten (oder sind es inzwischen schon Jahre?) mal Fixes eingestellt, die Remy dann irgendwann tatsächlich eingepflegt hat. (Wobei man ihm keinen Vorwurf machen kann, er ist wie die Maintainer von vielen anderen Delphi-Bibliotheken fast allein für alles zuständig.)

Die aktuelle Version von Indy teste ich gelegentlich auch noch mit Delphi 6 (Anwender arbeiten teilweise noch immer produktiv mit D6 und D7).
(man muss nicht die Packages installieren)

NicoleWagner 16. Dez 2021 20:02

AW: SSL for dummies
 
Danke für Deine Antwort.
Das sah so vielverprechend aus!
Allerdings speist mich mein Programm mit der obigen Fehlermeldung ab.
"Fehler" , ach wirklich. :shock:

---------------------------
meinProgramm
---------------------------
Fehler beim Download von URL: https://..............pdf.
---------------------------
OK
---------------------------



Gibt es Parameter, wie cih herausfinde, WELCHEN Fehler?

KodeZwerg 16. Dez 2021 20:46

AW: SSH for dummies
 
Zitat:

Zitat von Achim Kalwa (Beitrag 1499170)
Zitat:

Zitat von NicoleWagner (Beitrag 1499164)
Gibt es keinen anderen Weg, die Datei zu holen?
Es ist einfach ein Link, das ich im Browser anwählen kann und "speichern unter..".

Wenn der Download mit Windows Boardmitteln (hier: Internet Explorer) funktioniert, dann sollte es auch mit folgendem Stück Delphi-Code funktionieren:
Code:
uses
  ..,Vcl.ExtActns,...;
var
  Loader : TDownLoadURL;
begin
  Loader := TDownLoadURL.Create(Self);
  try
    Loader.URL := 'http://hier.deine.quelle.eintragen.pdf';
    Loader.FileName := 'D:\temp\zieldatei.pdf';
    Loader.Execute;
  finally
    Loader.Free;
  end;
end;


Sollte es nicht so genutzt werden?
Delphi-Quellcode:
procedure DownStream(const AURL: String; const ALocalFile: String);
var
  URLStream: TDownloadUrl;
begin
  URLStream := TDownLoadURL.Create(Self);
  try
    URLStream.URL := AURL;
    URLStream.FileName := ALocalFile;
    URLStream.ExecuteTarget(Self); // <- das meine ich im speziellen
  finally
    URLStream.Free;
  end;
end;
Um Fehler auswerten zu können musst Du die WinAPI "URLDownloadToFile" selbst aufrufen, der Delphi wrapper schluckt die Return Codes.

mytbo 16. Dez 2021 20:49

AW: SSL for dummies
 
Wenn es auch mORMot sein kein, dann mit HttpGet() oder WGet().
Delphi-Quellcode:
uses
  mormot.core.os,
  mormot.net.client;
 
var
  content: RawByteString;
begin
  content := HttpGet('https://.../meine.dat');
  FileFromString(content, 'meine.dat');
Bis bald...
Thomas

KodeZwerg 16. Dez 2021 21:19

AW: SSL for dummies
 
Hier ein mini Beispiel ohne Wrapper:

Delphi-Quellcode:
function DownLoadInternetFile(Source, Dest : String): Integer;
begin
  try
    Result := URLDownloadToFile(nil, PChar(Source), PChar(Dest), 0, nil);
  except
    Result := -1;
  end;
end;
Mögliche Return Codes:
S_OK
The download started successfully.

E_OUTOFMEMORY
The buffer length is invalid, or there is insufficient memory to complete the operation.

INET_E_DOWNLOAD_FAILURE
The specified resource or callback interface was invalid.

-1
Exception



Anleitung zur API: URLDownloadToFile

KodeZwerg 18. Dez 2021 17:38

AW: SSL for dummies
 
Hallo nochmal, ich habe zur API mal etwas weiter gelesen, wenn Du Dir einen Callback einrichtest könntest Du auch erweiterte Übertragungs- / Protokoll- Fehler abfragen oder momentane Position des Downloads für eine ProgressBar o.ä..

NicoleWagner 21. Dez 2021 17:57

AW: SSL for dummies
 
von mir aus darf es alles sein.
Doch
mormot.core.os,
mormot.net.client
findet mein Delphi XE 3 nicht.

Das mit dem Fehlermeldung-Ausgeben habe ich zwar gelesen, doch kann es nicht umsetzen.

Es geht wirklich nur darum, jenen KLick, den ich im Explorer habe, durch Delphi ausführen zu lassen.
Der Explorer ist uralt, sehe gerade nach: aus 2012 (die Versionsanzeige zickt).
Er ist nur in meiner Delphi VM.
Doch der kann die Datei anzeigen.

mmw 21. Dez 2021 18:36

AW: SSL for dummies
 
Hallo,
die Dateien sind hier

https://github.com/synopse/mORMot2

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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