Увы, похоже я рано обрадовался.
Итак, я попробовал разобраться в тех настройках, что понаворотил, когда пытался избавиться от ошибки "Объект или свойство не найдено".
Для этого, я решил сконфигурировать всё с нуля. Удалил TSP и OCSP сервера (остался КриптоПро CSP, КриптоПро ЭЦП и КриптоАрм). Удалил все сертификаты, групповую политику КриптоПро изменил на ту, что была при установке (все опции - в не задано).
Далее, начал конфигурировать.
1. Зашёл на
http://www.cryptopro.ru/certsrv/, установил сертификат тестового УЦ в доверенные корневые сертификаты.
2. Там же сделал себе сертификат "CN = GOST client, C = RU", ГОСТ Р 34.11/34.10-2001, ГОСТ Р 34.10-2001 (512 bits), типа "Проверка подлинности клиента (1.3.6.1.5.5.7.3.2)", алгоритм отпечатка - sha1. Установил в личные сертификаты.
3. Установил сертификат (http://www.cryptopro.ru/cryptopro/products/tsp/tsa.cer) тестового TSP сервера (https://www.cryptopro.ru:9443/tsp/tsp.srf) в Промежуточные центры сертификации.
4. В Групповых политиках КриптоПро OCSP клиент указал "Службы OCSP: адрес службы OCSP по-умолчанию" равным "https://www.cryptopro.ru:9443/ocsp/ocsp.srf" (без кавычек).
5. В Групповых политиках КриптоПро TSP клиент указал "Службы штампов: адрес службы штампов по-умолчанию" равным "https://www.cryptopro.ru:9443/tsp/tsp.srf" (без кавычек).
6. Проверил командой "tsputil ms c:\test.txt C:\timestamp", что штамп успешно создаётся.
7. Запустил "ocsputil mp "C:\GOST client.cer", на экран он мне показал нечто большое "MIID...8=". Видимо, тоже успешно прошёл запрос.
Дальше пытаюсь создать усовершенствованную ЭЦП. Предварительно добавил в реестр настройки трейсинга, что вы дали.
Пытаюсь подписать из своей программы (код - что и ранее), под отладчиком получаю ошибку №C2110100.
Лог событий под отладчиком:
Цитата:ODS: cades.dll: {3668} /CadesSignMessage/ cades.cpp(3582) : (pSignPara=0x0012F494, fDetachedSignature=-1, cToBeSigned=1, rgpbToBeSigned=0x0012F4E8, rgcbToBeSigned=0x0012F4E4, ppSignedBlob=0x0012F4EC) Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesSignMessageImpl/ cades.cpp(3401) : Certificate choosed from list Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesSignMessageImpl/ cades.cpp(3430) : Signer updating start Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesSignMessageImpl/ cades.cpp(3433) : Hash algorithm deduced Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImplNamespace::AttributeExists/ cades.cpp(167) : (pAttr=0) Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(338) : Signer does not have signinCert or otherSigningCert attribute Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(341) : Attributes copied Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(344) : otherSigningCert attribute assembled Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(347) : Signer is updated successfully Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncode/ cades.cpp(448) : (dwMsgEncodingType=0x00010001, dwFlags=0x00000004, pvMsgEncodeInfo=0x0012EED8, pszInnerContentObjID=0, pStreamInfo=0x00000000) Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImpl/ cades.cpp(399) : Start Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImpl/ cades.cpp(404) : Input parameters checked Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImpl/ cades.cpp(412) : Copy of input structures is ready Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImpl/ cades.cpp(418) : Signers updating start Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImpl/ cades.cpp(422) : Signer #0 Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImplNamespace::CheckAlgorithms/ cades.cpp(366) : Public key info is exported successfully Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImplNamespace::CheckAlgorithms/ cades.cpp(374) : Signature algoritm OID info is found: 1.2.643.2.2.3 Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImpl/ cades.cpp(429) : Certificates equality checked Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImplNamespace::DeduceHashAlgorithm/ cades.cpp(147) : (szHashAlgorithm=1.2.643.2.2.9) Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImpl/ cades.cpp(431) : Hash algorithm deduced Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImplNamespace::AttributeExists/ cades.cpp(162) : (pAttr->pszObjId=1.2.840.113549.1.9.16.2.19) Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncodeImpl/ cades.cpp(436) : Calling CryptMsgOpenToEncode() Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgOpenToEncode/ cades.cpp(470) : (hMsg=0x001F2218, GetLastError=0x00000000 Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignature/ cades.cpp(1693) : (hCryptMsg=0x001F2218, dwSignatureIndex=0, pCadesSignPara=0x00000000) Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1592) : Input parameters checked Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignatureImplNamespace::ExtractSignedAttributes/ cades.cpp(491) : Signed attributes extracted via CMSG_SIGNER_AUTH_ATTR_PARAM Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1596) : Signer certificate ID found Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1605) : pSignerCert=0x001F7D20 Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1626) : Signature verified Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1630) : Hash algorithm deduced Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignatureImplNamespace::ExtractSignature/ cades.cpp(675) : Signature extracted via CMSG_ENCRYPTED_DIGEST Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1671) : signatureTimeStampToken recieved and added to signature Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignature/ cades.cpp(1703) : CAtlException, m_hr=0xc2110100 Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesMsgEnhanceSignature/ cades.cpp(1713) : (res=0, GetLastError=0xc2110100 Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesSignMessageImpl/ cades.cpp(3546) : Last win32 error thrown as exception Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesSignMessage/ cades.cpp(3595) : CAtlException, m_hr=0xc2110100 Process Project1.exe ($E20)
ODS: cades.dll: {3668} /CadesSignMessage/ cades.cpp(3605) : (res=0, GetLastError=0xc2110100 Process Project1.exe ($E20)
First chance exception at $7C812A5B. Exception class EOSError with message 'System Error. Code: -1039073024.
'. Process Project1.exe ($E20)
При этом, под отладчиком при выходе из программы возникает исключение Access Violation. В событиях при этом:
Цитата:ODS: cades.dll: {3784} /DllMain/ cades.cpp(5386) : hInstance=6E000000, dwReason=3 lpReserved=0 Process Project1.exe ($E20)
Thread Exit: Thread ID: $00000EC8. Process Project1.exe ($E20)
Thread Exit: Thread ID: $00000DA4. Process Project1.exe ($E20)
Thread Exit: Thread ID: $00000E6C. Process Project1.exe ($E20)
Thread Exit: Thread ID: $00000E68. Process Project1.exe ($E20)
Thread Exit: Thread ID: $00000EB8. Process Project1.exe ($E20)
Thread Exit: Thread ID: $00000ECC. Process Project1.exe ($E20)
Thread Exit: Thread ID: $00000894. Process Project1.exe ($E20)
Thread Exit: Thread ID: $00000EFC. Process Project1.exe ($E20)
ODS: StopTesterThread start Process Project1.exe ($E20)
Далее, если запускать программу не из под отладчика, то получаю ошибку ERROR_FILE_NOT_FOUND.