Libre Gaming Infrastructure

Handshake message

This section is not finalized and may change significantly in the future.

LGI handshake is one of the most important parts because this is where encryption parameters are agreed upon.

enum LGIHandshakeType : std::uint8_t
{
	HandshakeRequest = 0,
	ChosenAlgorithms = 1,
	EphemeralKey = 2,
	AccountPublicKey = 3,
	PublicKeyChallenge = 4,
	PublicKeyResponse = 5,
	Finish = 6
};

struct LGIHandshakeMessage
{
	LGIHandshakeType type;
	switch (type)
	{
		case LGIHandshakeType::HandshakeRequest:
		{
		}
		case LGIHandshakeType::ChosenAlgorithms:
		{
		}
		case LGIHandshakeType::EphemeralKey:
		{
		}
		case LGIHandshakeType::AccountPublicKey:
		{
		}
		case LGIHandshakeType::PublicKeyChallenge:
		{
		}
		case LGIHandshakeType::PublicKeyResponse:
		{
		}
		case LGIHandshakeType::Finish:
		{
		}
	}
};