RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Server-Side Client Encryption Support

Vorspire

Knight
Server-Side Client Encryption Support

OK guys.. Here's probably the most asked, but never answered question since 2002. How do I know this? Because I spent about one month searching these forums for any hints, tips or signs of an answer to the question, "How can we support encrypted clients?"

OK, you'ere probably thinking.. Use Razor, ConnectUO, whatever... I don't use any third party tools to connect to my shard, I use a decrypted (UO Rice) Client 5.0.7.1.
- My shard supports up to 5.0.9.1.
However, I want to upgrade ALL of my players to client 5.0.9.1 because of the Winter Seasons bug in 5.0.7.1...
The main problem is, UO RICE is broken for clients higher than 5.0.7.1 so it seems. So, since I allow Razor and other Third Party applications on my shard, I see no harm in allowing encrypted clients and decrypted clients to connect.

During my quest for knowlege with the ever-useful search function, I came upon a thread in Server Support ( Ref: http://www.runuo.com/forums/server-support-windows/81481-client-encryption-key.html ) and upon requesting more information in a post, someone sent me a private message containing a link to the system that the post uses.
The system is that of server-side client encryption support, it looks flash, seems to work. But then, and I quote...

Vorspire;771695 said:
I am having errors with the ClientEncryption scripts that use these keys.

The client is detected as Encrypted and it selects the Key for the client and allows it to connect to the Server List screen. If I select my server, it disconnects my client.

Has anyone else had this problem? Or does anyone else use this system or has previously used it on RunUO 1.0?

I would REALLY appreciate any information regarding this system.

Thanks, and sorry for the NecroBump :p

So... does anyone have a clue just what is going on?

//Edit
( Ref: http://www.runuo.com/forums/custom-...pporting-osi-client-encryption-ver-1-0-a.html )

The attachment below is the system that provides encryption for the packets etc, it is a completely Drag-And-Drop install, apart from one thing that had to be changed in the core.
(Changing NetState PacketEncoder property from static to dynamic )
 

Attachments

  • ClientEncryption.rar
    12.4 KB · Views: 300

karth

Wanderer
Did you have any success?

I did install the Engine, but I'm unable to reach the character choice screen (just before spawning in the world).
Using RunUO2SVN rev. 300. The console says that my client is encrypted, then chooses what seem to be the appropriate keys, allows me to choose a server, then my client is stuck at connecting... (won't let me choose a character)
 

deathwearer

Sorceror
Vorspire;771700 said:
However, I want to upgrade ALL of my players to client 5.0.9.1 because of the Winter Seasons bug in 5.0.7.1...
The main problem is, UO RICE is broken for clients higher than 5.0.7.1 so it seems. So, since I allow Razor and other Third Party applications on my shard, I see no harm in allowing encrypted clients and decrypted clients to connect.

Here is what he said
 

deathwearer

Sorceror
Just would like to add that UO Rice works with 6.0.1.1 Clients for me. 2D Client of course, 3D 6.x.x.x aren't supported as far as I remember.
 

karth

Wanderer
I have my reasons of wanting to support encryption on my server, and the first one is to avoid requiring the players to modify their install or forcing them to use third party tools.

He said indeed that he sees no harm in letting players choose, and this is also my point of view; therefore, I wanted to have some update on his works to support 6.x.x.x encryption on RunUO2.

@deathwearer: 3D 6.x.x.x clients are disabled because of UO:KR. Indeed, UO_RICE is broken, but it's author released the source.
 

Anglohel

Wanderer
Code:
RunUO - [www.runuo.com] Версия 2.0, Build 3189.26600
Core: Running on .NET Framework Version 2.0.50727
Core: Optimizing for 2 processors
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
 + Engines/ClientEncryption/Encryption.cs:
    CS0117: Line 122: 'Server.Network.Listener' does not contain a definition fo
r 'Port'
Scripts: One or more scripts failed to compile or no script files were found.
 - Press return to exit, or R to try again.

What's wrong?
Help please
 

Soteric

Knight
It seems to me you are using RC2 (or one of the latest SVN) and this encryption was developed for RC1 server. Don't know how to fix it though
 

ntony

Sorceror
Soteric;777608 said:
It seems to me you are using RC2 (or one of the latest SVN) and this encryption was developed for RC1 server. Don't know how to fix it though

I don't know C#. I'm just a Java programmer. Try this if you dare:
Code:
// If the client did not connect on the game server port,
			// it's not our business to handle encryption for it
			bool connecting = false;
			foreach (IPEndPoint ipep in Listener.EndPoints) {
				if (((IPEndPoint)from.Socket.LocalEndPoint).Port != ipep.Port)
				connecting = true;
			}
			if (connecting) 
			{
				m_Encryption = new NoEncryption();
				return;
			}
 
Top