code: def _use_private_key(
              self,
              client_certchain_file: str,
              client_key_file: str,
              client_key_type: OpenSslFileTypeEnum,
              client_key_password: str
      ) -> None:
          
          # Ensure the files exist
          with open(client_certchain_file):
              pass
          with open(client_key_file):
              pass
  
          self._ssl_ctx.use_certificate_chain_file(client_certchain_file)
          self._ssl_ctx.set_private_key_password(client_key_password)
          try:
              self._ssl_ctx.use_PrivateKey_file(client_key_file, client_key_type.value)
          except OpenSSLError as e:
              if 'bad password read' in str(e) or 'bad decrypt' in str(e):
                  raise ValueError('Invalid Private Key')
              else:
                  raise
  
          self._ssl_ctx.check_private_key()
docs: The certificate chain file must be in PEM format. Private method because it should be set via the
          constructor.