Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }