pub fn authenticate( auth: Authenticate, effects: &mut impl Effects, writer: &mut impl Write, ) -> Result<(), Error>