Я хочу открыть зашифрованные файлы OOXML, которые хранятся как потоки внутри составного файла OLE. У Microsoft есть API для OOXML, (OOXML Format SDK 2.0, но, похоже, у него нет возможности манипулировать зашифрованными документами OOXML. на два вопроса.
Как открыть составные документы OLE на С#? Я нашел этот очень похожий вопрос (чтение составных документов на С#), но я надеялся, что может быть более чистый и более общий способ сделать это, что я пропустил.
Существует ли способ высокого уровня расшифровки потока EncryptedPackage
в документе OLE? Две лучшие ссылки, которые я нашел, Расшифровка документов Office и MS Примеры -OFFCRYPTO. "Дешифрование документов Office", похоже, успешно расшифровывается, но он использует внешнюю DLL (Lyquidity.OleStorage.dll), чтобы открыть документ OLE и не работал у меня. "Примеры MS-OFFCRYPTO" имеют пример в С# для дешифрования потока, но использует пример С++ для получения потока. Обе эти ссылки выглядят так, как будто они работают, но есть ли более высокий уровень API, который делает то же самое?
Короткий ответ: нет API более высокого уровня. Длинный ответ: Примеры MS-OFFCRYPTO - лучший пример того, как его расшифровать, но вам придется использовать библиотеку (или сделать свой собственный ) для взаимодействия с документом OLE. Существует много библиотек для OLE Structured Storage, например OpenMCDF и библиотеки из GemBox Software