File tree Expand file tree Collapse file tree 4 files changed +19
-10
lines changed Expand file tree Collapse file tree 4 files changed +19
-10
lines changed Original file line number Diff line number Diff line change 39
39
40
40
#undef inline
41
41
42
- #define GIT_SSL_DEFAULT_CIPHERS "TLS1-3-AES-128-GCM-SHA256:TLS1-3-AES-256-GCM-SHA384:TLS1-3-CHACHA20-POLY1305-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256:TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA:TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384:TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA:TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-RSA-WITH-AES-128-GCM-SHA256:TLS-RSA-WITH-AES-256-GCM-SHA384:TLS-RSA-WITH-AES-128-CBC-SHA256:TLS-RSA-WITH-AES-256-CBC-SHA256:TLS-RSA-WITH-AES-128-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA"
43
- #define GIT_SSL_DEFAULT_CIPHERS_COUNT 28
42
+ #define GIT_SSL_DEFAULT_CIPHERS "TLS1-3-AES-128-GCM-SHA256:TLS1-3-AES-256-GCM-SHA384:TLS1-3-CHACHA20-POLY1305-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256"
43
+ #define GIT_SSL_DEFAULT_CIPHERS_COUNT 12
44
44
45
45
static int ciphers_list [GIT_SSL_DEFAULT_CIPHERS_COUNT ];
46
46
@@ -94,9 +94,13 @@ int git_mbedtls_stream_global_init(void)
94
94
goto cleanup ;
95
95
}
96
96
97
- /* configure TLSv1.1 or better */
98
- #ifdef MBEDTLS_SSL_MINOR_VERSION_2
99
- mbedtls_ssl_conf_min_version (& mbedtls_config , MBEDTLS_SSL_MAJOR_VERSION_3 , MBEDTLS_SSL_MINOR_VERSION_2 );
97
+ /*
98
+ * Configure TLSv1.2 or better; if the minor version constant isn't
99
+ * defined then this version of mbedTLS doesn't support such an old
100
+ * version, so we need not do anything.
101
+ */
102
+ #ifdef MBEDTLS_SSL_MINOR_VERSION_3
103
+ mbedtls_ssl_conf_min_version (& mbedtls_config , MBEDTLS_SSL_MAJOR_VERSION_3 , MBEDTLS_SSL_MINOR_VERSION_3 );
100
104
#endif
101
105
102
106
/* verify_server_cert is responsible for making the check.
Original file line number Diff line number Diff line change @@ -40,7 +40,8 @@ extern char *git__ssl_ciphers;
40
40
41
41
SSL_CTX * git__ssl_ctx ;
42
42
43
- #define GIT_SSL_DEFAULT_CIPHERS "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA"
43
+ #define GIT_SSL_DEFAULT_CIPHERS "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305"
44
+
44
45
45
46
static BIO_METHOD * git_stream_bio_method ;
46
47
static int init_bio_method (void );
@@ -105,7 +106,10 @@ static void git_openssl_free(void *mem)
105
106
106
107
static int openssl_init (void )
107
108
{
108
- long ssl_opts = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 ;
109
+ long ssl_opts = SSL_OP_NO_SSLv2 |
110
+ SSL_OP_NO_SSLv3 |
111
+ SSL_OP_NO_TLSv1 |
112
+ SSL_OP_NO_TLSv1_1 ;
109
113
const char * ciphers = git__ssl_ciphers ;
110
114
#ifdef VALGRIND
111
115
static bool allocators_initialized = false;
@@ -136,7 +140,7 @@ static int openssl_init(void)
136
140
/*
137
141
* Despite the name SSLv23_method, this is actually a version-
138
142
* flexible context, which honors the protocol versions
139
- * specified in `ssl_opts`. So we only support TLSv1.0 and
143
+ * specified in `ssl_opts`. So we only support TLSv1.2 and
140
144
* higher.
141
145
*/
142
146
if (!(git__ssl_ctx = SSL_CTX_new (SSLv23_method ())))
Original file line number Diff line number Diff line change 182
182
# define SSL_OP_NO_COMPRESSION 0x00020000L
183
183
# define SSL_OP_NO_SSLv2 0x01000000L
184
184
# define SSL_OP_NO_SSLv3 0x02000000L
185
+ # define SSL_OP_NO_TLSv1 0x04000000L
186
+ # define SSL_OP_NO_TLSv1_1 0x10000000L
185
187
186
188
# define SSL_MODE_AUTO_RETRY 0x00000004L
187
189
Original file line number Diff line number Diff line change @@ -331,8 +331,7 @@ static int stransport_wrap(
331
331
if ((ret = SSLSetIOFuncs (st -> ctx , read_cb , write_cb )) != noErr ||
332
332
(ret = SSLSetConnection (st -> ctx , st )) != noErr ||
333
333
(ret = SSLSetSessionOption (st -> ctx , kSSLSessionOptionBreakOnServerAuth , true)) != noErr ||
334
- (ret = SSLSetProtocolVersionMin (st -> ctx , kTLSProtocol1 )) != noErr ||
335
- (ret = SSLSetProtocolVersionMax (st -> ctx , kTLSProtocol12 )) != noErr ||
334
+ (ret = SSLSetProtocolVersionMin (st -> ctx , kTLSProtocol12 )) != noErr ||
336
335
(ret = SSLSetPeerDomainName (st -> ctx , host , strlen (host ))) != noErr ) {
337
336
CFRelease (st -> ctx );
338
337
git__free (st );
You can’t perform that action at this time.
0 commit comments