def getAvailableSignatures():
    """
    Forwards the request for available signatures to the signatures module. Normalises
    the output from this function (checks the signaturs).
    
    @return: C{None} if error in signatures file, otherwise the list of signatures.
    @rtype: C{List} of C{Signatures}
    """
    signs = signatures.getCopyOfAllSignauteres()
    if signatures.normaliseSignatures(signs) == -1:
        return None
    return signs
def init(status_passed):
    """
    Initalises the core for execution for one source file
    
    Variables for maximal signature sequence length, found start sequences,
    counters are reseted and the source file is opened. The status instance
    is updated and informed about the success of intialisation.
    
    @param status_passed: Status instance containing all information for the current execution.
    @type status_passed: ExecutionSettings.ExecutionStatus
    
    @return: Indicates, whether the initialisation was sucessful. (-1 / -2 for problems with signature file; 0 for success)
    @rtype: C{int}
    """
    global maxlength, start, skipped, size, binfile
    
    status = status_passed
    settings = status.settings

    settings.dest_folder = tools.checkDestfolder(settings.dest_folder)
    
    binfilename = status.getCurrentFile()
    binfile = open(binfilename, 'rb')

    if status.file_start == None:
        status.file_start = 0
    if status.file_end == None or status.file_end > os.path.getsize(binfilename):
        status.file_end = os.path.getsize(binfilename)

    counter = status.counter
    counterr = status.counterr   # for continue counting
    start = {}
    skipped = {}

    for j in settings.signatures:
        counter[j[signatures.name]] = 0
        start[j[signatures.name]] = -1
        skipped[j[signatures.name]] = 0
    

    size = status.file_end - status.file_start
    maxlength = signatures.normaliseSignatures(settings.signatures)
    if maxlength == -1:
        print ('Error in Signature File - required Entry missing in at least one signature')
        return -1
    if maxlength == -2:
        print ('Error in Signature File - wrong value for at least one signature')
        return -2
    disabled = signatures.disable(settings.signatures, settings.disabled_signatures)
    status.initialisedOne()
    return 0