TLS/SSL Security with wolfSSL
Posted: Mon Jan 04, 2016 9:50 pm
When looking for a security library to use while working with devkitPro toolchains check out wolfSSLs port. The embedded, lightweight TLS/SSL libraries low memory footprint size allows for efficient use of security while leaving plenty of room for the game itself. The low memory size of wolfSSL is something that has been perfected in the IoT realm and those benefits that are seen in IoT transfer nicely into the game development realm. We have updated and verified the port to devkitPPC with the most recent release of wolfSSL.
An example of building a project with its use would be as follows
Download and build wolfSSL (https://wolfssl.com/wolfSSL/download/downloadForm.php) with
Add created library and path to header files for compiling devkitPro project
Pseudocode example of using wolfSSL API in devkitPPC project
For licensing and use of wolfSSL in a project, look at https://www.wolfssl.com/wolfSSL/License.html
An example of building a project with its use would be as follows
Download and build wolfSSL (https://wolfssl.com/wolfSSL/download/downloadForm.php) with
Code: Select all
./configure --disable-shared CC=/dir to/devkitPPC/bin/powerpc-eabi-gcc --host=ppc --enable-singlethreaded RANLIB=/dir to/devkitPPC/bin/powerpc-eabi-ranlib CFLAGS="-DDEVKITPRO -DNO_WRITEV"
make src/libwolfssl.la
Code: Select all
LIBS := /dir to/wolfssl_root/src/.libs/libwolfssl.a
CFLAGS := -I/dir to/wolfssl_root/
Code: Select all
#include <gccore.h>
#include <wiiuse/wpad.h>
...
#include <wolfssl/options.h>
#include <wolfssl/wolfcrypt/aes.h>
/* function built and used by project with devkitPPC */
int foo() {
Aes aes;
byte key[] = {1, 2, …}; /* fill with desired key and iv */
byte iv[] = {1, 2, …};
byte cipher[AES-BLOCK-SIZE];
byte plain[AES-BLOCK-SIZE];
int ret;
ret = wc_AesSetKey(&aes, key, AES-BLOCK-SIZE, iv, AES_ENCRYPTION);
/* handle return value */
....
ret = wc_AesCbcEncrypt(&enc, cipher, msg, AES-BLOCK-SIZE);
/* handle return value */
....
return 0;
}