Статус: Активный участник
Группы: Участники
Зарегистрирован: 12.07.2021(UTC) Сообщений: 39 Сказал(а) «Спасибо»: 10 раз
|
Использую встроеную функцию для чтения строки из бинарных данных CryptBinaryToString(W) Код:
void WideToAnsi( const std::wstring & ws, std::string & s ) {
char str[500];
WideCharToMultiByte( CP_UTF8, 0, ws.c_str(), -1, str, 500, 0, 0);
s = str;
}
//.....
DWORD outSize = 0;
if (CryptBinaryToString(certCtx->pCertInfo->SerialNumber.pbData, certCtx->pCertInfo->SerialNumber.cbData, CRYPT_STRING_HEX | CRYPT_STRING_NOCRLF, NULL, &outSize)) {
std::wstring serial;
serial.resize(outSize);
if (CryptBinaryToString(certCtx->pCertInfo->SerialNumber.pbData, certCtx->pCertInfo->SerialNumber.cbData, CRYPT_STRING_HEX | CRYPT_STRING_NOCRLF, &(serial[0]), &outSize)) {
WideToAnsi(serial, cert->SerialNumber);
cert->SerialNumber = "0x" + cert->SerialNumber;
}
}
Она возращает строку - 0x7FD059000100E521DBA413BB0CDA7FD0590012Но в крипто про обозначается как 0x120059D07FDA0CBB13A4DB21E500010059D07FТ.е. строка реверсивная. Но .reverse сделать нельзя так как тогда каждая пара символов будет стоять не в правильном порядке Так и должно быть и мне вручную эту строку нужно обрабатывать до нужного вида или для этого есть встроеная фукнция? Отредактировано пользователем 30 октября 2021 г. 15:39:12(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close