Beispiel #1
0
        public static WritableBuffer SendServerHello12(WritableBuffer buffer, IConnectionState connectionState)
        {
            buffer.Ensure(RandomLength + sizeof(ushort));
            buffer.WriteBigEndian(connectionState.Version);
            var memoryToFill = buffer.Memory.Slice(0, RandomLength);

            connectionState.CryptoProvider.FillWithRandom(memoryToFill);
            connectionState.SetServerRandom(memoryToFill);
            buffer.Advance(RandomLength);
            buffer.WriteBigEndian <byte>(0);
            buffer.WriteBigEndian(connectionState.CipherSuite.CipherCode);
            buffer.WriteBigEndian <byte>(0);
            BufferExtensions.WriteVector <ushort>(ref buffer, ExtensionsWrite.WriteExtensionListTls12, connectionState);
            return(buffer);
        }