<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def decrypt(self, binary):
        '''
        Decrypt and unpack the original OpenConfig object,
        serialized using MessagePack.
        Raise BadSignatureException when the signature
        was forged or corrupted.
        '''
        try:
            encrypted = self.verify_key.verify(binary)
        except BadSignatureError:
            log.error('Signature was forged or corrupt', exc_info=True)
            raise BadSignatureException('Signature was forged or corrupt')
        try:
            packed = self.priv_key.decrypt(encrypted)
        except CryptoError:
            log.error('Unable to decrypt', exc_info=True)
            raise CryptoException('Unable to decrypt')
        return umsgpack.unpackb(packed)