FileIsSignedEx не получает информацию, если поле подписи старое
Я использую следующий API, чтобы проверить, подписан ли файлCoSign Signature Local > Signature Local COM Methods for Signing and Verifying > SAPICryptCOM Functions > FileIsSignedEx
Пример:
SAPI.FileIsSignedEx(
hSession,
SAPI_ENUM_FILE_TYPE.SAPI_ENUM_FILE_OFFICE_XML_PACKAGE,
fileName,
null,
0,
ref isSigned
);
`
Это работает, если файл имеет более новое поле подписи. Имя поля в файле *.docx выглядит примерно так: {388F8850-55AF-4729-BE27-F1E5FCAC5A8F}
Однако если файл.docx содержит более старое поле подписи, функция всегда возвращает 0(false), даже если файл подписан. Имя более старого поля подписи ArGrDigsig2
Связанные функции, такие как SignatureFieldInfoGet
также не возвращайте ничего для более старого поля, даже если оно подписано сегодня.
Есть идеи, что здесь происходит?
1 ответ
Более старые поля подписи с именем "ArGrDigsign" являются полями подписи ARX CoSign Legacy. Эти подписи являются собственностью ARX CoSign для офисных документов. Эти подписи реализованы с помощью макросов MS и могут использоваться только из приложений MS Office. Только новые стандартные подписи строк подписи Office или DocuSign можно использовать также через API-интерфейсы DSA, такие как SAPI Local.