Informations
Jump to content

Lorem Ipsum...

Click to Dismiss this Notification
Ładowanie danych...

Recommended Posts

  • Premium+

Hello everyone,

This document outlines a straightforward upgrade that enables the building of libserverkey for OpenSSL version 1.0 or higher. The changes here work smoothly with OpenSSL v1.0.4d (Win32 build).

Modifications Required in RSACrypto.cpp

In the Function RSACrypto::PublicKey::PublicKey

Replace the existing code:

 
This is the hidden content, please

with the following:

 
This is the hidden content, please

In the Function RSACrypto::PublicKey::Alloc

Replace:

 
This is the hidden content, please

with:

 
This is the hidden content, please

In the Function RSACrypto::PublicKey::Copy

Replace:

 
This is the hidden content, please

with:

 
This is the hidden content, please

In the Function RSACrypto::PrivateKey::Alloc

Replace:

 
This is the hidden content, please

with:

 
This is the hidden content, please

In the Function RSACrypto::PrintKey(k, n, e)

Replace:

 
This is the hidden content, please

with:

 
This is the hidden content, please

Then replace:

 
This is the hidden content, please

with:

 
This is the hidden content, please

In the Function RSACrypto::PrintKey(k, n, e, d)

Replace:

 
This is the hidden content, please

with:

 
This is the hidden content, please

Replace:

 
This is the hidden content, please

with:

 
This is the hidden content, please

Finally, replace:

 
This is the hidden content, please

with:

 
This is the hidden content, please

Explanation of Changes

  1. These conditional directives ensure compatibility with older versions of OpenSSL.
  2. OpenSSL 1.0 does not expose the rsa_ structure directly; hence, we must leverage OpenSSL’s API to extract the necessary information.

Understanding the Purpose of libserverkey

You might wonder about the function of libserverkey. Historically, there was a concern regarding the leakage of game files, which likely led to the implementation of this feature.

Libserverkey contains both a public and a private RSA key to your core, helping to verify if the current machine is authorized to use that core. While this feature may not be critical and can be bypassed with the right expertise, it can be safely removed from the game if needed.

I plan to document this protection in the wiki for further clarification. Until then, I hope this overview provides valuable insight into this library.

Link to comment
Share on other sites


Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

spacer.png

Disable AdBlock
The popup will be closed in 5 seconds...