internal override string Format() { StringBuilder builder = new StringBuilder(); builder.AppendLine($"Client Name : {ClientName}"); builder.AppendLine($"Client Realm : {ClientRealm}"); if (!string.IsNullOrEmpty(ClientTime)) { builder.AppendLine($"Client Time : {KerberosUtils.ParseKerberosTime(ClientTime, ClientUSec)}"); } if (Checksum != null) { Checksum.Format(builder); } if (SubKey != null) { builder.AppendLine("<Sub Session Key>"); builder.AppendLine($"Encryption Type : {SubKey.KeyEncryption}"); builder.AppendLine($"Encryption Key : {NtObjectUtils.ToHexString(SubKey.Key)}"); } if (SequenceNumber.HasValue) { builder.AppendLine($"Sequence Number : 0x{SequenceNumber:X}"); } if (AuthorizationData.Count > 0) { foreach (var ad in AuthorizationData) { ad.Format(builder); } builder.AppendLine(); } return(builder.ToString()); }