16.01.2006 0:45:04Проблема с регистрацией OIDов Ответов: 2
Виталий
Возникла следующая проблема: после регистрации OID пытаюсь найти его... но не получается...

CRYPT_OID_INFO CryptOIDInfo;

CryptOIDInfo.cbSize = 0;
CryptOIDInfo.pszOID = NULL;
CryptOIDInfo.pwszName = NULL;
CryptOIDInfo.dwGroupId = 8;
CryptOIDInfo.dwValue = 8;
CryptOIDInfo.Algid = NULL;
CryptOIDInfo.dwLength = 0;
CryptOIDInfo.ExtraInfo.cbData = 0;
CryptOIDInfo.ExtraInfo.pbData = NULL;

string sOID = "1.2.3.4.5";
CryptOIDInfo.pszOID = (char*)malloc(sOID.length());
strcpy((char*)CryptOIDInfo.pszOID,sOID.c_str());

string OIDName = "Мой OID";
int Len;
Len = MultiByteToWideChar(CP_ACP,0,OIDName.c_str(),OIDName.length()+1,NULL,0);

CryptOIDInfo.pwszName = (wchar_t*)malloc(Len*2);

MultiByteToWideChar(CP_ACP,0,OIDName.c_str(),OIDName.length()+1,
(wchar_t*) CryptOIDInfo.pwszName,Len*2);

CryptOIDInfo.cbSize = sizeof(CryptOIDInfo);

// регистрация нового OID
bool t = CryptRegisterOIDInfo(&CryptOIDInfo,0);

PCCRYPT_OID_INFO CryptFindOIDInfo = NULL;


// ищем зарегистрированный OID, но не находим... CryptDelOIDInfo = CryptFindOIDInfo(CRYPT_OID_INFO_OID_KEY,
(void*)"1.2.3.4.5",
0);

может быть кто-то решил эту проблему...
 
Ответы:
16.01.2006 0:51:10Виталий
sorry... вместо
PCCRYPT_OID_INFO CryptFindOIDInfo = NULL;

надо написать
PCCRYPT_OID_INFO CryptDelOIDInfo = NULL;
16.01.2006 11:49:39maxdm
Crypt32 регистрирует оиды только при загрузке библиотеки (считывает из реестра).