GeCipher256 Manual


GeCipher256 class provides means to encrypt and decrypt data.

This class only uses a simple and insecure scrambling. Use advanced algorithms like AES if security is really needed.
For encryption using the MAXON API see Stream Conversions Manual.
// This example demonstrates the encryption and decryption of a string.
Char plainText[] = "O brave new world / That has such people in't!";
const Int32 length = sizeof(plainText);
ApplicationOutput("Plain Text: @"_s, maxon::String(plainText));
// Define an en-/decryption key.
const Char key[32] = { '7', 'c', '3', '0', 'e', '0', '0', 'b', 'b', '6', '2', '7', '1', '4', '9', '5' };
const Int32 keyLength = sizeof(key); // in bytes
// Initialize GeCipher256 instance.
GeCipher256 cipher;
if (!cipher.Open(key, keyLength, false))
return maxon::UnexpectedError(MAXON_SOURCE_LOCATION, "The function exited unexpectedly on initializing GeCipher256"_s);
// Encryption is in-situ.
cipher.Encrypt(plainText, length);
// Get a copy of the encrypted string, just for the purpose of displaying it on console.
Char plainTextEncoded[sizeof(plainText) + 1]; // one extra byte for null termination
CopyMem(plainText, plainTextEncoded, length);
plainTextEncoded[sizeof(plainText)] = 0; // string null termination
// Note: This is too simple and might only show part of the string, if the encoded string contains null bytes.
ApplicationOutput("Encoded Text: @"_s, maxon::String(plainTextEncoded));
// Decryption is in-situ.
cipher.Decrypt(plainText, length);
const maxon::String str((char*)plainText);
ApplicationOutput("Decoded text: @"_s, str);


A GeCipher256 instance can be created by simply defining it (e.g. as a local variable). No special allocation is needed.


Encryption / Decryption

Further Reading