obtain ticket and session_key from cache; packet.pvno := protocol version; /* 5 */ packet.msg-type := message type; /* KRB_AP_REQ */ if (desired(MUTUAL_AUTHENTICATION)) then set packet.ap-options.MUTUAL-REQUIRED; else reset packet.ap-options.MUTUAL-REQUIRED; endif if (using session key for ticket) then set packet.ap-options.USE-SESSION-KEY; else reset packet.ap-options.USE-SESSION-KEY; endif packet.ticket := ticket; /* ticket */ generate authenticator; encode authenticator into OCTET STRING; encrypt OCTET STRING into packet.authenticator using session_key;