Добрый день, у нас возникает проблема когда мы валидируем сертификат выпущенный для сотрудника компании и дающий ему право подписи. При валидации сертификата первого руководителя проблемы не возникает.
Как воспроизвести:
Тип: Валидация CMS Файла
- Подписываем файл сертификатом “Первый руководитель” - ОК
- Валидируем CMS - ОК
- Подписываем файл сертификатом “Сотрудник с правом подписи” - ОК
- Валидируем CMS - ERROR
Detail="ERROR 0x8f00006: X509 Load certificate from buffer - unable to parse certificate.
ERROR 0x8f00006: X509 Load certificate from buffer - unable to parse certificate.
https://ezsigner.kz/#!/checkCMS - корректно отображает обе подписи.
Наш код прикреплен ниже (*c обычными сертификатами все работает):
public bool Verify(byte[] data, string cms)
{
var inData = Convert.ToBase64String(data);
var flags = KALKANCRYPTCOM_FLAGS.KC_IN_BASE64 | KALKANCRYPTCOM_FLAGS.KC_SIGN_CMS | KALKANCRYPTCOM_FLAGS.KC_OUT_BASE64;
_kalkanCryptCom.VerifyData("", (int)flags, 0, inData, cms,
out string outData, out string verifyInfo, out string outCert);
_checkError();
var normalizedInData = _splitByLines(inData); // потому что калкан
return outData.Trim() == normalizedInData.Trim();
}