~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+Xeha
Daddy
GFW
Guest35262
Most_
Nobody
Opax
WebClient041
Yotsu
anon
anontor
b3t4f4c3
darkcyankitty
deserving-stegosaur
duanin2
duck
fidoid
g1
gobo
halloy1341
iacv1p
karamba_i2p
leopold
mareki2p
n1
negative_rock127
not_bob_afk
ntty
osoznayka
pnn
poriori
profetikla
qend
rc13
slfd
soos
teeth
un
unit2r
vade
orignal
auto session = GetSession ();
orignal
if (!session) return false;
orignal
вот тут поставь перед return false
orignal
вылетает ли тут или дальше вызывает session->HandleNextMessage
orignal
внутри сесии ставить логи и смотреть на каком месте фейлится
orignal
дальше в HandleExistingSessionMessage
onon
Куда ещё лог сувать?
orignal
мы должны понять в каком месте HandleNextMessage возвращает false
onon
А конктретно
orignal
перед ветвлениями
onon
Всё?
onon
СОбирать?
orignal
погоди
orignal
auto session = GetSession ();
orignal
я думаю что фейлится здесь
onon
Мои какие действия?
orignal
вот здесь if (!session) return false;
orignal
отрыть фигурные скобки
onon
Ну я там уже сделал лог
onon
СО скобками
onon
Или чио-то добавить ещё
orignal
и написать перед rerun LogPrint ("мы накрылись медным тазом")
orignal
нет больше ничего
onon
Ок собираю
orignal
собирать и пробовать
orignal
если гиптеза подтвердится будем думать с чего сессиия стала нулевой в тагсете
onon
Ну щас со старта заработало
orignal
ну в общем понятно что надо смотреть
onon
Локально поток остановил, послал поток с другого клиента, свё заработало
orignal
эээээ
onon
Остановил с удалённого клиента, запустил с локального - поёт
orignal
какая то исчезающая ошибка
onon
А если с двух в один слать то поёт сразу две песни
onon
Одновременно
orignal
лол
onon
Пока не ломается
onon
Вот сломалось
onon
И нету там !session
onon
И HandleNextMessage тоже нет
onon
Просто Can't handle ECIES-X25519-AEAD-Ratchet message
onon
Пред тем как сломалось было 2 вызова HandleNextMessage
onon
Потом было GetNextSessionTag от 24 до 45
onon
И дальше GetNextIndex 0
orignal
ну так надо все таки понять откуда возвращается false
orignal
если других ошибок нет
orignal
default:
orignal
return false;
orignal
может вот тут стейт какой то не такой?
onon
А UDPSession: Operation canceled Это откуда?
onon
Оно перед этим вылезло, может как-то связано
orignal
LogPrint(eLogError, "UDPSession: ", ecode.message());
orignal
отсюда
orignal
кто то закрыл сокет короче
onon
Значит ни при чём
orignal
угу
orignal
наша цель узнать откуда false в HandleNextMessage
onon
Может ему сам пакет не нравится, что он пустой GetDatagramDestination ()->SendDatagram (session, nullptr, 0, 0, 0, &options);
orignal
про пустоту пакета ты узнаешь только после рашифровки
orignal
а у тебя расшифровать не может
onon
Хмм
orignal
или еще что то фейлится
orignal
мы и пытаемся понять где фейлится
onon
Ну ты пока пытайся, а я чаю себе сделаю
orignal
да кстати этам мысль интересная что там с пейлоадом
orignal
я отойду
orignal
в сельпо ))
orignal
вернулся
onon
А я там опять жабоводов тролирую
onon
Говорю что они на болоте сидят
onon
Жаб разводят
onon
Вот только что оно сломалось в потоке
onon
Т.е. не на старте
orignal
кстати почему ты думаешь что это фейлится шифрование?
onon
А не погоди
onon
Это я рестартанул
onon
Тоже на старте
orignal
давай место смотреть
onon
Может ка-то влияет что у меня порты прописаны в конфиге
onon
destinationport = 30000
onon
port = 30000
onon
Я уж не знаю почему у тебя работает а у меня нет
orignal
так если у тебя не работает
orignal
то ты можешь найти по логам
onon
Ну я всё логирую что ты сказал
orignal
я же говорю мы должны понять на какой строчки происходит return false
onon
Ничё е понятно всё равно
orignal
что то же возвращает false
onon
Сюда !it->second.tagset или сюда !it->second.tagset->HandleNextMessage ?
orignal
раз у тебя печталается индекс что очевидно что тагсет не нулевой
orignal
фейлится внутри HandleNextMessage
orignal
теперь смотри если бы не могло расшифровать то писало бы ошибку
orignal
Garlic: Payload section AEAD decryption failed"
orignal
типа такого
orignal
но если этой ошибки нет то это явно не шифрование
onon
У меня там лог error
onon
может он и вылазило
onon
Щас поставлю цфктштп
onon
warning
orignal
вот с этого и надо начинать
orignal
если фейлится именно расшифровка
orignal
будем копать дальше
orignal
у меня кстати порты 24001
onon
Оно что-то перестало ломаться
orignal
лол
onon
Это закон подлости
orignal
закон мэрфи
onon
Flags/static
orignal
так-с
orignal
это значит новая сессия
onon
Причем это не сломалось мгновенно
onon
Он сначала несколько сообщений не смог расшифровать
onon
Потом снова смог
orignal
Garlic: Flags/static section AEAD encryption failed
onon
А потом опять не смог
orignal
я полагаю
orignal
пардон descryption
orignal
а это в свою очередь означает что не нашелся таг
onon
И сломалось оно на 683 таге
orignal
if (session->HandleNextMessage (buf, length, nullptr, 0))
orignal
m_LastIncomingSessionTimestamp = ts;
orignal
else
orignal
LogPrint (eLogError, "Garlic: Can't handle ECIES-X25519-AEAD-Ratchet message");
orignal
завалилось вот здесь
orignal
вопрос почему не нашелся таг
onon
Вру сломалось на 443 таге
onon
Потом снова починилось
onon
А потом снова сломалось
onon
Может у меня память где битая?
onon
Где он в памяти хранится
orignal
вряд ли
orignal
кто? таг?
onon
Ну
onon
Ну другие программы пока не жаловались
orignal
std::unordered_map<uint64_t, ECIESX25519AEADRatchetIndexTagset> m_ECIESx25519Tags; // session tag -> session
orignal
вот здесь
onon
У меня там при включении быстрый тест памяти делается...
orignal
да не память это
onon
Поня
onon
л
orignal
а логическая ошибка где то
orignal
скорее всего он выкинулся по какой то причине
onon
Из-за тестов туннелей
orignal
для тестов тоннелей свои тагсеты
onon
Куда ещё логирование пихать
orignal
теперь надо делать следующее
orignal
записывать когда таги кладутся в таблицу m_ECIESx25519Tags
orignal
и когда они из нее удаляются
orignal
далее в момент ошибки записать какой это был таг
orignal
когда ошибка возникнет проседить судьбу этого тага
orignal
чтобы понять
orignal
1. создавался ли он вообще
orignal
2. если создавался почему был выкинут
orignal
это все на стороне получателя
orignal
если получился вариант 1 что он такой вообще не создавался
orignal
то смотреть почему наборы тагов разошлись на отправителе и получателе
onon
Конкретно какие строки
orignal
перед всеми операциями с m_ECIESx25519Tags
orignal
insert, emplace и erase я думаю
orignal
а сам таг вот там где индекс печатал
onon
Чет там дохрена операций с этим m_ECIESx25519Tags
orignal
ну вот все и записать
orignal
в лог
orignal
тип операции и таг
orignal
тебе от индекса нет пользы
orignal
если ты получил таг который не найдет в таблице
orignal
тебе нужно само значение тага
onon
Ну вот значение значит
orignal
и понять что с ним происходило до этого
orignal
ну вот в AddECIESx25519SessionNextTag это просто tag
orignal
какая строчка вызывает у тебя затруднение?
orignal
понимаешь мысль? если мы запишем все действия с тага с этой таблицей
orignal
то когда получим не найденный то мы поиском найдем в логе что с ним случилось
onon
Ща попробую
orignal
ну и пишешь в лог Add и Remove
onon
А там где erase
onon
m_ECIESx25519Tags.erase (it);
onon
auto it = m_ECIESx25519Tags.find (tag);
onon
if (it != m_ECIESx25519Tags.end ())
orignal
it->first но обязтаельно перед earse а не после
orignal
ну и у тебя же есть tag
onon
Там где void GarlicDestination::CleanupExpiredTags ()
onon
Не знаю как
onon
Он там какие-то слишком большие числа пишет
orignal
правильно
orignal
так и должно быть
orignal
и с - может
orignal
перед it = m_ECIESx25519Sessions.erase (it);
orignal
напечатать it->first
onon
Да везде перед
orignal
со словом Remove
onon
СДелал, только ничего не понятно
onon
ВОт оно сломалось уже только как это разобрать...
orignal
надо взять таг который на найдет
orignal
и сделать поиском по логу его
onon
А где это посмотреть который он не нашёл
orignal
так ты должен был его напечтать
orignal
в HandleECIESx25519TagMessage
orignal
к этому if (it != m_ECIESx25519Tags.end ()) доьавить else и туда
orignal
Not found и tag
onon
Голову мне взорвешь
orignal
смотри какой план
onon
Перед return false;
orignal
да именно там
orignal
мы находим таг который не найден а должен быть найден
orignal
а потом пытаемся установить почему он не найден
orignal
или его вообще не существовало или его выпилили
onon
Не находит такого тага вообще
onon
Нету его в emplace и erase
orignal
то есть он не сгенерился
onon
Они только в этом файле генерятся?
orignal
да
onon
Еще раз перепроверю что все логи дабвил
orignal
то есть генерятся они в другом а вставляются только в этом
orignal
если не было его emplace дальше возникает вопрос почему
orignal
почему он есть на стороне отправителя и нет на стороне получателя
onon
Секретный зонд от АНБ
orignal
либо не успел либо расхождение в генерации их
orignal
значит надо печтать что мы генерим на обеих сторонах и сранивать
orignal
но это уже завтра
onon
Данунах
onon
Издевается на до мной
onon
Я это еле осилил
onon
А ещё с двух сторон
orignal
ну так раз толькол у тебя воспроизводися
onon
Ты просто не старался
orignal
если бы у меня воспроизводилось я бы сам все это проделал
onon
И отлыниваешь
orignal
ну если не застревает что я могу сделать?
onon
Слабо пихаешь значит
onon
Больший поток пихай
orignal
больший это сколько?
onon
434.7kbits/s
onon
У меня
orignal
хорошо завтра попытаюсь
orignal
точнее даже счас
onon
Завтра на работу
onon
Спать иди
orignal
frame= 16 fps=7.7 q=6.1 size= 126kB time=00:00:01.50 bitrate= 688.8kbits/s
orignal
рано
orignal
что я делаю не так?
onon
Не знаю
orignal
идет без проблем и затыков
onon
Что мне на клиенте смотреть
onon
Искать такой номер тага?
orignal
на клиенте надо записать все таги которые там генерятся
onon
Они такие же должны быть?
onon
Вот на сервере он пишет таг не найден
onon
И с этим номером на клиенте искать?
orignal
uint64_t tag = m_SendTagset->GetNextSessionTag ();
onon
Это в каком файле
orignal
в сттроке 865
orignal
ECIESX25519AEAD как обычно
orignal
вот туда надо писать с этой строки
orignal
а у получателя надо записывать в AddECIESx25519SessionNextTag
orignal
и дальше сранивать одинаковые ли нагенирились и когда начались расхождения
orignal
нам надо понять почему на отправителе таг есть а на получателе его нет
onon
Знаеш что
onon
На сервере таг не нашёлся
onon
На отправителе есть
onon
Вот какой нюанс
onon
Следующий нераспознанный таг на сервере на клиенте сгенерирован до первого не найденного
onon
Если в этом вашем шифровании важен порядок следования тагов, то возможно он сломался из-за реордеринга
onon
Нет, похоже сервер просто нагенерил мало тагов.
onon
только 53 штуки
onon
А с клиента часть пакетов потерялась
onon
И потом перепрыглул номер получается
onon
И на сервере и на клиенте crypto.ratchet.inboundTags=800 если что
Most_
05<centeredhonor> test
Most_
05<centeredhonor> > test
Most_
05<centeredhonor> ❤️
Most_
14<gomunkul> > test
Most_
14<gomunkul> ❤️