5
5
6
6
7
7
class TLSConfig (object ):
8
+ cert = None
9
+ verify = None
10
+ ssl_version = None
11
+
8
12
def __init__ (self , tls , tls_cert = None , tls_key = None , tls_verify = False ,
9
13
tls_ca_cert = None , ssl_version = None ):
10
14
# Argument compatibility/mapping with
@@ -25,11 +29,12 @@ def __init__(self, tls, tls_cert=None, tls_key=None, tls_verify=False,
25
29
if not (tls_cert and tls_key ) or (not os .path .isfile (tls_cert ) or
26
30
not os .path .isfile (tls_key )):
27
31
raise errors .TLSParameterError (
28
- 'You must provide either both "tls_cert"/"tls_key" files, '
29
- 'or neither, in order to use TLS.' )
32
+ 'Client certificate must provide certificate and key files'
33
+ ' through tls_cert and tls_key params respectively'
34
+ )
30
35
self .cert = (tls_cert , tls_key )
31
36
32
- # Either set tls_verify to True (public/default CA checks) or to the
37
+ # Either set verify to True (public/default CA checks) or to the
33
38
# path of a CA Cert file.
34
39
if tls_verify :
35
40
if not tls_ca_cert :
@@ -38,14 +43,13 @@ def __init__(self, tls, tls_cert=None, tls_key=None, tls_verify=False,
38
43
self .verify = tls_ca_cert
39
44
else :
40
45
raise errors .TLSParameterError (
41
- 'If "tls_verify" is set, then "tls_ca_cert" must be blank'
42
- ' (to check public CA list) OR a path to a Cert File.'
46
+ 'Invalid CA certificate provided for `tls_ca_cert`.'
43
47
)
44
- else :
45
- self .verify = False
46
48
47
49
def configure_client (self , client ):
48
- client .verify = self .verify
49
50
client .ssl_version = self .ssl_version
50
- client .cert = self .cert
51
- self .mount ('https://' , ssladapter .SSLAdapter (self .ssl_version ))
51
+ if self .verify is not None :
52
+ client .verify = self .verify
53
+ if self .cert :
54
+ client .cert = self .cert
55
+ client .mount ('https://' , ssladapter .SSLAdapter (self .ssl_version ))
0 commit comments