'Sign an XML statement.
The parameters actually used in this CryptoBackend
implementation are :
:param statement: XML as string
:param node_name: Name of the node to sign
:param key_file: xmlsec key_spec string(), filename,
"pkcs11://" URI or PEM data
:returns: Signed XML as string'

def sign_statement(self, statement, node_name, key_file, node_id, _id_attr, passphrase=None):

    import xmlsec
    import lxml.etree
    assert (passphrase is None), 'Encrypted    key    files    is    not    supported'
    xml = xmlsec.parse_xml(statement)
    signed = xmlsec.sign(xml, key_file)
    return lxml.etree.tostring(signed, xml_declaration=True)
