def remote_agreement_debug(self, fingerprint_debug, hash, delta):
        """THIS IS A DEBUG FUNCTION
        using the fingerprint from the client
        Using this means NO security!
        
        8. Key Agreement on Server
        generates fingerprint and decommits
        using received ``hash`` and ``delta``
        
        :param hash: SHA-512 Hash of codeword c
        :type hash: str
        :param delta: difference
        :type delta: list
        """
        log.info('8. Key Agreement on Server')
        
        #===============================================================================
        # Fingerprinting and Fuzzy Cryptography
        #===============================================================================       
        # generate fingerprint, not used see possible fingerprints
        self.fingerprint = fingerprint_energy_diff.get_fingerprint(self.recording_data, self.recording_samplerate)
        
        # save fingerprint for debugging
        scipy.savetxt("server_fingerprint.txt", self.fingerprint)

        log.debug('Bob fingerprint:\n'+str(self.fingerprint))
        
        # get possible fingerprints
        possible_fingerprints = get_possible_fingerprints(self.recording_data, self.recording_samplerate)
        
        # DEBUG
        length = len(fingerprint_debug)
        
        distances = []
        
        for fingerprint in possible_fingerprints:
            # calculate hamming distance between fingerprints
            distance = hamming_distance(fingerprint, fingerprint_debug)
            print('Distance: '+str(distance)+' of '+str(length))
            print('Correlation percentage: '+str(1-float(distance)/float(length)))
            distances += [distance]
        
        min_distance = min(distances)
        min_correlation = 1-float(min(distances))/float(length)
        print('Minimal distance: '+str(min_distance)+' of '+str(length))
        print('Minimal correlation percentage: '+str(min_correlation))
        
        try:
            minimals = scipy.genfromtxt(self.debug_file)
        except Exception, err:
            log.error('%s' % str(err))
            print('first time, so creating minimals')
            minimals = scipy.array([])
# fingerprinting based on energy difference
import fingerprint_energy_diff

import logging
# Logging all above INFO level, output to stderr
logging.basicConfig(#format='%(asctime)s %(levelname)-8s %(message)s')
                    format='%(levelname)-8s %(message)s')
log = logging.getLogger("fuzzy_pairing")
log.setLevel(logging.DEBUG)


# load channels:
left_channel, samplerate = load_mono(base+'1.5_3/high/music5.wav')
right_channel, samplerate = load_mono(base+'1.5_3/high/music1.wav')


# fingerprint energy diff
fingerprint_left = fingerprint_energy_diff.get_fingerprint(left_channel, samplerate)
fingerprint_right = fingerprint_energy_diff.get_fingerprint(right_channel, samplerate)

print repr(fingerprint_left)
print repr(fingerprint_right)

# calculate hamming distance between fingerprints
distance = hamming_distance(fingerprint_left, fingerprint_right)
length = len(fingerprint_left)
print length, distance
print('Correlation %: '+str(1-float(distance)/float(length)))

from scipy import genfromtxt

def move_right(fingerprint, steps):
    for i in range(steps):
        fingerprint = scipy.hstack((fingerprint[-1:], fingerprint[0:-1]))
    return fingerprint
    
def move_left(fingerprint, steps):
    for i in range(steps):
        fingerprint = scipy.hstack((fingerprint[1:], fingerprint[0:1]))
    return fingerprint

fingerprint1 = genfromtxt("server_fingerprint.txt")
fingerprint2 = genfromtxt("client_fingerprint.txt")


for i in range(1,10):

    print fingerprint1
    print fingerprint2    
    
    
    hdistance = hamming_distance(fingerprint1, fingerprint2)
    length = len(fingerprint1)
    percent = 100-(float(hdistance)/float(length)*100)
    
    print i, hdistance, length, percent
    
    # move it!
    fingerprint2 = move_left(fingerprint2, i)