'Revoke certificate.
:param .ComparableX509 cert: `OpenSSL.crypto.X509` wrapped in
`.ComparableX509`
:param int rsn: Reason code for certificate revocation.
:raises .ClientError: If revocation is unsuccessful.'

def revoke(self, cert, rsn):

    response = self.net.post(self.directory[messages.Revocation], messages.Revocation(certificate=cert, reason=rsn), content_type=None)
    if (response.status_code != http_client.OK):
        raise errors.ClientError('Successful    revocation    must    return    HTTP    OK    status')
