ваш scoped_key
может быть просто KeyHolder
объектом в стеке. Его конструктор берет запутанный буфер и делает из него реальный ключ, а его деструктор обнуляет память и освобождает память.
Что касается того, как на самом деле запутать ключ в двоичном файле, один глупый выбор, который вы можете попробовать сделать, - поместить его в гораздо больший случайный двоичный блок и запомнить его смещение и размер и, возможно, XOR с какой-нибудь короткой случайной последовательностью.
Если вы делаете XORing, вы действительно можете избежать реального ключа в памяти. просто измените расшифровку, чтобы прочитать байт из ключа и, прежде чем использовать его, XOR с соответствующим значением.
*
Добавьте сюда заявление об отказе от того, насколько глупа безопасность через мрак *