「ストリーム」で動作する XXTEA 暗号化アルゴリズムの実装を書いています。つまり、crypt mykey < myfile > 出力のように使用できます。
必要条件の 1 つは、ファイルにまったくアクセスできないことです (EOF が見つかるまで、固定サイズのブロックのみを読み取ります)。アルゴリズムでは、データ バイトが 4 の倍数である必要があるため、パディングを追加する必要があります。
プレーン テキストの場合、適切な解決策は NULL をパディングし、復号化では NULL を無視することですが、バイナリ ストリーム (埋め込まれた NULL を含む可能性がある) には同じ戦略を使用できません。
欠落している文字の数をパディングする(3文字が欠落している場合は、最後に3、3、3を追加する)などの一般的な解決策を読みましたが、もっとエレガントな解決策はありますか?