![]() |
INDY 9 und SSL
Hallo,
ich benutze Turbo Delphi 2006 und INDY9. Ich habe schon richtig viele Threads durchgelesen und viel ausprobiert, aber ich bekomme es nicht zum laufen. Ich erhalte immer nur die Meldung "Exception-Klasse EIdOSSLCouldNotLoadSSLLibrary mit Meldung 'Could not load SSL library.'" Ich habe schon verschiedene DLL'S runtergeladen, aber ich es läuft einfach nicht :( Endweder sind die DLL nur für INDY 10 oder ich muss eine IdSSLOpenSSLHeaders.pas in ein Verzeichnis kopieren, das es bei mir nicht gibt. Wäre super, wenn mir jemand helfen könnte :) Mein Codingb:
Delphi-Quellcode:
Das muss doch auch mit INDY 9 möglich sein.
procedure TForm1.FormCreate(Sender: TObject);
begin idSSL := TIdSSLIOHandlerSocket.Create(self); idSSL.SSLOptions.CertFile := 'ra.cer'; idSSL.SSLOptions.VerifyDepth := 2; idSSL.SSLOptions.Mode := sslmClient; idSSL.SSLOptions.Method := sslvSSLv23; idHttp := TidHttp.Create(self); idHttp.Request.ContentType := 'application/x-www-form-urlencoded '; idHttp.IOHandler := self.idSSL; idHttp.AllowCookies := true; idHttp.HandleRedirects := true; end; procedure TForm1.Button1Click(Sender: TObject); var list: TStringlist; begin list:=TStringList.Create; try list.Add('login='+TIdURI.ParamsEncode(ENick.Text)); list.Add('password='+TIdURI.ParamsEncode(EPw.Text)); Memo1.Lines.Add(idHttp.Post(API_LOGIN,list)); finally sList.Free; end; end; Viele Grüße Stefan |
Re: INDY 9 und SSL
Warum ersetzt du nicht einfach deine Indy-Version durch die neuere Version 10? Indy 9 ist ja seit 5 Jahren nicht mehr aktualisiert worden...
Und für Indy 10 musst du ja nur die Zip-Datei herunterladen (z.B. von ![]() Die OpenSSL-DLLs findest du u.a. ![]() Zitat:
|
Re: INDY 9 und SSL
Wow super, um die Zeit habe ich gar nicht mit einer Antwort gerechnet :)
Auf welchen Pfad muss ich das genau ändern? Ich habe verschiedenes getestet, aber es kommt immer nur: Datei nicht gefunden: 'IdSSLOpenSSL.dcu' Wenn ich einfach Indy9 durch Indy10 ersetze, das ist im selben Ordner schon vorhanden, dann kommt: Undefinierter Bezeichner: 'TIdSSLIOHandlerSocket' Viele Grüße Stefan |
Re: INDY 9 und SSL
Also, wenn du Indy 10 entpackst, dann hat dieses ja verschiedene Unterordner. Die Ordner Core, Protocols, Security, SuperCore und System habe ich in den Bibliothekspfad aufgenommen. Ob man die immer alle braucht, weiß ich nicht, jedenfalls funktioniert es so. :mrgreen:
Wichtig ist, dass der alte Pfad im Delphiverzeichnis nicht mehr im Pfad ist. Im Code sieht das dann so aus (inkl. SSL und Cookies):
Delphi-Quellcode:
Und im Verzeichnis der Exe befinden sich die libeay32.dll und die ssleay32.dll, weiter nix.
uses
IdHttp, IdSSLOpenSSLHeaders, IdSSLOpenSSL, IdCookieManager; procedure TFormX.ButtonXClick(Sender: TObject); var IdHttpLoader: TIdHttp; SSLIOHandler: TIdSSLIOHandlerSocketOpenSSL; CookieManager: TIdCookieManager; begin IdSSLOpenSSLHeaders.Load; SSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create; try CookieManager := TIdCookieManager.Create; try IdHttpLoader := TIdHttp.Create; try IdHttpLoader.CookieManager := CookieManager; IdHttpLoader.IOHandler := SSLIOHandler; ... // EDIT: Bei dir ist ja die Erzeugung der Objekte separat, du musst da statt deinem TIdSSLIOHandlerSocket ein TIdSSLIOHandlerSocketOpenSSL Objekt erstellen. Weil es ja um OpenSSL geht. Ob man das IdSSLOpenSSLHeaders.Load und hinterher das IdSSLOpenSSLHeaders.Unload braucht (oder ob es automatisch auch geht), weiß ich gerade nicht mehr. :D |
Re: INDY 9 und SSL
Hmm, das ganze scheint mit der Turbo Version nicht so ganz zu klappen.
Zitat:
Jetzt findet er die IdHttp, IdSSLOpenSSL nicht mehr und es kommt die Meldung IdSSLOpenSSL.pas(861): E2003 Undefinierter Bezeichner: 'IdSslAddAllCiphers' IdSSLOpenSSL.pas(862): E2003 Undefinierter Bezeichner: 'IdSslAddAllDigests' Ich brauch glaub ich die Installationsdatei von Turbo Delphi, um die Indys ändern zu können, oder liege ich damit falsch? |
Re: INDY 9 und SSL
Zitat:
Zitat:
Ich finde das in Indy 10 gar nicht diese Zeilen (ich lade einmal die aktuellste Version nochmal). :gruebel: Bist du sicher, dass da nichts mehr von Indy 9 im Pfad ist? |
Re: INDY 9 und SSL
Hi,
so INDY 10 läuft jetzt. Ich wollte es über die Installexe ändern, das wollte es aber nicht(irgendwas mit choose radiobutton, hatte ich o_O). Deshalb habe ich es deinstalliert und wieder installiert und jetzt gehen die Indy10 :) Jetzt kommt noch ein Read Timeout Fehler... aber das schau ich mir morgen an. Zitat:
|
Re: INDY 9 und SSL
Zitat:
Das mitgelieferte Indy 10 ist leider auch schon relativ alt und die mitgelieferte Version hat einen Fehler, der verhindert, dass du komprimierte Seiten abrufen kannst (um genau zu sein fehlt die entsprechende Unit). Aber wenn du das neue nicht zum Laufen bekommst, gehts ja nicht anders. Bei mir funktioniert die aktuelle Version problemlos mit Turbo Delphi in einem frischen virtuellen PC. |
Re: INDY 9 und SSL
Wärst du so nett und würdest mir mal zeigen, was du alles eingetragen hast?
(das n für neu hinter indy10 habe ich gemacht, also so heißt der Ordner ;) ) Ich habe folgendes: Bibliothekspfad
Delphi-Quellcode:
Sunchpfad
$(BDS)\lib;$(BDS)\Imports;$(BDS)\indy10n\Lib\Protocols;$(BDS)\indy10n\Lib\System;$(BDS)\indy10n\Lib\SuperCore;$(BDS)\indy10n\Lib\Core
Delphi-Quellcode:
und Debug DCU Pfad
$(BDS)\source\Win32\vcl;$(BDS)\source\Win32\rtl\common;$(BDS)\source\Win32\rtl\sys;$(BDS)\source\Win32\rtl\win;$(BDS)\source\Win32\WebSnap;$(BDS)\source\ToolsAPI;$(BDS)\source\Win32\IBX;$(BDS)\source\Win32\Internet;$(BDS)\source\Win32\Property Editors;$(BDS)\source\Win32\soap;$(BDS)\source\win32\xml;$(BDS)\source\Win32\db;$(BDS)\source\Win32\Decision Cube;$(BDS)\indy10n\Lib;$(BDS)\indy10n\Lib\Protocols;$(BDS)\indy10n\Lib\System;$(BDS)\indy10n\Lib\SuperCore;$(BDS)\indy10n\Lib\Core
Delphi-Quellcode:
Ich habe schon hin und her probiert, aber die aktuellen Indys wollen nicht. Diese Fehler treten auf:
$(BDS)\lib\Debug;$(BDS)\indy10n\Lib\Protocols;$(BDS)\indy10n\Lib\System;$(BDS)\indy10n\Lib\SuperCore;$(BDS)\indy10n\Lib\Core
Delphi-Quellcode:
[Pascal Fehler] IdSSLOpenSSL.pas(861): E2003 Undefinierter Bezeichner: 'IdSslAddAllCiphers'
[Pascal Fehler] IdSSLOpenSSL.pas(862): E2003 Undefinierter Bezeichner: 'IdSslAddAllDigests' [Pascal Fehler] IdSSLOpenSSL.pas(885): E2010 Inkompatible Typen: 'Integer' und 'Cardinal' [Pascal Fehler] IdSSLOpenSSL.pas(1559): E2009 Inkompatible Typen: 'Unterschiede in der Aufrufkonvention' [Pascal Fehler] IdSSLOpenSSL.pas(1580): E2010 Inkompatible Typen: 'Byte' und 'Char' [Pascal Fehler] IdSSLOpenSSL.pas(1591): E2003 Undefinierter Bezeichner: 'TSSL_CTX_set_verify_callback' [Pascal Fehler] IdSSLOpenSSL.pas(1596): E2035 Nicht genügend wirkliche Parameter [Pascal Fehler] IdSSLOpenSSL.pas(2045): E2010 Inkompatible Typen: 'Byte' und 'Char' [Pascal Fehler] IdSSLOpenSSL.pas(2045): E2010 Inkompatible Typen: 'PUInteger' und 'Cardinal' [Pascal Fehler] IdSSLOpenSSL.pas(2055): E2003 Undefinierter Bezeichner: 'IdSslEvpSHA1' [Pascal Fehler] IdSSLOpenSSL.pas(2055): E2010 Inkompatible Typen: 'Byte' und 'Char' [Pascal Fehler] IdSSLOpenSSL.pas(2055): E2010 Inkompatible Typen: 'PUInteger' und 'Cardinal' [Pascal Fehler] IdSSLOpenSSL.pas(2065): E2003 Undefinierter Bezeichner: 'IdSslEvpSHA224' [Pascal Fehler] IdSSLOpenSSL.pas(2065): E2008 Inkompatible Typen [Pascal Fehler] IdSSLOpenSSL.pas(2066): E2010 Inkompatible Typen: 'Byte' und 'Char' [Pascal Fehler] IdSSLOpenSSL.pas(2066): E2010 Inkompatible Typen: 'PUInteger' und 'Cardinal' [Pascal Fehler] IdSSLOpenSSL.pas(2074): E2003 Undefinierter Bezeichner: 'IdSslEvpSHA224' [Pascal Fehler] IdSSLOpenSSL.pas(2074): E2008 Inkompatible Typen [Pascal Fehler] IdSSLOpenSSL.pas(2083): E2003 Undefinierter Bezeichner: 'IdSslEvpSHA256' [Pascal Fehler] IdSSLOpenSSL.pas(2083): E2008 Inkompatible Typen [Pascal Fehler] IdSSLOpenSSL.pas(2084): E2010 Inkompatible Typen: 'Byte' und 'Char' [Pascal Fehler] IdSSLOpenSSL.pas(2084): E2010 Inkompatible Typen: 'PUInteger' und 'Cardinal' [Pascal Fehler] IdSSLOpenSSL.pas(2092): E2003 Undefinierter Bezeichner: 'IdSslEvpSHA256' [Pascal Fehler] IdSSLOpenSSL.pas(2092): E2008 Inkompatible Typen [Pascal Fehler] IdSSLOpenSSL.pas(2101): E2003 Undefinierter Bezeichner: 'IdSslEvpSHA386' [Pascal Fehler] IdSSLOpenSSL.pas(2101): E2008 Inkompatible Typen [Pascal Fehler] IdSSLOpenSSL.pas(2102): E2010 Inkompatible Typen: 'Byte' und 'Char' [Pascal Fehler] IdSSLOpenSSL.pas(2102): E2010 Inkompatible Typen: 'PUInteger' und 'Cardinal' [Pascal Fehler] IdSSLOpenSSL.pas(2110): E2003 Undefinierter Bezeichner: 'IdSslEvpSHA386' [Pascal Fehler] IdSSLOpenSSL.pas(2110): E2008 Inkompatible Typen [Pascal Fehler] IdSSLOpenSSL.pas(2119): E2003 Undefinierter Bezeichner: 'IdSslEvpSHA512' [Pascal Fehler] IdSSLOpenSSL.pas(2119): E2008 Inkompatible Typen [Pascal Fehler] IdSSLOpenSSL.pas(2120): E2010 Inkompatible Typen: 'Byte' und 'Char' [Pascal Fehler] IdSSLOpenSSL.pas(2120): E2010 Inkompatible Typen: 'PUInteger' und 'Cardinal' [Pascal Fehler] IdSSLOpenSSL.pas(2128): E2003 Undefinierter Bezeichner: 'IdSslEvpSHA512' [Pascal Fehler] IdSSLOpenSSL.pas(2128): E2008 Inkompatible Typen [Pascal Fehler] IdSSLOpenSSL.pas(2139): E2018 Record, Objekt oder Klassentyp erforderlich [Pascal Fehler] IdSSLOpenSSL.pas(2139): E2017 Zeigertyp erforderlich [Pascal Fehler] IdSSLOpenSSL.pas(2144): E2003 Undefinierter Bezeichner: 'IdSslX509GetSignatureType' [Pascal Fehler] IdSSLOpenSSL.pas(2149): E2003 Undefinierter Bezeichner: 'IdSslOBJNid2ln' [Pascal Fehler] IdSSLOpenSSL.pas(2176): E2003 Undefinierter Bezeichner: 'IdSslX509Free' [Pascal Fehler] IdSSLOpenSSL.pas(2184): E2003 Undefinierter Bezeichner: 'PASN1_INTEGER' [Pascal Fehler] IdSSLOpenSSL.pas(2188): E2003 Undefinierter Bezeichner: 'IdSslX509GetSerialNumber' [Pascal Fehler] IdSSLOpenSSL.pas(2189): E2035 Nicht genügend wirkliche Parameter [Pascal Fehler] IdSSLOpenSSL.pas(2190): E2029 ';' erwartet, aber 'ELSE' gefunden [Pascal Fehler] IdSSLOpenSSL.pas(2192): E2003 Undefinierter Bezeichner: 'Result' [Pascal Fehler] IdSSLOpenSSL.pas(2193): E2029 '.' erwartet, aber ';' gefunden [Pascal Warnung] IdSSLOpenSSL.pas(2194): W1011 Text hinter dem abschließenden 'END.' wird vom Compiler ignoriert [Pascal Fehler] IdSSLOpenSSL.pas(525): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdX509.RSubject' [Pascal Fehler] IdSSLOpenSSL.pas(526): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdX509.RIssuer' [Pascal Fehler] IdSSLOpenSSL.pas(527): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdX509.RnotBefore' [Pascal Fehler] IdSSLOpenSSL.pas(528): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdX509.RnotAfter' [Pascal Fehler] IdSSLOpenSSL.pas(529): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdX509.RFingerprint' [Pascal Fehler] IdSSLOpenSSL.pas(530): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdX509.RFingerprintAsString' [Pascal Fehler] IdSSLOpenSSL.pas(532): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdX509.GetVersion' [Pascal Fehler] IdSSLOpenSSL.pas(553): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdSSLCipher.GetDescription' [Pascal Fehler] IdSSLOpenSSL.pas(554): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdSSLCipher.GetName' [Pascal Fehler] IdSSLOpenSSL.pas(555): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdSSLCipher.GetBits' [Pascal Fehler] IdSSLOpenSSL.pas(556): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdSSLCipher.GetVersion' [Pascal Fehler] IdSSLOpenSSL.pas(558): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdSSLCipher.Create' [Pascal Fehler] IdSSLOpenSSL.pas(559): E2065 Ungenügende Forward- oder External-Deklaration: 'TIdSSLCipher.Destroy' [Pascal Fehler] IdSSLOpenSSL.pas(581): E2065 Ungenügende Forward- oder External-Deklaration: 'EIdOpenSSLAPISSLError.RaiseException' [Pascal Fehler] IdSSLOpenSSL.pas(592): E2065 Ungenügende Forward- oder External-Deklaration: 'EIdOpenSSLAPICryptoError.RaiseExceptionCode' [Pascal Fehler] IdSSLOpenSSL.pas(593): E2065 Ungenügende Forward- oder External-Deklaration: 'EIdOpenSSLAPICryptoError.RaiseException' [Pascal Fataler Fehler] IdAuthenticationNTLM.pas(77): F2063 Verwendete Unit 'IdSSLOpenSSL.pas' kann nicht compiliert werden |
Re: INDY 9 und SSL
Also, ich habe jetzt den virtuellen PC wieder zurückgesetzt, die aktuelle Version von Indy von
![]() Der Bibliothekspfad sieht so aus:
Code:
Mehr habe ich nicht verändert.
$(BDS)\lib;$(BDS)\Imports;L:\Delphi\Komponenten\Internet\indy10\Lib\Core;
L:\Delphi\Komponenten\Internet\indy10\Lib\Protocols;L:\Delphi\Komponenten\Internet\indy10\Lib\Security; L:\Delphi\Komponenten\Internet\indy10\Lib\SuperCore;L:\Delphi\Komponenten\Internet\indy10\Lib\System Da diese Fehlermeldung kommt: Klick einmal in Zeile 204 in IdSSLOpenSSL mit rechts auf IdSSLOpenSSLHeaders und "Deklaration suchen" und schau einmal wo die dann geöffnete Datei liegt bzw. was darin in Zeile 7549 steht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 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-2025 by Thomas Breitkreuz