code: def make_temp(string, suffix='', decode=True, delete=True):
      
      ntf = NamedTemporaryFile(suffix=suffix, delete=delete)
      # Python3 tempfile requires byte-like object
      if not isinstance(string, six.binary_type):
          string = string.encode('utf-8')
  
      if decode:
          ntf.write(base64.b64decode(string))
      else:
          ntf.write(string)
      ntf.seek(0)
      return ntf, ntf.name
docs: xmlsec needs files in some cases where only strings exist, hence the
      need for this function. It creates a temporary file with the
      string as only content.
  
      :param string: The information to be placed in the file
      :param suffix: The temporary file might have to have a specific
          suffix in certain circumstances.
      :param decode: The input string might be base64 coded. If so it
          must, in some cases, be decoded before being placed in the file.
      :return: 2-tuple with file pointer ( so the calling function can
          close the file) and filename (which is for instance needed by the
          xmlsec function).