Parcourir la source

ADD: TLS 1.1, 1.2

Alexander Koblov il y a 10 ans
Parent
commit
dd0643c5a2

+ 1 - 1
plugins/wfx/ftp/src/ftpfunc.pas

@@ -29,7 +29,7 @@ interface
 
 uses
   SysUtils, Classes,
-  WfxPlugin, FtpSend, Extension;
+  WfxPlugin, Extension;
 
 type
 

+ 3 - 1
plugins/wfx/ftp/synapse/ssl_gnutls_lib.inc

@@ -14,6 +14,8 @@ exports
   SSLv2_method,
   SSLv3_method,
   TLSv1_method,
+  TLSv1_1_method,
+  TLSv1_2_method,
   SSL_CTX_set_verify,
   SSL_CTX_use_certificate_file,
   SSL_CTX_use_PrivateKey_file,
@@ -22,4 +24,4 @@ exports
   SSL_CIPHER_get_name,
   SSL_CIPHER_get_bits,
   ERR_get_error,
-  ERR_error_string;
+  ERR_error_string;

+ 23 - 1
plugins/wfx/ftp/synapse/ssl_gnutls_lib.pas

@@ -186,6 +186,8 @@ function SSLv23_method(): PSSL_METHOD; cdecl;
 function SSLv2_method(): PSSL_METHOD; cdecl;
 function SSLv3_method(): PSSL_METHOD; cdecl;
 function TLSv1_method(): PSSL_METHOD; cdecl;
+function TLSv1_1_method(): PSSL_METHOD; cdecl;
+function TLSv1_2_method(): PSSL_METHOD; cdecl;
 function SSL_get_current_cipher (ssl: PSSL): PSSL_CIPHER; cdecl;
 function SSL_CIPHER_get_name (cipher: PSSL_CIPHER): PAnsiChar; cdecl;
 function SSL_CIPHER_get_bits (cipher: PSSL_CIPHER; bits: pcint): cint; cdecl;
@@ -347,7 +349,7 @@ end;
 
 function SSL_set_fd (ssl: PSSL; fd: cint): cint; cdecl;
 begin
-  {$PUSH}{$HINTS OFF}
+  {$PUSH}{$HINTS OFF}{$WARNINGS OFF}
   gnutls_transport_set_ptr (ssl^.gnutls_state, Pointer(fd));
   {$POP}
   Result := 1;
@@ -454,6 +456,26 @@ begin
   end;
 end;
 
+function TLSv1_1_method: PSSL_METHOD; cdecl;
+begin
+  Result := GetMem(SizeOf(SSL_METHOD));
+  if Assigned(Result) then
+  begin
+    Result^.connend := GNUTLS_CLIENT;
+    Result^.priorities := 'NONE:+VERS-TLS1.1:+CIPHER-ALL:+COMP-ALL:+RSA:+DHE-RSA:+DHE-DSS:+MAC-ALL';
+  end;
+end;
+
+function TLSv1_2_method: PSSL_METHOD; cdecl;
+begin
+  Result := GetMem(SizeOf(SSL_METHOD));
+  if Assigned(Result) then
+  begin
+    Result^.connend := GNUTLS_CLIENT;
+    Result^.priorities := 'NONE:+VERS-TLS1.2:+CIPHER-ALL:+COMP-ALL:+RSA:+DHE-RSA:+DHE-DSS:+MAC-ALL';
+  end;
+end;
+
 (* SSL_CIPHER functions *)
 
 function SSL_get_current_cipher (ssl: PSSL): PSSL_CIPHER; cdecl;