public void Decode(AsnElt body) { tickets = new List <Ticket>(); foreach (AsnElt s in body.Sub) { switch (s.TagValue) { case 0: pvno = Convert.ToInt32(s.Sub[0].GetInteger()); break; case 1: msg_type = Convert.ToInt32(s.Sub[0].GetInteger()); break; case 2: foreach (AsnElt ae in s.Sub[0].Sub[0].Sub) { Ticket ticket = new Ticket(ae); tickets.Add(ticket); } break; case 3: enc_part = new EncKrbCredPart(s.Sub[0]); break; default: break; } } }
//KRB-CRED::= [APPLICATION 22] SEQUENCE { // pvno[0] INTEGER(5), // msg-type[1] INTEGER(22), // tickets[2] SEQUENCE OF Ticket, // enc-part[3] EncryptedData -- EncKrbCredPart //} public KRB_CRED() { // defaults for creation pvno = 5; msg_type = 22; tickets = new List <Ticket>(); enc_part = new EncKrbCredPart(); }