Я использую DPAPI для хранения данных XML. Данные после CryptProtectData хранятся в файле. В одном из моих вариантов использования эти данные должны быть дешифрованы до того, как любой пользователь войдет на рабочую станцию. Поскольку я не могу использовать пользовательский ключ в этом, я устанавливаю флаг "CRYPTPROTECT_LOCAL_MACHINE" во время шифрования. Энтропийный ключ - это статический текст.
Unprotect работает во всех сценариях, кроме случаев, когда я вызываю его перед входом в систему (ни один пользователь не вошел в систему). Его возвращающая ошибка 87 (параметр неверен).
Я перечитываю всю документацию DPAPI, чтобы узнать, как генерируются ключи. Но, к сожалению, информации об этом конкретном флаге недостаточно.
Будет ли CryptUnprotectData работать в этом сценарии вообще? Может ли это быть вызвано приложениями, которые выполняются под некоторым сеансом пользователя? Любая помощь приветствуется.
Спасибо, D