C#. Подпись и проверка документа. SignFile(), VerifyFile()

Доброго дня, уважаемые жителя этого форума. Смотрел пример sdk с кодом на C#, проверил работу методов signFile, VerifyFile. При подписи передаю флаги KC_SIGN_CMS + KC_IN_PEM + KC_OUT_PEM + KC_WITH_TIMESTAMP и подписываю файл, этими же флагами делаю проверку другого файла с другим содержимым в надежде получить ошибку, но нет пишет все ок, все хорошо. Кто может объяснить что я не так делаю?
Подпись:
var inData = File.ReadAllBytes(“D:\file.txt”);
KalkanCOMTest.SignDataBytes("", (int)kalkanFlags, ref inData[0], inData.Length, out outSign);

Проверка:
var inData = File.ReadAllBytes(“D:\another.txt”);
KalkanCOMTest.VerifyDataBytes("", (int)kalkanFlags, 0, ref inData[0], inData.Length, inSign, out outData, out outVerifyInfo, out outCert);

Добрый день!

В методе VerifyDataBytes() информация по проверке выводится в параметр outVerifyInfo.
Чтобы вывести ошибку, вызовите метод GetLastErrorString() после метода VerifyDataBytes()

Добрый день! outVerifyInfo вернул пустой ответ. Ошибок нет. GetLastErrorString() err с значением 0 вернул

OutVerifyInfo вернул следующий ответ:
Signature N 1

  • CAdES-BES: verify signer certificate hash - OK.
  • CAdES-T: verify TSA token - OK.
    Signing time 20.06.2022 18:37:46 ALMT
    Verify - OK
    CMS Verify - OK

Значит проверка проходит успешно.
В случае неудачной проверки подписи метод GetLastErrorString() вернет ошибку

попробуйте добавить флаг KC_DETACHED_DATA;
предполагаю, что когда данные внутри CMS содержатся, то при проверке Калкан может не обращать внимание на ref inData[0] , а считывает data из CMS

1 Симпатия

Здраствуйте Юрий! Ваше предположение помогло, спасибо.