A crypto library that provides all of the necessary crypto functionality to interact with the PlanetSide client.
Find a file
2016-07-29 07:32:37 +02:00
external Bump CryptoPP version to account for RNG fix 2016-07-29 07:32:37 +02:00
pscrypto Bump CryptoPP version to account for RNG fix 2016-07-29 07:32:37 +02:00
scripts Create build script for making releases 2016-07-27 02:01:23 +02:00
.gitignore Create build script for making releases 2016-07-27 02:01:23 +02:00
.gitmodules Initial commit 2016-04-22 01:34:00 -04:00
Makefile Improve makefile, version code, and document 2016-07-25 00:57:28 -04:00
Makefile.inc Create build script for making releases 2016-07-27 02:01:23 +02:00
README.md Bump CryptoPP version to account for RNG fix 2016-07-29 07:32:37 +02:00
ReleaseNotes.txt Bump CryptoPP version to account for RNG fix 2016-07-29 07:32:37 +02:00

PSCrypto

A PlanetSide specific wrapper around CryptoPP for use with Scala or Java. These functions are used for establishing an authenticated and confidential connection between a PlanetSide server and client.

To get the library, run

$ git clone --recursive https://github.com/psforever/PSCrypto.git

Or if you already cloned without getting the submodules

git submodule update --init --recursive

Building

GNU Make and an g++ (GNU C++) required. Builds tested in Debian, Cygwin with Mingw64, and GNUWin32. In the top-level PSCrypto directory (not the subfolder), run

$ make -j4 # build for current system

This will build the CryptoPP dependency and then the pscrypto library, which links to CryptoPP. The pscrypto build artifact will be in pscrypto/ as libpscrypto.so or pscrypto.dll depending on your platform. Note that the library architecture must match that of the JVM or process you are loading it in to, otherwise you will see loader errors.

Cross Compiling

Use the environment variable PREFIX to define a compiler tuple for building. For example

$ PREFIX=x86_64-w64-mingw32- make -j4

This will build a pscrypto.dll for 64-bit Windows. Platform and architecture quirks are handled by the file Makefile.inc.

You can also specify the ARCH variable manually (as i686 or x86_64) in order to enable multilib building, if available.

Releasing Code

You are able to create a release on a Linux 64-bit system with the MingW64 compiler toolchain installed. The prefixes required to build are

x86_64-w64-mingw32-
i686-w64-mingw32-
x86_64-linux-gnu-

Check out the script to build a release.

Release Checklist

  • Everything builds correctly
  • Version has been bumped in pscrypto/pscrypto.h and in the Windows resource file pscrypto/resource.rc
  • A release can be made with the build script
  • Release notes have been updated
  • All external references and this repository are tagged with attached release binaries
  • Update links (travis, other readmes) to point to the latest release