import "steamnetworkingsockets_messages_certs.proto";

option optimize_for = SPEED;
option cc_generic_services = false;

message CMsgSteamDatagramRelayAuthTicket {
	message ExtraField {
		optional string name = 1;
		optional string string_value = 2;
		optional sint64 int64_value = 3;
		optional fixed64 fixed64_value = 5;
	}

	optional fixed32 time_expiry = 1;
	optional string authorized_client_identity_string = 14;
	optional string gameserver_identity_string = 15;
	optional fixed32 authorized_public_ip = 3;
	optional bytes gameserver_address = 11;
	optional uint32 app_id = 7;
	optional uint32 virtual_port = 10;
	repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8;
	optional fixed64 legacy_authorized_steam_id = 2;
	optional fixed64 legacy_gameserver_steam_id = 4;
	optional fixed32 legacy_gameserver_pop_id = 9;
	optional bytes legacy_authorized_client_identity_binary = 12;
	optional bytes legacy_gameserver_identity_binary = 13;
}

message CMsgSteamDatagramSignedRelayAuthTicket {
	optional fixed64 reserved_do_not_use = 1;
	optional bytes ticket = 3;
	optional bytes signature = 4;
	optional fixed64 key_id = 2;
	repeated .CMsgSteamDatagramCertificateSigned certs = 5;
}

message CMsgSteamDatagramCachedCredentialsForApp {
	optional bytes private_key = 1;
	optional bytes cert = 2;
	repeated bytes relay_tickets = 3;
}

message CMsgSteamDatagramGameCoordinatorServerLogin {
	optional uint32 time_generated = 1;
	optional uint32 appid = 2;
	optional bytes routing = 3;
	optional bytes appdata = 4;
	optional bytes legacy_identity_binary = 5;
	optional string identity_string = 6;
	optional fixed64 dummy_steam_id = 99;
}

message CMsgSteamDatagramSignedGameCoordinatorServerLogin {
	optional .CMsgSteamDatagramCertificateSigned cert = 1;
	optional bytes login = 2;
	optional bytes signature = 3;
}

message CMsgSteamDatagramHostedServerAddressPlaintext {
	optional fixed32 ipv4 = 1;
	optional bytes ipv6 = 2;
	optional uint32 port = 3;
	optional fixed64 routing_secret = 4;
	optional uint32 protocol_version = 5;
}
