Verifies signature

def verify_signature(self, signature):
        """Verifies signature"""

        devices   = [DeviceRegistration.wrap(device) for device in self.__get_u2f_devices()]
        challenge = session.pop('_u2f_challenge_')

        try:
            counter, touch = verify_authenticate(devices, challenge, signature, self.__facets_list)
        except Exception as e:
            if self.__call_fail_sign:
                self.__call_fail_sign(e)

            return {
                'status':'failed', 
                'error': 'Invalid signature!'
            }
        finally:
            pass

        if self.verify_counter(signature, counter):
            self.__call_success_sign()
            self.disable_sign()
            
            return {
                'status'  : 'ok',
                'counter' : counter,
                'message': 'Successfully verified your second factor!'
            }


        else:
            if self.__call_fail_sign:
                self.__call_fail_sign()

            return {
                'status':'failed', 
                'error': 'Device clone detected!'
            }