[fpc-pascal] https how does it work
Tony Whyman
tony.whyman at mccallumwhyman.com
Thu Feb 16 15:18:28 CET 2017
You can always use the indy components. They have a working https
implementation which I have successfully used in a SOAP based
application and Lazarus's WST package. (see
http://wiki.lazarus.freepascal.org/Indy_with_Lazarus).
The downside is that the indy components do not seem to have been
updated for a long time and have not kept up-to-date with OpenSSL. I
have attached below a patch I have used to keep the components
up-to-date with SSL headers.
Tony
On 16/02/17 12:41, Rainer Stratmann wrote:
> How does httpy work, what is needed?
>
> TLS/SSL library?
>
> A http webserver without encryption I programed already on my own and wanted
> to integrate https.
>
> Is there any example code of https?
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Index: fpc/IdSSLOpenSSLHeaders.pas
===================================================================
--- fpc/IdSSLOpenSSLHeaders.pas (.../tags/R10-2-0-3) (revision 8065)
+++ fpc/IdSSLOpenSSLHeaders.pas (.../trunk) (revision 8065)
@@ -7073,7 +7076,8 @@
where the symbolic link libbsl.so and libcrypto.so do not exist}
SSL_DLL_name = 'libssl'; {Do not localize}
SSLCLIB_DLL_name = 'libcrypto'; {Do not localize}
- SSLDLLVers : array [0..4] of string =
('','0.9.9','.0.9.8','.0.9.7','0.9.6');
+ SSLDLLVers : array [0..6] of string =
('','1.0.1','1.0.0','0.9.9','.0.9.8','.0.9.7','0.9.6');
+// SSLDLLVers : array [0..3] of string =
('0.9.9','.0.9.8','.0.9.7','0.9.6');
{$ENDIF}
{$IFDEF WIN32_OR_WIN64_OR_WINCE}
SSL_DLL_name = 'ssleay32.dll'; {Do not localize}
@@ -9479,9 +9485,9 @@
@IdSslWrite := LoadFunction(fn_SSL_write);
@IdSslCtxCtrl := LoadFunction(fn_SSL_CTX_ctrl);
@IdSslGetError := LoadFunction(fn_SSL_get_error);
- @IdSslMethodV2 := LoadFunction(fn_SSLv2_method);
- @IdSslMethodServerV2 := LoadFunction(fn_SSLv2_server_method);
- @IdSslMethodClientV2 := LoadFunction(fn_SSLv2_client_method);
+// @IdSslMethodV2 := LoadFunction(fn_SSLv2_method);
+// @IdSslMethodServerV2 := LoadFunction(fn_SSLv2_server_method);
+// @IdSslMethodClientV2 := LoadFunction(fn_SSLv2_client_method);
@IdSslMethodV3 := LoadFunction(fn_SSLv3_method);
@IdSslMethodServerV3 := LoadFunction(fn_SSLv3_server_method);
@IdSslMethodClientV3 := LoadFunction(fn_SSLv3_client_method);
More information about the fpc-pascal
mailing list