RePag Cryptography
Das Cryptography-Project ist ein Open-Source-Project. Die Verschlüsselung erfolgt nach dem Advanced Encryption Standard (AES). Die Schlüssellänge beträgt 256 Bit. Es kommt zusätzlich die Betriebsart Cipher Block Chaining (CBC) zur Anwendung.

Es werden immer 128bit-Blöcke verschlüsselt. Sollte der letzte Block weniger Nutzdaten enthalten, wird auch ein voller 128bit-Block verschlüsselt. Zusätzlich wird die ursprüngliche Byteanzahl in einem Header hinterlegt.

Bei Encrypt wird die Originalanzahl über den Parameter ulBytes übergeben und die erweiterte Byteanzahl zurückgegeben. Bei Decrypt wird die erweiterte Anzahl über den Parameter ulBytes übergeben und die ursprüngliche Byteanzahl zurückgegeben.

Bei der Verwendung der Funktionen ist zu beachten dass die AES-Key-Arrays an einer 16-Bit-Speichergrenze ausgerichtet werden müssen. Um Speicher auf dem Stack zu reservieren:

oder um Speicher auf dem Heap anzufordern Wer ganz sicher gehen will, sollte am Ende der Funktion den Speicher mit Nullen überschreiben.

Für den Stack mit

oder für den Heap mit

Der Vector muss nicht an einer Speichergrenze ausgerichtet werden.