|  | @@ -910,12 +910,18 @@ static tsi_result tsi_set_min_and_max_tls_versions(
 | 
	
		
			
				|  |  |      return TSI_INVALID_ARGUMENT;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  #if OPENSSL_VERSION_NUMBER >= 0x10100000
 | 
	
		
			
				|  |  | -  // Set the min TLS version of the SSL context.
 | 
	
		
			
				|  |  | +  // Set the min TLS version of the SSL context if using OpenSSL version
 | 
	
		
			
				|  |  | +  // >= 1.1.0. This OpenSSL version is required because the
 | 
	
		
			
				|  |  | +  // |SSL_CTX_set_min_proto_version| and |SSL_CTX_set_max_proto_version| APIs
 | 
	
		
			
				|  |  | +  // only exist in this version range.
 | 
	
		
			
				|  |  |    switch (min_tls_version) {
 | 
	
		
			
				|  |  |      case tsi_tls_version::TSI_TLS1_2:
 | 
	
		
			
				|  |  |        SSL_CTX_set_min_proto_version(ssl_context, TLS1_2_VERSION);
 | 
	
		
			
				|  |  |        break;
 | 
	
		
			
				|  |  |  #if defined(TLS1_3_VERSION)
 | 
	
		
			
				|  |  | +    // If the library does not support TLS 1.3 and the caller requests a minimum
 | 
	
		
			
				|  |  | +    // of TLS 1.3, then return an error because the caller's request cannot be
 | 
	
		
			
				|  |  | +    // satisfied.
 | 
	
		
			
				|  |  |      case tsi_tls_version::TSI_TLS1_3:
 | 
	
		
			
				|  |  |        SSL_CTX_set_min_proto_version(ssl_context, TLS1_3_VERSION);
 | 
	
		
			
				|  |  |        break;
 | 
	
	
		
			
				|  | @@ -924,16 +930,21 @@ static tsi_result tsi_set_min_and_max_tls_versions(
 | 
	
		
			
				|  |  |        gpr_log(GPR_INFO, "TLS version is not supported.");
 | 
	
		
			
				|  |  |        return TSI_FAILED_PRECONDITION;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    // Set the max TLS version of the SSL context.
 | 
	
		
			
				|  |  |    switch (max_tls_version) {
 | 
	
		
			
				|  |  |      case tsi_tls_version::TSI_TLS1_2:
 | 
	
		
			
				|  |  |        SSL_CTX_set_max_proto_version(ssl_context, TLS1_2_VERSION);
 | 
	
		
			
				|  |  |        break;
 | 
	
		
			
				|  |  | -#if defined(TLS1_3_VERSION)
 | 
	
		
			
				|  |  |      case tsi_tls_version::TSI_TLS1_3:
 | 
	
		
			
				|  |  | +#if defined(TLS1_3_VERSION)
 | 
	
		
			
				|  |  |        SSL_CTX_set_max_proto_version(ssl_context, TLS1_3_VERSION);
 | 
	
		
			
				|  |  | -      break;
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +      // If the library does not support TLS 1.3, then set the max TLS version
 | 
	
		
			
				|  |  | +      // to TLS 1.2 instead.
 | 
	
		
			
				|  |  | +      SSL_CTX_set_max_proto_version(ssl_context, TLS1_2_VERSION);
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | +      break;
 | 
	
		
			
				|  |  |      default:
 | 
	
		
			
				|  |  |        gpr_log(GPR_INFO, "TLS version is not supported.");
 | 
	
		
			
				|  |  |        return TSI_FAILED_PRECONDITION;
 |