public AP_REQ( Asn1Integer param0, Asn1Integer param1, APOptions param2, Ticket param3, EncryptedData param4) { this.pvno = param0; this.msg_type = param1; this.ap_options = param2; this.ticket = param3; this.authenticator = param4; }
public AS_REP( Asn1Integer param0, Asn1Integer param1, Asn1SequenceOf<PA_DATA> param2, Realm param3, PrincipalName param4, Ticket param5, EncryptedData param6) { this.pvno = param0; this.msg_type = param1; this.padata = param2; this.crealm = param3; this.cname = param4; this.ticket = param5; this.enc_part = param6; }
/// <summary> /// Create and send TGS request /// </summary> /// <param name="sName">Service principal name</param> /// <param name="kdcOptions">KDC options</param> /// <param name="seqPadata">A sequence of preauthentication data</param> /// <param name="checksumType">Checksum type of PA-TGS-REQ</param> /// <param name="additionalTicket">Additional ticket</param> /// <param name="data">Authorization data</param> public void SendTgsRequest(string sName, KdcOptions kdcOptions, Asn1SequenceOf<PA_DATA> seqPadata = null, Ticket additionalTicket = null, AuthorizationData dataInAuthenticator = null, AuthorizationData dataInEncAuthData = null) { if (sName == null) { throw new ArgumentNullException("sName"); } PrincipalName sname = new PrincipalName( new KerbInt32((int)PrincipalType.NT_SRV_INST), KerberosUtility.String2SeqKerbString(sName.Split('/'))); KDC_REQ_BODY kdcReqBody = CreateKdcRequestBody(kdcOptions, sname, dataInEncAuthData); Asn1BerEncodingBuffer bodyBuffer = new Asn1BerEncodingBuffer(); kdcReqBody.BerEncode(bodyBuffer); ChecksumType checksumType = KerberosUtility.GetChecksumType(Context.SelectedEType); PA_DATA paTgsReq = CreatePaTgsReq(checksumType, bodyBuffer.Data, dataInAuthenticator); Asn1SequenceOf<PA_DATA> tempPaData = null; if (seqPadata == null || seqPadata.Elements == null || seqPadata.Elements.Length == 0) { tempPaData = new Asn1SequenceOf<PA_DATA>(new PA_DATA[] { paTgsReq }); } else { PA_DATA[] paDatas = new PA_DATA[seqPadata.Elements.Length + 1]; Array.Copy(seqPadata.Elements, paDatas, seqPadata.Elements.Length); paDatas[seqPadata.Elements.Length] = paTgsReq; tempPaData = new Asn1SequenceOf<PA_DATA>(paDatas); } KerberosTgsRequest tgsRequest = new KerberosTgsRequest(KerberosConstValue.KERBEROSV5, kdcReqBody, tempPaData, Context.TransportType); this.SendPdu(tgsRequest); this.testSite.Log.Add(LogEntryKind.Debug, "Send TGS request."); }
/// <summary> /// Create a Kerberos ticket /// </summary> /// <param name="ticket">Ticket</param> /// <param name="ticketOwner">Owner of ticket</param> /// <param name="sessionKey">Session key in ticket</param> public KerberosTicket(Ticket ticket, PrincipalName ticketOwner, EncryptionKey sessionKey) { this.Ticket = ticket; this.TicketOwner = ticketOwner; this.SessionKey = sessionKey; }