Anton
О сейчас попробую
Ioann_
Бандиты, а как перевести это из стандарта :
Ioann_
8.18 [expr.ass] «In all cases, the assignment is sequenced after the value computation of the right and left operands, and before the value computation of the assignment expression»
Ioann_
Я что-то немного недотягиваю до грамотного перевода, кто поможет ?
Ioann_
В таком духе выходит, что a^=b^=a^=b
Ioann_
Это нифига не ub :?
Berkus
присвоение выполняется после вычисления левого и правого операндов, но до вычисления значения выражения присвоения
Anonymous
С помощью какого параметра железа можно проводить аутентификацию?
Anonymous
Мне бы универсальную, так как планируется перенос на мобильные устройства
Anonymous
Hard ID не предлагать
Berkus
никакого, а что?
Ioann_
Ioann_
?
Anonymous
cpuid
Хм.. как его определить?
Ioann_
погугли, так с ходу не скажу. Знаю что Denuvo что то подобное юзает.
Berkus
Хм.. как его определить?
это на x86 команда такая, можно что-то узнать о проце, но это и всё. на мобилах такого нету ксттае
Berkus
там MCR только если какой-то читать, но универсального нету
Andrei
Anonymous
Berkus
Anonymous
Andrei
Ну вообще-то зависит от задачи. Если ему нужно аутентифицировать устройство, чтобы туда загрузить настройки юзера для устройства — то вообще не проблема, чтобы приложение само слало какой-то код.
Andrei
А если ему нужна аутентификация для авторизации, то да, никак.
Berkus
серийник процессора я тебе могу вполне легко подделать в виртуалке
Pepe 🐸
немного оффтоп но все таки это "аутентикация" вроде
Berkus
https://ru.wikipedia.org/wiki/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F
Berkus
https://ru.wiktionary.org/wiki/%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F в викисловаре что-то есть но никто не использует
Matwey
Matwey
А, не дочитал
Matwey
Но я думаю, что ему нужен именно он на самом деле
Pepe 🐸
Levon
Нет у компа универсальных идентификаторов. МАК-адресс и все остальное можно изменять. Про мобильные точно не знаю, может что то и добавлено
Levon
Недавно писал систему тестирования для школьников, хотел как то привязаться к компу, но ничего не придумал, в итоге была дыра))
Levon
Есть что то типа motherboardid, если не ошибаюсь так называется, но не у всех материнок есть, а у кого нет - просто n штук F выдаётся
Levon
Так что тоже не вариант. Можно какую то солянку собрать, но мало что даст
Levon
Anonymous
#include <openssl/hmac.h>;
unsigned char *hash_hmac(const char *decoded, const char *dec_vals) {
HMAC_CTX ctx;
unsigned char *result;
HMAC_CTX_init(&ctx);
HMAC_Init_ex(&ctx, decoded, std::strlen(decoded), EVP_sha512(), NULL);
HMAC_Update(&ctx, (unsigned char*)dec_vals, std::strlen(dec_vals));
HMAC_Final(&ctx, result, (unsigned int*)64);
HMAC_CTX_cleanup(&ctx);
return result;
}
ребят, вот подключил я hmac.h, хочу значит сделать своё дело, но почему то не могу объявить HMAC_CTX ctx;
сегфолт сразу же.. не могу найти инфу по этому поводу..
Anonymous
третья строка отправляет в segmentation fault..:(
Anonymous
#include <openssl/hmac.h>;
unsigned char *hash_hmac(const char *decoded, const char *dec_vals) {
HMAC_CTX ctx;
unsigned char *result;
HMAC_CTX_init(&ctx);
HMAC_Init_ex(&ctx, decoded, std::strlen(decoded), EVP_sha512(), NULL);
HMAC_Update(&ctx, (unsigned char*)dec_vals, std::strlen(dec_vals));
HMAC_Final(&ctx, result, (unsigned int*)64);
HMAC_CTX_cleanup(&ctx);
return result;
}
ребят, вот подключил я hmac.h, хочу значит сделать своё дело, но почему то не могу объявить HMAC_CTX ctx;
сегфолт сразу же.. не могу найти инфу по этому поводу..
а на каком именно месте падает segfault?
Anonymous
после HMAC_CTX_init?
Anonymous
Anonymous
но я тут хитровывернул
Anonymous
auto ctx = new HMAC_CTX*;
Anonymous
и заработало лол
Anonymous
после HMAC_CTX_init?
а вот её он не видит..
use of undeclared identifier 'HMAC_init'...
Anonymous
HMAC_Init_ex
Anonymous
?
Anonymous
ещё, кажется, ты неправильно с result работаешь
Anonymous
HMAC_Final(&ctx, result, &len);
память под result уже должна быть выделена
Anonymous
HMAC_Init_ex
вот сейчас сделал auto ctx = new HMAC_CTX;
теперь стало круто, смотрю дальше
Anonymous
Anonymous
ща
Anonymous
ну так ты же не даром len передаешь
Anonymous
какой-нибудь malloc(sizeof(char) * len); нужен
Matwey
зачем? 64 байта можно и на стеке выделить
Matwey
а, ну да...
Anonymous
Можно. Я просто к тому, что память должна быть выделена
Anonymous
Aidar
поцоны есть кто на саратовский ЧФ едет?
Anonymous
Anonymous
HMAC_Final(ctx, result, (unsigned int*)64); валит все в сег
Matwey
а это как?
Anonymous
передавай не 64, а &len
Matwey
(unsigned int*)64 ?
Matwey
он небось в эту переменную запишет число реально записанных байт
Anonymous
он ждет адрес на переменную
Matwey
как-то так обычно делают
Anonymous
а ты даешь ему что-то левое
Anonymous
Anonymous
unsigned int len = 64;
unsigned char* result = (unsigned char*)malloc(sizeof(char) * len);
...
HMAC_Final(&ctx, result, &len);
Anonymous
спасибо ребята! ❤️
Anonymous
я пока только вкатываюсь в плюсы)
Anonymous
очень рад, что чатик может подсказать и объяснить)
Anonymous
Кто-нибудь может подбросить статей по именованию исключений? Ну или выдержку из coding style'ов?
До сих пор в голове не выработалась строгая система именования исключительных ситуаций, а хороших, исперпывающих размышлений я так и не смог найти
Anonymous
Anonymous