Esempio n. 1
0
        private static void WriteKeyBlock(KeyValuePair <EncryptionType, ReadOnlyMemory <byte> > kv, NdrBuffer buffer, int version)
        {
            buffer.WriteInt16BigEndian((short)kv.Key);

            if (version == ExpectedVersion3)
            {
                buffer.WriteInt16BigEndian((short)kv.Key);
            }

            WriteData(kv.Value, buffer);
        }
Esempio n. 2
0
        private void WriteHeader(NdrBuffer buffer)
        {
            using (var headerBuffer = new NdrBuffer(align: false))
            {
                foreach (var kv in this.Header)
                {
                    headerBuffer.WriteInt16BigEndian((short)kv.Key);
                    headerBuffer.WriteInt16BigEndian((short)kv.Value.Length);
                    headerBuffer.WriteMemory(kv.Value);
                }

                var header = headerBuffer.ToMemory(0);

                buffer.WriteInt16BigEndian((short)header.Length);
                buffer.WriteMemory(header);
            }
        }
Esempio n. 3
0
        private static void WriteAddresses(IEnumerable <KrbHostAddress> addresses, NdrBuffer buffer)
        {
            if (addresses == null)
            {
                addresses = Array.Empty <KrbHostAddress>();
            }

            buffer.WriteInt32BigEndian(addresses.Count());

            foreach (var addr in addresses)
            {
                buffer.WriteInt16BigEndian((short)addr.AddressType);
                WriteData(addr.Address, buffer);
            }
        }
Esempio n. 4
0
        private static void WriteAuthData(IEnumerable <KrbAuthorizationData> authData, NdrBuffer buffer)
        {
            if (authData == null)
            {
                authData = Array.Empty <KrbAuthorizationData>();
            }

            buffer.WriteInt32BigEndian(authData.Count());

            foreach (var az in authData)
            {
                buffer.WriteInt16BigEndian((short)az.Type);
                WriteData(az.Data, buffer);
            }
        }
Esempio n. 5
0
 private static void WriteKeyBlock(KeyValuePair <EncryptionType, ReadOnlyMemory <byte> > kv, NdrBuffer buffer)
 {
     buffer.WriteInt16BigEndian((short)kv.Key);
     WriteData(kv.Value, buffer);
 }