def load_verify_locations(self, cafile=None, capath=None, cadata=None): if cafile is None and capath is None and cadata is None: raise TypeError("cafile, capath and cadata cannot be all omitted") cafiles = [] if cafile is not None: cafiles.append(cafile) if capath is not None: for fname in os.listdir(capath): _, ext = os.path.splitext(fname) possible_cafile = os.path.join(capath, fname) if ext.lower() == 'pem': cafiles.append(possible_cafile) elif fname == 'cacerts': # java truststore if os.path.isfile(possible_cafile): cafiles.append(possible_cafile) elif os.path.isfile(possible_cafile): with open(possible_cafile) as f: if PEM_HEADER in f.read(): cafiles.append(possible_cafile) certs = [] private_key = None if cadata is not None: certs, private_key = _extract_cert_from_data(cadata) _certs, private_key = _extract_certs_for_paths(cafiles) certs.extend(_certs) for cert in certs: # FIXME not sure this is correct? if private_key is None: self._trust_store.setCertificateEntry(_str_hash_key_entry(cert), cert) else: self._key_store.setCertificateEntry(_str_hash_key_entry(cert), cert)