docs: def transform(self, transform, node):
          """
          Transforms a node following the transform especification
          :param transform: Transform node
          :type transform: lxml.etree.Element
          :param node: Element to transform
          :type node: str
          :return: Transformed node in a String
          """
          method = transform.get('Algorithm')
          if method not in constants.TransformUsageDSigTransform:
              raise Exception('Method not allowed')
          # C14N methods are allowed
          if method in constants.TransformUsageC14NMethod:
              return self.canonicalization(method, etree.fromstring(node))
          # Enveloped method removes the Signature Node from the element
          if method == constants.TransformEnveloped:
              tree = transform.getroottree()
              root = etree.fromstring(node)
              signature = root.find(
                  tree.getelementpath(
                      transform.getparent().getparent().getparent().getparent()
                  )
              )
              root.remove(signature)
              return self.canonicalization(
                      constants.TransformInclC14N, root)
          if method == constants.TransformBase64:
              try:
                  root = etree.fromstring(node)
                  return base64.b64decode(root.text)
              except Exception:
                  return base64.b64decode(node)
  
          raise Exception('Method not found')