private static KeyValuePair <EncryptionType, ReadOnlyMemory <byte> > ReadKeyBlock(NdrBuffer buffer, int version) { var encType = (EncryptionType)buffer.ReadInt16BigEndian(); if (version == ExpectedVersion3) { // v3 repeats _ = buffer.ReadInt16BigEndian(); } var(_, value) = ReadData(buffer); return(new KeyValuePair <EncryptionType, ReadOnlyMemory <byte> >(encType, value)); }
private static KeyValuePair <EncryptionType, ReadOnlyMemory <byte> > ReadKeyBlock(NdrBuffer buffer) { var encType = (EncryptionType)buffer.ReadInt16BigEndian(); var data = ReadData(buffer); return(new KeyValuePair <EncryptionType, ReadOnlyMemory <byte> >(encType, data.value)); }
private void ReadHeader(NdrBuffer buffer) { var headerLength = buffer.ReadInt16BigEndian(); int headerRead = 0; do { var tag = (Krb5CredentialCacheTag)buffer.ReadInt16BigEndian(); var length = buffer.ReadInt16BigEndian(); var value = buffer.ReadMemory(length); this.Header[tag] = value; headerRead += 4 + length; }while (headerRead < headerLength); }
private static IEnumerable <KrbHostAddress> ReadAddresses(NdrBuffer buffer) { var count = buffer.ReadInt32BigEndian(); var list = new List <KrbHostAddress>(); for (var i = 0; i < count; i++) { var addrType = (AddressType)buffer.ReadInt16BigEndian(); var data = ReadData(buffer); list.Add(new KrbHostAddress { AddressType = addrType, Address = data.value }); } return(list); }
private static IEnumerable <KrbAuthorizationData> ReadAuthData(NdrBuffer buffer) { var count = buffer.ReadInt32BigEndian(); var list = new List <KrbAuthorizationData>(); for (var i = 0; i < count; i++) { var adType = (AuthorizationDataType)buffer.ReadInt16BigEndian(); var data = ReadData(buffer); list.Add(new KrbAuthorizationData { Type = adType, Data = data.value }); } return(list); }