Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline Новожилова Елена  
#21 Оставлено : 27 мая 2009 г. 22:37:55(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Можете уже не пробовать, мы нашли ошибку и поправили. Действительно, забивался тип аутентификации на прокси, заданный в политиках.
Если зададите параметры явно, то всё должно работать. Исправленный билд будет наверно завтра.
Offline Jesterson  
#22 Оставлено : 27 мая 2009 г. 23:22:00(UTC)
Jesterson

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.05.2009(UTC)
Сообщений: 30
Откуда: Moscow

Не сложилось у меня с явным заданием параметров. Возможно криво написан код:

Код:


var
  authPara: CADES_AUTH_PARA;
  proxyPara: CADES_PROXY_PARA;
  cadesSignPara: CADES_SIGN_PARA;

...

    FillMemory(@authPara, SizeOf(CADES_AUTH_PARA), 0);
    authPara.dwSize := SizeOf(CADES_AUTH_PARA);
    authPara.dwAuthType := CADES_AUTH_BASIC;
    authPara.wszUsername := PWideChar(WideString('user'));
    authPara.wszPassword := PWideChar(WideString('pass'));

    FillMemory(@proxyPara, SizeOf(CADES_PROXY_PARA), 0);
    proxyPara.dwSize := SizeOf(CADES_PROXY_PARA);
    proxyPara.wszProxyUri := PWideChar(WideString('http://proxy:8080'));
    proxyPara.pProxyAuthPara := @authPara;

...


    cadesSignPara.pProxyPara := @proxyPara;



Всё равно берёт настройки из групповых политик.
Offline Павел Смирнов  
#23 Оставлено : 28 мая 2009 г. 11:15:27(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Пришлите лог для этого случая тоже и скажите в чём проявляется беда - что задано явно и что настроено в политике.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Jesterson  
#24 Оставлено : 28 мая 2009 г. 15:36:19(UTC)
Jesterson

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.05.2009(UTC)
Сообщений: 30
Откуда: Moscow

Лог такой же, как и в случае нуллового pProxyPara:

