GeCipher256 class provides means to encrypt and decrypt data.
// 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); cipher. 关闭 ();
A GeCipher256 instance can be created by simply defining it (e.g. as a local variable). No special allocation is needed.