basic challenge-response implemented