~AreEnn
~R4SAS
~acetone
~orignal
~villain
@onon
&N00B
+relaybot
DUHOVKIN_
Guest7184
Komap-
Most2
Nausicaa
Nikat
Robert_Paulson
Ruskoye_911
Vort
Xeha
anon3
b3t4f4c3
fidoid
karamba_i2p
nemiga
not_bob_afk
plap
poriori
profetikla
qend
segfault
soos
teeth
tetrimer_
uis
un
unlike
user
weko
whothefuckami
R4SAS
orignal: такой вопрос: если перегонять base64 в base32, какие действия нужны?
R4SAS
b64 -> b32 ш2зшные
R4SAS
декоднуть через Base64ToByteStream, а потом sha256?
orignal
в смысле? просто кодировки или i2p адреса?
R4SAS
я тут опять вспомнил (спустя год, ага) про разговор с дедом, насчет торрентов
R4SAS
трекеры получают от клиентов адреса в полном формате, base64.i2p
R4SAS
а вот от трекера, по крайнем мере в поделии психа (XD которое), я вижу что ожидается 32 байта
orignal
короче что именно тебе надо?
R4SAS
адрес пира в виде 32 байт
R4SAS
получаемый из b64
orignal
ну так base64 в бинарный адрес и sha256
orignal
если в b33 там несколько сложнее
R4SAS
значит верно помню
R4SAS
теперь надо прикрутить это всё на сях к opentracker
R4SAS
не тащя за собой openssl
orignal
тебе нужна реализация sha256
orignal
возьми vain например
R4SAS
уже есть
orignal
там же есть без openssl
orignal
правда там с midstats
R4SAS
сколько должно получиться байт с b64?
orignal
391 обычно
R4SAS
либо меньше?
orignal
либо больше ))
orignal
в зависисмости от типа подписи
orignal
но для EdDSA это 391
R4SAS
хм. тогда какого объема мне лучше делать char[]?
R4SAS
имеется код такого вида:
R4SAS
unsigned char* unbase64( const char* ascii, int len, int *flen )
R4SAS
точнее функция
R4SAS
flen - выходной объем
R4SAS
но данные передаются в return
orignal
391
R4SAS
хорошо, попробуем-с
orignal
там 399 максимум
orignal
400 делай не ошибешься
R4SAS
orignal: решил на ходу выделять память, хоть и понимаю что возможно плохой вариант
R4SAS
это нормально?
orignal
unsigned char * bhash[32]
orignal
что есть сие?
orignal
не уловил твой замысел
R4SAS
туда, по логике, должно записать хеш в байтовом виде
orignal
так без * надо
R4SAS
эм
orignal
и что у тебя там inttypes.h нету что нельзя uint8_t написать?
orignal
ты объявил массив из 32 указателей на буфера
R4SAS
тогда я получаю такое: warning: passing argument 2 of ‘sha256_final’ makes pointer from integer without a cast [-Wint-conversion]
R4SAS
но если убрать * и в final то нормально
R4SAS
а чего ему насчет bctx не нра?
orignal
ну естественно
orignal
что надо в sha256_final передавать? указатель на буфер?
R4SAS
sha256_final(SHA256_CTX *ctx, BYTE hash[])
R4SAS
угу, не указатель
orignal
указатель
orignal
все правильно
orignal
указатель на буфер это
R4SAS
ты про hash, или ctx уже?
orignal
в си массив и указатель на него это одно и то же
orignal
hash
R4SAS
м... пора снова всё вспоминать ))))
R4SAS
плюсы отбивают такую замороку)))
orignal
SHA256_CTX * bctx = 0;
orignal
в плюсах тоже можно
orignal
другое дело что там так делать не нужно
orignal
там есть более осмысленные вещи для этого
R4SAS
о том и речь)
R4SAS
последний вопрос: чем отличается static const от const static?
orignal
ничем
R4SAS
хех
R4SAS
понятно что не так bctx передаю
R4SAS
еще доработка, итог следующий: paste.i2pd.xyz/?2b9739171a9c0619#42uC7Xo73LP9HnHj1Ay9KvobyUdpwe9QFnyEcB3aohmi
orignal
unsigned char * bdata это что?
orignal
его удалять потом не надо?
R4SAS
более ни где не используется
orignal
я к тому что он может там внутри создается
R4SAS
внутри unbase64?
orignal
да
orignal
что именно оно возвращает?
R4SAS
unsigned char *bin ;
R4SAS
bin = (unsigned char*)malloc( *flen ) ;
R4SAS
return bin ;
orignal
ну вот видишь?
R4SAS
unsigned char* unbase64( const char* ascii, int len, int *flen )
orignal
раз malloc значит где то надо free
orignal
от есть надо free(bdata) в конце
R4SAS
хорошо
orignal
на си вот так по дурцки пишут
orignal
у них же нет десткруторов
R4SAS
unsigned char * bdata --- с *?
R4SAS
или free (*bdata)?
orignal
free(bdata)
R4SAS
ага, понял
R4SAS
вот такая порнография )))
R4SAS
на всякий пришлось влепить проверку значения...
R4SAS
хз надо ли
orignal
вообще то это не все
orignal
надо проверять возвращаемый результат всех функций
R4SAS
ну... не прям всем
R4SAS
но понятно что надо на sha256* как минимум
orignal
надо именно все
orignal
которые возвращают
R4SAS
хорошо, если unbase64 сделает return 0; то как проверять?
R4SAS
if( bdata == 0 ) ?
orignal
if (!bdata) printf("пиздец\n");
R4SAS
ну вот только одно место проверять можно на результат
R4SAS
sha256_* все void
R4SAS
memcpy тоже
orignal
а там длину нигде не возвращает?
R4SAS
нет
orignal
в openssl вроде было
R4SAS
This function returns a pointer to the memory location where data is copied.
orignal
откуда ты знаешь фактическую длину хэша
orignal
?
R4SAS
len?
orignal
нет там какой то параметр был
R4SAS
хеш внутри задается
orignal
где не длина а указатель на переменную с длинуой нужен
R4SAS
github.com/r4sas/opentracker-i2p/commit/a85d89d2c283d4bdd0e1b9c27242a21d2073240d#diff-e3f4fe6c2bdffd7e60d05f9783c95cfc0dbdf1e5a50d35ea87c6318d41255660R16
R4SAS
поменяю на unsigned char bhash[SHA256_BLOCK_SIZE];
R4SAS
чтобы от магической константы уйти
orignal
void sha256_final(SHA256_CTX *ctx, BYTE hash[]);
orignal
странная функция
orignal
а длина hash не передается?
R4SAS
нет
orignal
ну так неприавльно
orignal
можно за пределы памяти выйти
R4SAS
и чего предлагаешь?
orignal
передавать длину hash параметром
orignal
а внутри проверять чтобы была не меньше 32
orignal
и возвращать фактическую длину хэша
R4SAS
как ты тут выйдешь за пределы?
R4SAS
github.com/r4sas/opentracker-i2p/commit/a85d89d2c283d4bdd0e1b9c27242a21d2073240d#diff-33793b229862aa824cadd5c5e95448984b5575a4975dd28d832f74b2dee4ea56R148-R157
orignal
ты не знаешь что в hash передадут
orignal
и надо делать проверку на длину всегда
R4SAS
ну, можно просто тогда как минимум проверять длину b64
R4SAS
достаточно хорошо живет
R4SAS
8539 nobody 20 0 196272 47912 1712 S 0.0 0.6 0:38.72 --- ~48Mb
tetrimer
У меня в трех местах последний коммит работает: падений пока не было.
orignal
так надо проверить сервисы
orignal
не просто роутер
tetrimer
У меня только http туннели...
orignal
этого достаточно
tetrimer
Вот ilita irc с работы вчера как-то странно: долго не мог законнектиться... Откатил до предыдущей - один хрен. Потом заработало.
orignal
а ну это саму илиту надо перестартовать
orignal
всю впс
tetrimer
Вот, кстати, хотел спросить: прикладной туннель, по умолчанию, делает 5+5 входящих и исходящих туннелей. А сколько клиентов может одновременно по ним работать не мешая друг другу?
tetrimer
Есть ли смысл увеличивать это количество?
orignal
нет смысла увеличивать нет
orignal
клиетов с какой стороны?
orignal
у меня 5 стоит только для этого ирка потому что куча народу вращ сидит
orignal
обычно я 3 ставлю
tetrimer
Ну, через браузер приходит десяток человек почти одновременно...
orignal
это пох
Vort
трафик делится
orignal
все могут и через один в общем то ходить если поток небольшой
Vort
у irc он примерно никакой, поэтому и работает норм
Vort
а вот торренты тупить будут на 5 туннелях
tetrimer
Это раньше веб-мастера бились за размер страницы... А сейчас первая страница в пару мегабайт - это почти норма.
tetrimer
В отладчике страница без кэширования - может до полутора минут грузиться.
Guest6294
Is i2psnark's DHT going to be the standard for I2P?
`
Посоны, посоны, намечает свидание дэффушкой. Как на ведроиде отредактировать tunnels.conf? У меня на ведре нет, ей помогу. Только дайте направление через какую стену пройти..
`
Как попасть к tunnels.conf на ведре?
`
Куда тыкнуть
`
*** поленился лезть в маны, простите слабого ***
orignal
у меня стоит текстовый редактор jota
orignal
открываешь им файл и правишь
`
а где он? в .data/как-то-там-дальше?
`
Ладно, ладно, извини оригнал, я почитаю маны..
orignal
/sdcard/i2pd
orignal
обычно там
`
То есть в условном корне создаёт i2pd папку?
orignal
на карте памяти
orignal
либо на реальной либо не ее эмуляции
`
Да кто пользуется картой в 2023 году)00 Шутка-шутка, не бейте.
`
Ок, направление представил.
orignal
const char * ext = getenv("EXTERNAL_STORAGE");
orignal
dataDir = std::string (ext) + "/" + appName;
orignal
где appname "i2pd"
`
Я догадался
`
Я вот думаю.. Или почтой заморочиться, для ТЕТ-А-ТЕТ, или попробовать Хаббер или поднять минимальную Ирку. Почта кажется практичнее..
`
А где полистерн?
`
Хочу её поругать за неготовый pboted
`
Или кого-то за исторически сложившуся ирку для ИЛИТЫ..