vaska Опубликовано 8 декабря, 2008 Жалоба Поделиться Опубликовано 8 декабря, 2008 добрый день. есть такой код: CString b;LPBYTE pbUserCert;HCRYPTKEY hKey = 0;HCRYPTPROV phProv;DWORD size;DWORD fParam = CRYPT_FIRST;PCCERT_CONTEXT pUserCert=0;DWORD dwUserCertLength=0;DWORD name_size;char *SIGNER_NAME;CString CERT_STORE;CryptAcquireContext( &phProv, NULL, "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider",75, CRYPT_VERIFYCONTEXT );while( CryptGetProvParam(phProv, PP_ENUMCONTAINERS, NULL, &size, fParam) ){BYTE * ContNameD=(BYTE*)malloc(sizeof(BYTE*)*size);int len = (int)size;CryptGetProvParam(phProv, PP_ENUMCONTAINERS, ContNameD, &size, fParam);ContNameD[len]=0;CERT_STORE = (CString) ContNameD;printf(CERT_STORE);fParam = 0;}if(!CryptAcquireContext(&phProv,CERT_STORE, "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider",75,CRYPT_MACHINE_KEYSET))MyHandleError("CryptAcquireContext");if(!CryptGetUserKey(phProv,AT_KEYEXCHANGE,&hKey))MyHandleError("CryptGetUserKey");if (!CryptGetKeyParam (hKey, KP_CERTIFICATE, NULL,&dwUserCertLength, 0)) {MyHandleError ("Error during GetKeyParam.\n");}pbUserCert = (BYTE*)malloc (dwUserCertLength);if (pbUserCert == NULL) {MyHandleError ("Error during malloc.\n");}if (!CryptGetKeyParam (hKey, KP_CERTIFICATE, pbUserCert,&dwUserCertLength, 0)) {MyHandleError ("Error during GetKeyParam.\n");}pUserCert = CertCreateCertificateContext (X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, pbUserCert,dwUserCertLength);if (pUserCert == NULL) {MyHandleError ("Error during CertCreateCertificateContext.\n");}name_size = CertNameToStr(MY_ENCODING_TYPE, &(pUserCert->pCertInfo->Subject), CERT_SIMPLE_NAME_STR, NULL, 0);if(!(SIGNER_NAME = (char *)malloc(name_size * sizeof(TCHAR)))) { MyHandleError(TEXT("Memory allocation failed.")); }name_size = CertNameToStr(MY_ENCODING_TYPE, &(pUserCert->pCertInfo->Subject), CERT_SIMPLE_NAME_STR, SIGNER_NAME, name_size);_tprintf(TEXT("Subject -> %s.\n"), SIGNER_NAME);CryptReleaseContext(phProv,0); вобщем, в результате, при выводе SIGNER_NAME получаю что-то типа RU, Васильев Василий Васильевич. Подскажите пожалуйста, кто знает, как избавиться от RU, и пробела? т.е. удалить первые 4 элемента? заранее благодарен. Ссылка на комментарий Поделиться на другие сайты Поделиться
vaska Опубликовано 11 декабря, 2008 Автор Жалоба Поделиться Опубликовано 11 декабря, 2008 С этим вопросом разобрался. делал так: for(int l=0;l<=3;l++) *SIGNER_NAME=*SIGNER_NAME++; остался такой вопрос: когда в программе опряделяю SIGNER_NAME таким образом- #define SIGNER_NAME L"Васильев Василий Васильевич" прога работает нормально, а когда получаю из вышеописанного кода, возникает ошибка. Позскажите плз, если кто знает, в чём может может быть проблема? Заранее благодарен. Ссылка на комментарий Поделиться на другие сайты Поделиться
lala Опубликовано 18 декабря, 2008 Жалоба Поделиться Опубликовано 18 декабря, 2008 Помогите пожалуиста решить задачи 1)Дана строка.Подсчитать самую длинную последовательность подряд идущих букв a. 2)Дана строка,содержащая текст,записанный строчными буквами.Получить в другои строке тот же текст,записанный заглавными буквами. 3)Для каждои буквы слова 2 напечатать, сколько раз оно входит в слово 1. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти