Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   IdFTP & OpenSSL (https://www.delphipraxis.net/166300-idftp-openssl.html)

Flux 7. Feb 2012 09:41

IdFTP & OpenSSL
 
Hallo Forum,

ich möchte einen rudimentären FTPS Client zum laufen bringen. Ich verwende Borland Delphi 7.0 PE (build 4.453), Indy 10.5.8 Win32 und OpenSSL 1.0.0d
Einen mega simplen FTP-Client mit connect, put und disconnect funktioniert (mit FileZilla Server getestet). Das genügt auch fürs erste, was den grad der Komplexität angeht.

Allerdings soll nun TLS integriert werden. Ich weiß, dass man dem FTP IO-Handler den IdSSLIOHandlerSocketOpenSSL1 zuweisen muss, da hörts dann aber schon auf.

Welche Funktionen sind zentral um SSL zu verwenden? Wie funktioniert die Zertifikat-Handhabung?

Für jegliche Unterstützung bin ich dankbar.

MfG
Flux

mjustin 7. Feb 2012 10:12

AW: IdFTP & OpenSSL
 
Zitat:

Zitat von Flux (Beitrag 1149604)
Hallo Forum,

ich möchte einen rudimentären FTPS Client zum laufen bringen. Ich verwende Borland Delphi 7.0 PE (build 4.453), Indy 10.5.8 Win32 und OpenSSL 1.0.0d
Einen mega simplen FTP-Client mit connect, put und disconnect funktioniert (mit FileZilla Server getestet). Das genügt auch fürs erste, was den grad der Komplexität angeht.

Allerdings soll nun TLS integriert werden. Ich weiß, dass man dem FTP IO-Handler den IdSSLIOHandlerSocketOpenSSL1 zuweisen muss, da hörts dann aber schon auf.

Welche Funktionen sind zentral um SSL zu verwenden? Wie funktioniert die Zertifikat-Handhabung?

Nur so als Starthilfe: funktioniert denn FileZilla Server <-überSSL-> FileZilla Client in der der Testumgebung bereits? Das würde ich als Voraussetzung sehen, denn wenn es funktioniert, muss "Wnur noch" der Client umgestellt werden auf Indy. Standardmäßig akzeptiert Indy jedes Zertifikat, wenn ich mich richtig erinnere.

ernschd 8. Feb 2012 09:27

AW: IdFTP & OpenSSL
 
Hi,

mir hat der Thread hier weiter geholfen.

Flux 15. Feb 2012 11:17

AW: IdFTP & OpenSSL
 
Hey leute,

mein Code sieht im Moment so aus.
Jetzt würde ich gerne das ListResult in mein InfoLine1 (ein einfaches Edit) ausgeben, alternativ auch in die RichEdit1, weiß jemand wie? ListResult ist eine Property von IdFTPClient1 und vom Typ TStrings.

Weiterhin hab ich es nur auf Umwegen hingekriegt, einen Zeilenumbruch zwischen zwei Einträgen zu platzieren (mit ASCII 10 oder 13 :? ). Welche Methode oder Property von RichEdit nimmt man da ?:-D

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdExplicitTLSClientServerBase, IdFTP, StdCtrls, IdIOHandler,
  IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, ComCtrls;

type
  TForm1 = class(TForm)
    IdFTPClient1: TIdFTP;
    IdSSLio1: TIdSSLIOHandlerSocketOpenSSL;
    InfoLine1: TEdit;
    GoButton1: TButton;
    RichEdit1: TRichEdit;

    procedure TransferTest;
    procedure GoButton1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.GoButton1Click(Sender: TObject); //Manuelles Starten eines Transferauftrags
begin
  TransferTest;
end;

procedure TForm1.TransferTest;
begin

  Form1.IdFTPClient1.Connect;

  if Form1.IdFTPClient1.Connected=true
  then begin
    Form1.RichEdit1.Text:='';
    Form1.RichEdit1.SelText:='verbunden ';
    Form1.RichEdit1.SelText:= #10;
    Form1.RichEdit1.SelText := 'zweite Zeile ';
  end;

  Form1.IdFTPClient1.Put('C:\Program Files\Borland\Delphi7\Projects\Quelle\blabla.txt','',false);

  IdFTPClient1.ListResult.Clear;
  IdFTPClient1.List('*',false);
  InfoLine1.Text:='';

  Form1.IdFTPClient1.Disconnect(true);

end;



end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz