public void Marshal(NdrBuffer buffer) { buffer.WriteByte(Revision); buffer.WriteByte(SubAuthorityCount); buffer.WriteStruct(IdentifierAuthority); buffer.WriteFixedPrimitiveArray(SubAuthority.Span); }
public void Marshal(NdrBuffer buffer) { if (buffer == null) { throw new ArgumentNullException(nameof(buffer)); } buffer.WriteByte(this.Revision); buffer.WriteByte(this.SubAuthorityCount); buffer.WriteStruct(this.IdentifierAuthority); buffer.WriteFixedPrimitiveArray(this.SubAuthority.Span); }
internal byte[] Serialize() { using (var buffer = new NdrBuffer(align: false)) { buffer.WriteByte(Magic); buffer.WriteByte(ExpectedVersion); this.WriteHeader(buffer); WritePrincipal(this.DefaultPrincipalName, buffer); this.WriteCredentials(buffer); return(buffer.ToMemory(0).ToArray()); } }
private static void WriteCredential(Krb5Credential cred, NdrBuffer buffer) { WritePrincipal(cred.Client, buffer); WritePrincipal(cred.Server, buffer); WriteKeyBlock(cred.KeyBlock, buffer); WriteDateTimeOffset(cred.AuthTime, buffer); WriteDateTimeOffset(cred.StartTime, buffer); WriteDateTimeOffset(cred.EndTime, buffer); WriteDateTimeOffset(cred.RenewTill, buffer); buffer.WriteByte(cred.IsKey ? (byte)0x1 : (byte)0x0); buffer.WriteInt32BigEndian((int)cred.Flags); WriteAddresses(cred.Addresses, buffer); WriteAuthData(cred.AuthData, buffer); WriteData(cred.Ticket, buffer); WriteData(cred.SecondTicket, buffer); }