Exemple #1
0
        public override ReadOnlySpan <byte> Marshal()
        {
            var buffer = new NdrBuffer();

            buffer.MarshalObject(this);

            return(buffer.ToSpan(alignment: 8));
        }
Exemple #2
0
        public override ReadOnlySpan <byte> Marshal()
        {
            var buffer = new NdrBuffer();

            buffer.WriteInt32LittleEndian((int)Type);
            buffer.WriteSpan(Signature.Span);
            buffer.WriteInt16LittleEndian(RODCIdentifier);

            return(buffer.ToSpan());
        }
        public override ReadOnlySpan <byte> Marshal()
        {
            var buffer = new NdrBuffer();

            buffer.WriteInt32LittleEndian(Version);
            buffer.WriteInt32LittleEndian((int)EncryptionType);
            buffer.WriteSpan(SerializedData.Span);

            return(buffer.ToSpan());
        }
Exemple #4
0
        public override ReadOnlySpan <byte> Marshal()
        {
            using (var buffer = new NdrBuffer())
            {
                buffer.WriteInt32LittleEndian(this.Version);
                buffer.WriteInt32LittleEndian((int)this.EncryptionType);
                buffer.WriteSpan(this.SerializedData.Span);

                return(buffer.ToSpan(alignment: 8));
            }
        }
Exemple #5
0
        public override ReadOnlySpan <byte> Marshal()
        {
            var buffer = new NdrBuffer();

            buffer.WriteStruct(ClientId);
            buffer.WriteInt16LittleEndian((short)(Name.Length * sizeof(char)));

            if (NameLength > 0)
            {
                buffer.WriteFixedPrimitiveArray(Name.AsSpan());
            }

            return(buffer.ToSpan());
        }
Exemple #6
0
        public override ReadOnlySpan <byte> Marshal()
        {
            using (var buffer = new NdrBuffer())
            {
                buffer.WriteInt32LittleEndian((int)this.Type);
                buffer.WriteSpan(this.Signature.Span);

                if (this.RODCIdentifier > 0)
                {
                    buffer.WriteInt16LittleEndian(this.RODCIdentifier);
                }

                return(buffer.ToSpan());
            }
        }
Exemple #7
0
        private static ReadOnlySpan <byte> Compress(ClaimsSet claimsSet, CompressionFormat compressionFormat, out int originalSize)
        {
            var buffer = new NdrBuffer();

            buffer.MarshalObject(claimsSet);

            ReadOnlySpan <byte> encoded = buffer.ToSpan(alignment: 8);

            originalSize = encoded.Length;

            if (compressionFormat != CompressionFormat.COMPRESSION_FORMAT_NONE)
            {
                encoded = Compressions.Compress(encoded, compressionFormat);
            }

            return(encoded);
        }
Exemple #8
0
        public override ReadOnlySpan <byte> Marshal()
        {
            var buffer = new NdrBuffer();

            var upnBytes    = MemoryMarshal.Cast <char, byte>(Upn.AsSpan());
            var domainBytes = MemoryMarshal.Cast <char, byte>(Domain.AsSpan());

            buffer.WriteInt16LittleEndian((short)upnBytes.Length);
            buffer.WriteInt16LittleEndian(2 + 2 + 2 + 2 + 4 + 4); // + 4 to align on 8 boundary

            buffer.WriteInt16LittleEndian((short)domainBytes.Length);
            buffer.WriteInt16LittleEndian((short)(2 + 2 + 2 + 2 + 2 + 4 + 4 + upnBytes.Length));

            buffer.WriteInt32LittleEndian((int)Flags);

            buffer.WriteInt32LittleEndian(0);
            buffer.WriteFixedPrimitiveArray(upnBytes);

            buffer.WriteInt16LittleEndian(0);
            buffer.WriteFixedPrimitiveArray(domainBytes);

            return(buffer.ToSpan(alignment: 8));
        }