Код:
[2064] .\Externs.cpp(33) : /Init/
[2064] .\CPSettings.cpp(156) : /Init/
[2064] cades.dll: {1160} /DllMain/ cades.cpp(3792) : hInstance=6E000000, dwReason=1 lpReserved=0
[2064] cades.dll: {1160} /CadesSignMessage/ cades.cpp(2073) : (pSignPara=0x0012F7F8, fDetachedSignature=-1, cToBeSigned=1, rgpbToBeSigned=0x0012F89C, rgcbToBeSigned=0x0012F890, ppSignedBlob=0x0012F884)
[2064] cades.dll: {1160} /CadesSignMessageImpl/ cades.cpp(1936) : Signer updating start
[2064] cades.dll: {1160} /CadesSignMessageImpl/ cades.cpp(1939) :  Hash algorithm deduced
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImplNamespace::AttributeExists/ cades.cpp(164) : (pAttr=0)
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(356) :  Signer does not have any of signing-certificate attributes
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(369) :  Attributes copied
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(372) :  signing-certificate(-v2) attribute assembled
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(384) :  Signer is updated successfully
[2064] cades.dll: {1160} /CadesMsgOpenToEncode/ cades.cpp(493) : (dwMsgEncodingType=0x00010001, dwFlags=0x00000004, pvMsgEncodeInfo=0x0012F2B0, pszInnerContentObjID=0, pStreamInfo=0x00000000)
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImpl/ cades.cpp(437) : Start
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImpl/ cades.cpp(441) : Input parameters checked
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImpl/ cades.cpp(450) : Copy of input structures is ready
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImpl/ cades.cpp(456) : Signers updating start
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImpl/ cades.cpp(461) : Signer #0
[2064] cades.dll: {1072} /DllMain/ cades.cpp(3792) : hInstance=6E000000, dwReason=2 lpReserved=0
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImplNamespace::CheckAlgorithms/ cades.cpp(402) :  Public key info is exported successfully
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImplNamespace::CheckAlgorithms/ cades.cpp(409) :  Signature algoritm OID info is found: 1.2.643.2.2.3
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImpl/ cades.cpp(468) :  Certificates equality checked
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImplNamespace::DeduceHashAlgorithm/ cades.cpp(140) : (szHashAlgorithm=1.2.643.2.2.9)
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImpl/ cades.cpp(470) :  Hash algorithm deduced
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImplNamespace::AttributeExists/ cades.cpp(159) : (pAttr->pszObjId=1.2.840.113549.1.9.16.2.47)
[2064] cades.dll: {1160} /CadesMsgOpenToEncodeImpl/ cades.cpp(481) : Calling CryptMsgOpenToEncode()
[2064] cades.dll: {1160} /CadesMsgOpenToEncode/ cades.cpp(515) : (hMsg=0x0268B7F8, GetLastError=0x00000000)
[2064] cades.dll: {1160} /CadesMsgEnhanceSignature/ cades.cpp(1228) : (hCryptMsg=0x0268B7F8, dwSignatureIndex=0, pCadesSignPara=0x0012F31C)
[2064] cades.dll: {1160} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1048) : Input parameters checked
[2064] cades.dll: {1160} /CryptoPro::ExtractSignedAttributes/ cryptutil.inl(416) : Signed attributes extracted via CMSG_SIGNER_AUTH_ATTR_PARAM
[2064] cades.dll: {1160} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1052) : Signer certificate ID found
[2064] cades.dll: {1160} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1067) : pSignerCert=0x0267EBD8
[2064] cades.dll: {1160} /CadesMsgGetType/ CadesMsgGetType.cpp(134) : (hCryptMsg=0x0268B7F8, dwSignatureIndex=0, pdwCadesType=0x0012EC78)
[2064] cades.dll: {1160} /CadesMsgGetType/ CadesMsgGetType.cpp(151) : (res=1, GetLastError=0x00000000
[2064] cades.dll: {1160} /CadesMsgEnhanceSignatureImpl/ cades.cpp(1109) : Hash algorithm deduced
[2064] cades.dll: {1160} /CadesMsgEnhanceSignatureImplNamespace::ExtractSignature/ cades.cpp(545) : Signature extracted via CMSG_ENCRYPTED_DIGEST
[2064] .\Externs.cpp(33) : /Init/
[2064] .\CPSettings.cpp(156) : /Init/
[2064] tspcli.dll: {1160} /CryptoPro::PKI::TSP::Client::CRequest::Impl::CheckPolicies/ TSPRequest_Impl.cpp(201) : Checking policies...
[2064] tspcli.dll: {1160} /CryptoPro::PKI::TSP::Client::CRequest::Impl::CheckPolicies/ TSPRequest_Impl.cpp(287) : Checking policies... OK.
[2064] tspcli.dll: {1160} /CryptoPro::PKI::TSP::Client::CRequest::Impl::MakeRequest/ TSPRequest_Impl.cpp(157) : Making request...
[2064] tspcli.dll: {1160} /CryptoPro::PKI::TSP::Client::CRequest::Impl::MakeRequest/ TSPRequest_Impl.cpp(177) : Initializing request...
[2064] .\Externs.cpp(33) : /Init/
[2064] .\CPSettings.cpp(156) : /Init/
[2064] tspcli.dll: {1160} /CryptoPro::PKI::TSP::Client::CRequest::Impl::MakeRequest/ TSPRequest_Impl.cpp(191) : Encoding request...
[2064] tspcli.dll: {1160} /CryptoPro::PKI::TSP::Client::CRequest::Impl::MakeRequest/ TSPRequest_Impl.cpp(195) : Making request... OK.
[2064] 11:23:00.882 ::*Session* :: WinHttpCrackUrl("http://www.cryptopro.ru/tsp/tsp.srf", 0x0, 0x0, 0x12e634) 
[2064] 11:23:00.882 ::*Session* :: WinHttpCrackUrlA("http://www.cryptopro.ru/tsp/tsp.srf", 0x23, 0x0, 0x12e4e0) 
[2064] 11:23:00.882 ::*Session* :: WinHttpCrackUrlA() returning TRUE 
[2064] 11:23:00.882 ::*Session* :: WinHttpCrackUrl() returning TRUE 
[2064] 11:23:00.882 ::*Session* :: WinHttpOpen("Crypto-Pro tspcli.dll",  (1), "", "", 0x0) 
[2064] 11:23:00.882 ::*Session* :: WinHttpOpen() returning handle 0x1c95000 
[2064] 11:23:00.882 ::*Session* :: WinHttpCrackUrl("http://user:pass@proxy.bftcom.com:8080", 0x0, 0x0, 0x12e670) 
[2064] 11:23:00.882 ::*Session* :: WinHttpCrackUrlA("http://user:passr@proxy.bftcom.com:8080", 0x2d, 0x0, 0x12e4e0) 
[2064] 11:23:00.882 ::*Session* :: WinHttpCrackUrlA() returning TRUE 
[2064] 11:23:00.882 ::*Session* :: WinHttpCrackUrl() returning TRUE 
[2064] 11:23:00.882 ::*Session* :: WinHttpSetOption(0x1c95000,  (38), 0x12e618 [0x3], 12) 
[2064] 11:23:00.882 ::*Session* :: WinHttpSetOption() returning TRUE 
[2064] 11:23:00.882 ::*Session* :: WinHttpConnect(0x1c95000, "www.cryptopro.ru", 80, 0x0) 
[2064] 11:23:00.882 ::*Session* :: WinHttpConnect() returning handle 0x1c95100 
[2064] 11:23:00.882 ::*Session* :: WinHttpOpenRequest(0x1c95100, "POST", "tsp/tsp.srf", "", "", 0x0, 0x00000000) 
[2064] 11:23:00.882 ::*Session* :: WinHttpCreateUrlA(0x12e3c0, 0x0, 0xab30000, 0x12e3fc) 
[2064] 11:23:00.882 ::*Session* :: WinHttpCreateUrlA() returning TRUE 
[2064] 11:23:00.882 ::*0000001* :: WinHttpOpenRequest() returning handle 0xab20000 
[2064] 11:23:00.882 ::*0000001* :: WinHttpSetOption(0xab20000,  (77), 0x12e5e4 [0x2], 4) 
[2064] 11:23:00.882 ::*0000001* :: WinHttpSetOption() returning TRUE 
[2064] 11:23:00.882 ::*0000001* :: WinHttpSendRequest(0xab20000, "Content-type: application/timestamp-query", -1, 0xa5a49b0, 64, 64, 0) 
[2064] 11:23:00.882 ::*0000001* :: WinHttpCreateUrlA(0x12e358, 0x0, 0xab30000, 0x12e33c) 
[2064] 11:23:00.882 ::*0000001* :: WinHttpCreateUrlA() returning TRUE 
[2064] 11:23:00.882 ::*0000001* :: Using proxy server: proxy.bftcom.com:8080 
[2064] 11:23:00.882 ::*0000001* :: "proxy.bftcom.com" resolved 
[2064] 11:23:00.882 ::*0000001* :: sending data: 
[2064] 11:23:00.882 ::*0000001* :: 269 (0x10d) bytes 
[2064] 11:23:00.882 ::*0000001* :: <<<<-------- HTTP headers follow below ----------------------------------------------->>>> 
[2064] 11:23:00.882 ::*0000001* :: 
[2064] POST http://www.cryptopro.ru/tsp/tsp.srf HTTP/1.1 
[2064] 11:23:00.882 ::*0000001* :: Content-type: application/timestamp-query 
[2064] 11:23:00.882 ::*0000001* :: User-Agent: Crypto-Pro tspcli.dll 
[2064] 11:23:00.882 ::*0000001* :: 
[2064] Host: www.cryptopro.ru 
[2064] 11:23:00.882 ::*0000001* :: Content-Length: 64 
[2064] 11:23:00.882 ::*0000001* :: 
[2064] Proxy-Connection: Keep-Alive
[2064]  
[2064] 11:23:00.882 ::*0000001* :: <<<<-------- End ----------------------------------------------->>>> 
[2064] 11:23:00.882 ::*0000001* :: WinHttpSendRequest() returning TRUE 
[2064] 11:23:00.882 ::*0000001* :: WinHttpReceiveResponse(0xab20000, 0x0) 
[2064] 11:23:00.882 ::*0000001* :: received data: 
[2064] 11:23:00.882 ::*0000001* :: 1024 (0x400) bytes 
[2064] 11:23:00.882 ::*0000001* :: <<<<-------- HTTP headers follow below ----------------------------------------------->>>> 
[2064] 11:23:00.882 ::*0000001* :: 
[2064] HTTP/1.0 407 Proxy Authentication Required 
[2064] 11:23:00.882 ::*0000001* :: Server: squid/2.6.STABLE19 
[2064] 11:23:00.882 ::*0000001* :: Date: Thu, 28 May 2009 07:23:01 GMT 
[2064] 11:23:00.882 ::*0000001* :: Content-Type: text/html 
[2064] 11:23:00.882 ::*0000001* :: 
[2064] Content-Length: 1342 
[2064] 11:23:00.882 ::*0000001* :: Expires: Thu, 28 May 2009 07:23:01 GMT 
[2064] 11:23:00.882 ::*0000001* :: X-Squid-Error: ERR_CACHE_ACCESS_DENIED 0 
[2064] 11:23:00.882 ::*0000001* :: Proxy-Authenticate: Basic realm
[2064] ="Squid proxy-caching web server" 
[2064] 11:23:00.882 ::*0000001* :: X-Cache: MISS from igwbft2.bftcom.com 
[2064] 11:23:00.882 ::*0000001* :: X-Cache-Lookup: NONE from igwbft2.bftcom.com:8080 
[2064] 11:23:00.882 ::*0000001* :: 
[2064] Via: 1.0 igwbft2.bftcom.com:8080 (squid/2.6.STABLE19) 
[2064] 11:23:00.882 ::*0000001* :: 
[2064] Proxy-Connection: close
[2064]  
[2064] 11:23:00.882 ::*0000001* :: <<<<-------- End ----------------------------------------------->>>> 
[2064] 11:23:00.882 ::*0000001* :: WinHttpReceiveResponse() returning TRUE 
[2064] 11:23:00.882 ::*0000001* :: WinHttpQueryHeaders(0xab20000,  (0x20000013), "null", 0xa81229c, 0x12e5e8 [4], 0x0 [0]) 
[2064] 11:23:00.882 ::*0000001* :: WinHttpQueryHeaders() returning TRUE 
[2064] 11:23:00.882 ::*0000001* :: WinHttpQueryAuthSchemes(0xab20000, 0x12e5e0, 0x12e604) 
[2064] 11:23:00.882 ::*0000001* :: WinHttpQueryAuthSchemes() returning TRUE 
[2064] 11:23:00.882 ::*0000001* :: WinHttpQueryAuthSchemes(0xab20000, 0x12e5e0, 0x12e604) 
[2064] 11:23:00.882 ::*0000001* :: WinHttpQueryAuthSchemes() returning TRUE 
[2064] 11:23:00.882 ::*0000001* :: WinHttpCloseHandle(0xab20000) 
[2064] 11:23:00.882 ::*0000001* :: WinHttpCloseHandle() returning TRUE 
[2064] 11:23:00.882 ::*Session* :: WinHttpCloseHandle(0x1c95100) 
[2064] 11:23:00.882 ::*Session* :: WinHttpCloseHandle() returning TRUE 
[2064] tspcli.dll: {1160} /CryptoPro::PKI::TSP::Client::CRequest::Send/ TSPRequest.cpp(159) : HTTP STATUS: 407
[2064] 11:23:00.882 ::*Session* :: WinHttpCloseHandle(0x1c95000) 
[2064] 11:23:00.882 ::*Session* :: WinHttpCloseHandle() returning TRUE 
[2064] cades.dll: {1160} /CadesMsgEnhanceSignature/ cades.cpp(1238) : CAtlException, m_hr=0xc2100100
[2064] cades.dll: {1160} /CadesMsgEnhanceSignature/ cades.cpp(1248) : (res=0, GetLastError=0xc2100100
[2064] cades.dll: {1160} /CadesSignMessageImpl/ cades.cpp(2046) : Expression FAILED: ::CadesMsgEnhanceSignature(msgDecode.GetHandle(), 0, &cadesSignPara)
[2064] cades.dll: {1160} /CadesSignMessageImpl/ cades.cpp(2046) : Last win32 error thrown as exception
[2064] cades.dll: {1160} /CadesSignMessage/ cades.cpp(2086) : CAtlException, m_hr=0xc2100100
[2064] cades.dll: {1160} /CadesSignMessage/ cades.cpp(2096) : (res=0, GetLastError=0xc2100100


Не подхватываются явно заданные в коде параметры аутентификации, всё берется из политик.

До кучи ещё одна проблема. Меняю тип создаваемой подписи с Cades-X-Long Type 1 ($5D) на CaDES BeS ($01), лог остается точно таким же и вылетает та же ошибка. Но ведь, насколько я понимаю, при создании этого типа подписи обращений к tsp/ocsp быть вообще не должно.
Offline Новожилова Елена  
#25 Оставлено : 28 мая 2009 г. 16:21:14(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Пришлите пожалуйста кусок кода с вызовом функции создания подписи. Интересует заполнение структуры CADES_SIGN_PARA и ее передача на вход функции. Также попробуйте пройти это место в отладчике и убедиться, что на вход функции передаются правильные значения параметров.
Offline Jesterson  
#26 Оставлено : 28 мая 2009 г. 16:35:42(UTC)
Jesterson

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.05.2009(UTC)
Сообщений: 30
Откуда: Moscow

Код:
    
  CADES_X_LONG_TYPE_1 = $5D;
  CADES_BES = $01;

...

var
  authPara: CADES_AUTH_PARA;
  proxyPara: CADES_PROXY_PARA;
  signPara: CRYPT_SIGN_MESSAGE_PARA;
  para: CADES_SIGN_MESSAGE_PARA;
  cnt: DWORD;
  cbToBeSigned: TARR_DWORD;
  pbToBeSigned: TARR_PBYTE;
  cadesSignPara: CADES_SIGN_PARA;
  pSignedMessage: PCRYPT_DATA_BLOB;

  i: integer;
  
  authattr : array of CRYPT_ATTRIBUTE;
  attrValue: WideString;
  cn: CERT_NAME_VALUE;
  attrNames: TStringList;

begin

  SetLength(authattr, atthrList.Count);

  FillMemory(@signPara, sizeof(CRYPT_SIGN_MESSAGE_PARA), 0);
  signPara.cbSize := sizeof(CRYPT_SIGN_MESSAGE_PARA);
  signPara.dwMsgEncodingType := X509_ASN_ENCODING or PKCS_7_ASN_ENCODING;
  signPara.pSigningCert := pSignerCert;
  signPara.HashAlgorithm.pszObjId := szOID_CP_GOST_R3411;

  signPara.HashAlgorithm.Parameters.cbData := 0;
  signPara.HashAlgorithm.Parameters.pbData := nil;
  signPara.pvHashAuxInfo := nil;
  signPara.cMsgCert := 1;
  signPara.rgpMsgCert := @pSignerCert;
  signPara.cMsgCrl := 0;
  signPara.rgpMsgCrl := nil;

  signPara.cAuthAttr := atthrList.Count;

  attrNames := TStringList.Create;
  try
    attrNames.CommaText := atthrList.GetNamesCommaText;
    for i := 0 to attrNames.Count - 1 do
    begin
      FillMemory(@authattr[i], sizeof(CRYPT_ATTRIBUTE), 0);

      authattr[i].pszObjId := PAnsiChar(attrNames[i]);
      authattr[i].cValue := 1;
      attrValue := atthrList.Values[attrNames[i]];

      cn.dwValueType := CERT_RDN_UTF8_STRING;
      cn.Value.cbData := Length(attrValue) shl 1;
      cn.Value.pbData := PByte(PWideChar(attrValue));

      GetMem(authattr[i].rgValue, SizeOf(CRYPT_ATTR_BLOB));
      CryptEncodeObject(CryptConvUtils.CERT_ENCODING_TYPE, X509_ANY_STRING,
                              @cn, nil, authattr[i].rgValue.cbData);

      GetMem(authattr[i].rgValue.pbData, authattr[i].rgValue.cbData);

      CryptEncodeObject(CERT_ENCODING_TYPE, X509_ANY_STRING,
                              @cn, authattr[i].rgValue.pbData, authattr[i].rgValue.cbData);
    end;


    signPara.rgAuthAttr := @authattr[0];
    signPara.cUnauthAttr := 0;
    signPara.rgUnauthAttr := nil;
    signPara.dwFlags := 0;
    signPara.dwInnerContentType := 0;
    signPara.HashEncryptionAlgorithm.pszObjId := nil;
    signPara.HashEncryptionAlgorithm.Parameters.cbData := 0;
    signPara.HashEncryptionAlgorithm.Parameters.pbData := nil;
    signPara.pvHashEncryptionAuxInfo := nil;

    FillMemory(@authPara, SizeOf(CADES_AUTH_PARA), 0);
    authPara.dwSize := SizeOf(CADES_AUTH_PARA);
    authPara.dwAuthType := CADES_AUTH_BASIC;
    authPara.wszUsername := PWideChar(WideString('user1'));
    authPara.wszPassword := PWideChar(WideString('pass1'));

    FillMemory(@proxyPara, SizeOf(CADES_PROXY_PARA), 0);
    proxyPara.dwSize := SizeOf(CADES_PROXY_PARA);
    proxyPara.wszProxyUri := PWideChar(WideString('http://proxy.bftcom.com:8080'));
    proxyPara.pProxyAuthPara := @authPara;


    FillMemory(@cadesSignPara, SizeOf(CADES_SIGN_PARA), 0);
    cadesSignPara.dwSize := SizeOf(CADES_SIGN_PARA);
    cadesSignPara.dwCadesType := CADES_X_LONG_TYPE_1;
//    cadesSignPara.dwCadesType := CADES_BES;
    cadesSignPara.pSignerCert := pSignerCert;
    cadesSignPara.szHashAlgorithm := szOID_CP_GOST_R3411;
    cadesSignPara.hAdditionalStore := nil;
    cadesSignPara.pProxyPara := @proxyPara;    

    FillMemory(@para, sizeof(CADES_SIGN_MESSAGE_PARA), 0);
    para.dwSize := sizeof(CADES_SIGN_MESSAGE_PARA);
    para.pSignMessagePara := @signPara;

    cnt := Length(wsHash) shl 1;

    pbToBeSigned := @wsHash;
    cbToBeSigned := @cnt;

    if(not CadesSignMessage(@para, True, 1, pbToBeSigned, cbToBeSigned,
        pSignedMessage)) then
      RaiseLastOSErrorEx;

  finally
    attrNames.Free;
  end;



Приведенный код без заполнения CADES_PROXY_PARA формировал на старой СДК подпись. CADES_PROXY_PARA заполняется нормально, ссылка передается в CADES_SIGN_PARA.
Offline Новожилова Елена  
#27 Оставлено : 28 мая 2009 г. 16:42:21(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Попробуйте заполнить параметр pCadesSignPara структуры CADES_SIGN_MESSAGE_PARA.

para.pCadesSignPara := @cadesSignPara;
Offline Jesterson  
#28 Оставлено : 28 мая 2009 г. 19:27:00(UTC)
Jesterson

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.05.2009(UTC)
Сообщений: 30
Откуда: Moscow

Новожилова Елена написал:
Попробуйте заполнить параметр pCadesSignPara структуры CADES_SIGN_MESSAGE_PARA.

para.pCadesSignPara := @cadesSignPara;


Спасибо большое, конечно же, наша ошибка.

Теперь падает проверка. Сразу после подписи вставляем такой код:

Код:

  FillMemory(@cryptVerifyPara, SizeOf(CRYPT_VERIFY_MESSAGE_PARA), 0);
  cryptVerifyPara.cbSize := SizeOf(CRYPT_VERIFY_MESSAGE_PARA);
  cryptVerifyPara.dwMsgAndCertEncodingType :=
        X509_ASN_ENCODING or PKCS_7_ASN_ENCODING;

  FillMemory(@verifyPara, SizeOf(CADES_VERIFY_MESSAGE_PARA), 0);
  verifyPara.dwSize := SizeOf(CADES_VERIFY_MESSAGE_PARA);
  verifyPara.pVerifyMessagePara := @cryptVerifyPara;

  pVerifyInfo := nil;

  CadesVerifyDetachedMessage(@verifyPara, 0, pSignedMessage.pbData, pSignedMessage.cbData,
     1, pbToBeSigned, cbToBeSigned, pVerifyInfo);



Вызов verifydetached вызывает AV в дллке, в логе дебагвью только

Код:
[2268] cades.dll: {2724} /CadesVerifyDetachedMessage/ cades.cpp(2298) : (pVerifyPara=0x0012F758, dwSignerIndex=0, pbDetachedSignBlob=0x03632A84, cbDetachedSignBlob=12899, cToBeSigned=1, rgpbToBeSigned=0x0012F794, rgcbToBeSigned=0x0012F784, ppVerificationInfo=0x0012F790)


Можно как-то узнать в чем проблема?
Offline Новожилова Елена  
#29 Оставлено : 28 мая 2009 г. 21:12:35(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
А параметры прокси при проверке подписи Вы передаете?

Интересует параметр pProxyPara структуры CADES_VERIFICATION_PARA

Отредактировано пользователем 28 мая 2009 г. 21:15:14(UTC)  | Причина: Не указана

Offline Jesterson  
#30 Оставлено : 28 мая 2009 г. 22:02:04(UTC)
Jesterson

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.05.2009(UTC)
Сообщений: 30
Откуда: Moscow

Новожилова Елена написал:
А параметры прокси при проверке подписи Вы передаете?

Интересует параметр pProxyPara структуры CADES_VERIFICATION_PARA


Да, проблема была в этом, спасибо большое.

С новым билдом СДК можно будет отказаться от явного задания параметров прокси?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (6)
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.