Server receives challenge, decrypts it, hashes it, signs it and sends it to client. Client receives the signed value, decrypts it and verifies the challenge is correct.