Esempio n. 1
0
        public ClaimEntry(NdrBinaryReader pacStream)
        {
            pacStream.Seek(4);

            Type = (ClaimType)pacStream.ReadShort();

            pacStream.Align(4);

            Count = pacStream.ReadUnsignedInt();

            pacStream.Seek(4);
        }
Esempio n. 2
0
        internal void ReadValue(NdrBinaryReader stream)
        {
            Id = stream.ReadString();

            stream.Align(4);

            var count = stream.ReadInt();

            if (count != Count)
            {
                throw new InvalidDataException($"ValueCount {Count} doesn't match actual count {count} for claim {Id}.");
            }

            if (Type == ClaimType.CLAIM_TYPE_STRING)
            {
                var ptr = stream.ReadInt();

                if (count > 1 && ptr != 0)
                {
                    stream.Seek(8);
                }
            }

            ReadValues(stream);
        }
Esempio n. 3
0
        public ClaimsArray(NdrBinaryReader pacStream)
        {
            ClaimSource = (ClaimSourceType)pacStream.ReadInt();
            Count       = pacStream.ReadUnsignedInt();

            var claims = new List <ClaimEntry>();

            pacStream.Seek(4);

            var count = pacStream.ReadInt();

            if (Count != count)
            {
                throw new InvalidDataException($"Claims count {Count} doesn't match actual count {count}");
            }

            for (var i = 0; i < Count; i++)
            {
                claims.Add(new ClaimEntry(pacStream));
            }

            foreach (var entry in claims)
            {
                entry.ReadValue(pacStream);
            }

            ClaimEntries = claims;
        }
Esempio n. 4
0
        public ClaimsSet(byte[] claims)
        {
            var pacStream = new NdrBinaryReader(claims);

            Header = new RpcHeader(pacStream);

            Count = pacStream.ReadInt();

            pacStream.Seek(4);

            ReservedType      = pacStream.ReadShort();
            ReservedFieldSize = pacStream.ReadInt();

            ReservedField = pacStream.Read(ReservedFieldSize);

            pacStream.Align(8);

            ClaimsArray = ReadClaimsArray(pacStream);
        }