08.05.2007 15:09:35CertGetCertificateContextProperty - непонятное значение параметра Ответов: 3
Yuri
if ( !(CertSetCertificateContextProperty(pCertContext, CERT_KEY_PROV_INFO_PROP_ID, m_hProv, &provInfoSig)))
MyError("CertSetCertificateContextProperty");
PCERT_KEY_CONTEXT apData = 0;
DWORD acbData = 0;
if ( !(CertGetCertificateContextProperty(pCertContext, CERT_KEY_PROV_INFO_PROP_ID, 0, &acbData)))
MyError("CertGetCertificateContextProperty");

apData = (PCERT_KEY_CONTEXT) new BYTE[acbData];
ZeroMemory(apData,acbData);
if ( !(CertGetCertificateContextProperty(pCertContext, CERT_KEY_PROV_INFO_PROP_ID, apData, &acbData)))
MyError("CertGetCertificateContextProperty");

все проходит без ошибки, и длину property выдает правильно ( 158 ), однако после последнего вызова
apData->cbsize = 9449084;
apData->hCryptProv=94491210;
Разве так должно быть ?
 
Ответы:
08.05.2007 15:24:58maxdm
CERT_KEY_PROV_INFO_PROP_ID возвращает структуру CRYPT_KEY_PROV_INFO, а CERT_KEY_CONTEXT возврает CERT_KEY_CONTEXT_PROP_ID
08.05.2007 15:43:18Yuri
понятно, но при этом меняет и значение cbsize на непонятное значение ?
08.05.2007 16:24:04maxdm
Что ж в нем непонятного, если это поле другой структуры: LPWSTR pwszContainerName;