def calculate_signatures(self):
if not self.signing_algorithm:<EOL><INDENT>return []<EOL><DEDENT>algo_id = {'<STR_LIT>': <NUM_LIT:1>, '<STR_LIT>': <NUM_LIT:2>}[self.signing_algorithm]<EOL>hashers = [(algo_id, make_hasher(algo_id))]<EOL>for block in get_signature_data(self.fileobj, self.filesize):<EOL><INDENT>[h.update(block) for (_, h) in hashers]<EOL><DEDENT>signatures = [(algo_id, sign_hash(self.signing_key, h.finalize(), h.algorithm.name)) for (algo_id, h) in hashers]<EOL>return signatures<EOL>
Calculate the signatures for this MAR file.

        Returns:
            A list of signature tuples: [(algorithm_id, signature_data), ...]