LINUX.ORG.RU

Сообщения PPP328

 

Авторизация клиент-клиент

 , ,

Пишу тут как хобби мессенджер с end-point шифрованием и возможностью защищенной работы при захвате сервера.

Хочу реализовать следующие фичи:
* Отсутствие базы на сервере
* Как следствие - отсутствие авторизации на сервере
* Передача public ключа между пользователями физически («на флешках»), чтобы избежать его палева по сети.

Пока уперся в следующую проблему:
Алиса хочет послать сообщение Бобу.
Алиса шифрует сообщение своим приватным и публичным Боба
Алиса шлет сообщение на сервер с пометкой «Бобу»
Сервер видит, что у него залогинено три Боба.

Дальше два варианта развития событий:
1. Сервер шлет сообщение Алисы всем Бобам, ведь все равно расшифровать его сможет только тот, кому адресовано.
2. Сервер запрашивает у Бобов образец сообщения (например текущее время, шифрованное с публичным ключом Алисы), потом шлет все эти сообщения Алисе и после того как Алиса скажет кто из них кто отсылает сообщение нужному Бобу.

Первой вариант - плохо, потому что требует выслать всем Бобам «лишние» сообщения. Если их 100, то они будут получать непрерывный поток хлама, адресованный не им.
Второй вариант - плохо, потому что если Бобов 100, то это займет очень много времени.

Как такую задачу уже решили? Хочу авторизацию через клиентов и чтобы на сервере не было публичных ключей пользователей.

PPP328
()

Астра Линукс оказался не готов

 ,

https://geektimes.ru/post/297819/

Управление делами президента (УДП) РФ не сумело в срок выполнить заявленные показатели по импортозамещению и перейти с американской ОС Windows на российскую Astra Linux. Согласно графику, в 2017 году доля использования отечественной ОС Astra Linux Special Edition производства НПО «РусБИТех» должна была составить 10%, а по факту составила 0%.

Согласно опубликованному на сайте УДП плану-графику перехода на использование отечественного офисного ПО в 2017–2020 годах, импортозамещение текстовых редакторов и коммуникационного ПО также составляет 0%. Доля отечественных почтовых приложений пока тоже 0%.

Причиной невыполнения плана в УПД назвали недостаточную готовность Astra Linux. Тестирование продуктов показало преждевременность их внедрения. Разработчикам этой ОС поручили «доработать дистрибутив и код программного обеспечения».

А нефиг потому что было GPL нарушать!

PPP328
()

Подскажите, где можно надыбать бесплатный слабый сервер

 

Нужен чтобы поднять там 24\7 приложение в 5-10 мб объемом. Трафик 5-20 МБ в сутки.

Перемещено tailgunner из development

PPP328
()

Не выключается 16.04

 , ,

https://s13.postimg.org/61dmbb4on/2018-01-15_22.45.06.jpg

На вот этой надписи может всю ночь провисеть. На CTRL+ALT+DELETE реагирует ребутом как и положено.

PPP328
()

После обновления начал щелкать звук перед его активацией

 , ,

Щелкает (и очень громко) даже если просто листать 9gag с выключенным звуком, где все ролики по умолчанию в mute. Щелкает не только встроенными колонками, но и в наушниках, если они вставлены.

Началось после недавнего обновления на Ubuntu 16.04

PPP328
()

Max частота на AC

 ,

Чет не нашел я как в бубунте (16.04) искаропки сделать чтобы при подключении адаптера питания сразу стало MAX частота процессора, а при вытыкании снова powersafe?

PPP328
()

Программно залипают клавиши

 , ,

На xU16.04 (lenovo thinkpad L560) наблюдаю следующую проблему - периодически (раз-два в неделю) залипает клавиша на клавиатуре - обычно либо влево, либо пробел, либо backspace либо ctrl. В связи с этим только одно решение - ребут, ибо на сочетания клавиш из-за залипания не реагирует (даже в tty не перейти). После ребута все ок, так что подозреваю софтовую проблему. В /var/log/syslog ничего подозрительного.

Зависает обычно в starbound (влево) или в QtCreator (пробел\ctrl). Иногда (редко) решает так - включением и отключением режима FnLk. В wow не залипало никогда, так что подозреваю что дело в одновременном нажатии какого-то ряда клавиш.

При залипании функциональные клавиши продолжают работать (Fn+F2 - звук тише и проч).

Как отладить и решить? Может это вообще какой-то режим типа виндового shiftx5 включается?

dmesg забит

[ 2372.596719] ACPI: \_SB_.PCI0.LPCB.EC0_.ECRD: 1 arguments were passed to a non-method ACPI object (RegionField) (20150930/nsarguments-230)
[ 2382.604509] ACPI: \_SB_.PCI0.LPCB.EC0_.ECRD: 1 arguments were passed to a non-method ACPI object (RegionField) (20150930/nsarguments-230)
[ 2382.604557] ACPI: \_SB_.PCI0.LPCB.EC0_.ECRD: 1 arguments were passed to a non-method ACPI object (RegionField) (20150930/nsarguments-230)
, когда-то пытался решить, но неосилил после исправления этого косяка исправить еще 200+ ошибок компиляции.

PPP328
()

Как разрешить круговую зависимость структур?

 

typedef void (* B)(C *);

typedef struct
{
    [..]

    B b;
} A;

typedef struct
{
    [..]

    A * a;
} C;

Уже битый час бьюсь, не могу понять, можно ли решить это нормальным способом. В C всего лишь указатель на A, поэтому скорее всего можно как-то задекларить.

PPP328
()

Будет ли подлежащая библиотека проинициализирована ранее через __attribute__ ((constructor))

 

Привет!

Такой вопрос: есть такая вещь как __attribute__ ((constructor)). Предположим я использую его в инициализации библиотеки. Потом использую его в приложении, которое использует эту библиотеку. Я правильно понимаю, что библиотечный ((constructor)) будет вызван раньше приложенческого? Отвечаю на вопрос, зачем мне это нужно - мне надо вызвать функцию библиотеки в инициализаторе приложения, а эта функция работать без инициализатора библиотеки не будет.

Нужен официальный пруф.

Вопрос номер два. А будет это работать в более сложной цепочке? A.so (init A) <- B.so (init B, related on A) <- C.elf (init C, related on B)

Minimal Code Example:

mkdir -p /tmp/libtest && echo -e "#include <stdio.h>\n\nint target = 10;\n\nstatic void target_init(void) __attribute__ ((constructor));\n\nstatic void target_init(void)\n{\n    target = 50;\n}\n\nint target_return(void)\n{\n\n    return target;\n}\n" > /tmp/libtest/lib.c && echo -e "#include <stdio.h>\n\nextern int target_return(void);\n\nstatic void main_init(void) __attribute__ ((constructor));\n\nstatic void main_init(void)\n{\n    printf(\"main_init: %d\\\\n\", target_return())\n}\n\nint main(void)\n{\n    printf(\"main: %d\\\\n\", target_return());\n    return 0;\n}\n" > /tmp/libtest/main.c && gcc -fPIC -shared /tmp/libtest/lib.c -o /tmp/libtest/liblib.so && gcc main.c -o /tmp/libtest/main.elf -L. -llib && LD_LIBRARY_PATH=/tmp/libtest/ /tmp/libtest/main.elf
PPP328
()

Starbound под intel

 , ,

На текущей Intel® HD Graphics 520 можно нормально играть в Saints Row IV. Ну, думаю, со Starbound под онтопик проблем не будет. А фиг там:

Доходит до главного меню, потом зависание и вылет.

intel_do_flush_locked failed: Input/output error

Нагуглил что предлагают выставить хардкорный запрет аппаратного ускорения. Понятно, что современная игруля, какой бы примитивной графикой не обладала чисто на проце будет нещадно лагать даже в главном меню.

А адекватные методы решения есть?

PPP328
()

Имеет ли вообще смысл ScreenCount(dpy)?

 

Каждый раз при подключении нового монитора мы не создаем новый screen (:0.1), а расширяем нулевой до размеров nx(m1+m2), все равно имея при этом ровно один скрин :0.0.

Так что, ScreenCount не имеет смысла? Всегда будет 1?

Или все-таки имеет смысл обрабатывать мультискрин кейсы на случай если кто-то все таки починит Xы, чтобы они третировали все мониторы как разные скрины для корректной обработки dpi?

When you have two monitors, X treats them as one display with (DISPLAY=:0.0) with a big resolution

Wayland ловеры лесом.

Zubok

PPP328
()

Попробовали мы тут в демо режиме натравить на нас пивас

 

i32 xxxx(const void * p1, const void * p2)
{
    const u8   * p1_u8 = p1;
    const u8   * p2_u8 = p2;

    if (p1_u8 == p2_u8)
        return 0;
    if (p1_u8 == NULL)
        return *p2_u8;  // 403
    if (p2_u8 == NULL)  // 404
        return *p1_u8;
V595 The 'p2_u8' pointer was utilized before it was verified against nullptr. Check lines: 403, 404.

Короче эта хреновина не в состоянии элементарно попеременно подставить NULL/val во входных данных как это делает cppcheck/clang-tidy.

Такие дела.

PPP328
()

Потребление энергии отдельными блоками

 

2018й, ракеты летают на Марс, виртуальная реальность уходит в массы, умные дома, киборги и пр..

Тем временем можно ли в линуксе узнать сколько в данный момент потребляет каждый конкретный блок? Например, насколько я уменьшу энергопотребление если прямо сейчас выключу Wi-Fi или экран.

PPP328
()

Постоянно виснет Thunar

 , ,

xU16.04, в консоли ничего нет при этом (пробовал запускать его оттуда). Может не туда смотрю? Виснет напрочь, может простоять час, потом зависнуть, может через пять минут.

PPP328
()

can't access tty; job control turned off

 ,

Делаю в скрипте

# Скрипт запущен от рута\sudo. Надо дать пользователю его шелл
su $user -c /bin/sh

Получаю шелл и в прибавку к нему: «/bin/sh: 0: can't access tty; job control turned off».

Если запустить что-то и сделать ^C, то все поломается нафиг:

/bin/sh: 0: can't access tty; job control turned off
$ ping ya.ru 
PING ya.ru (87.250.250.242) 56(84) bytes of data.
64 bytes from ya.ru (87.250.250.242): icmp_seq=1 ttl=54 time=27.1 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=2 ttl=54 time=28.6 ms
^C
Сеанс завершён, выполняется завершение оболочки…
--- ya.ru ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 27.149/27.897/28.646/0.766 ms

$ exit
 … ожидает завершения потомка.

Так что не работает.

В инете такую штуку нашел только если ОСь не грузится или когда делают sh /dev/console. Тут просто sh. Как лечить?

Xubuntu 16.04

PPP328
()

Нелогичность в stdlib

 

Почему функции

char *strpbrk(const char *s, const char *accept);
char *strstr(const char *haystack, const char *needle);
char *strcasestr(const char *haystack, const char *needle); // GNU
char *strchr(const char *s, int c);
char *strrchr(const char *s, int c);
Возвращают char вместо const char? Может я упускаю какой-то сакральный смысл? Просто преобразование `return (char *)s;`, нарушает все допустимые нормы программирования (MISRA, NASA JPL, etc). Да и просто по логике - взяли константную строку на вход, на выходе позволяем делать с ней все, что угодно.

PPP328
()

ublock origin не блочит yandex.direct

 ,

Что теперь делать, куда бечь? Сбежал с adblock+ из-за того, что он не блочил vk-related рекламу, теперь все вернулось взад.

PPP328
()

Почему так сильно может лагать stdlib?

 ,

./code/test/utils/bximemutils.c
    defines:
        defined: BX_MEM_NONE: 0x000000
        defined: BX_MEM_ZERO: 0x000001
    functions:
        checking: bxi_memopt_set
        checking: bxi_memerr_set
        checking: bxi_malloc_set
        checking: bxi_malloc
        checking: bxi_realloc_set
        checking: bxi_realloc
        checking: bxi_free_set
        checking: bxi_free
        checking: bxi_memset
            speedtest:     memset  :  0.01649
            speedtest: bxi_memset  :  0.04130
        checking: bxi_memcpy
            speedtest:     memcpy  :  0.01038
            speedtest: bxi_memcpy  :  0.04120
        checking: bxi_memmove
            speedtest:     memmove :  0.01202
            speedtest: bxi_memmove :  0.04034
        checking: bxi_memcmp
            speedtest:     memcmp  :  1.63799
            speedtest: bxi_memcmp  :  0.58350
        checking: bxi_memfrob
            speedtest:     memfrob :  0.07995
            speedtest: bxi_memfrob :  0.08031
        checking: bxi_memchr
        checking: bxi_memrchr
PASSED

tk@pro7:/tmp/git/codemeow/bixi/bin
$ head -10 /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz
stepping	: 9
microcode	: 0x12
cpu MHz		: 3300.000
cache size	: 8192 KB
physical id	: 0
tk@pro7:/tmp/git/codemeow/bixi/bin
$ uname -a
Linux pro7 3.8.5 #4 SMP Mon Oct 9 18:48:32 MSK 2017 i686 Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz GenuineIntel GNU/Linux
$ ls -l /lib/libc-2.11.1.so
-rwxr-xr-x 1 root root 1649149 2010-05-13 10:55 /lib/libc-2.11.1.so*

Реп: https://github.com/codemeow/bixi (сборка ./scripts/build.sh release, бинари будут в bin)
Как это можно объяснить?

PPP328
()

Не устанавливается DragonFly в VirtualBox

 ,

Образ с офсайта, dfly-x86_64-5.0.1_REL.iso
Виртуалка из реп Ubuntu 16.04 - 5.0.40_Ubuntu r115130
Камень Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz, виртуализация в бивисе включена (без нее вообще сразу после запуска виртуалки Guru Meditation
В простом режиме (Boot kernel) оно не грузится совсем, виснет на kbd0 at atkbd0.
Пытается грузиться дальше только если грузить в safe mode или без дров ACPI/AHCI.
Однако через пару секунд

Mounting devfs
DOUBLE FAULT
<..>
panic: lockmgr vm_maplk from 0: called from interrupt, ipi, or hard code section

Скрин гугла по проблеме: https://s1.postimg.org/9frgq6pupb/2017-11-08_14-31-44.png

Чем лечить? Хочу ее потыкать.

PPP328
()

Как заткнуть clang'овское «argument unused during compilation»?

 

Из-за -Werror он стопорит компиляцию. Прописал -Wno-error=unused-command-line-argument, но это не выход, так как все равно срет в stderr и внешняя система воспринимает это как ошибку. Обращу внимание, что это не на необработанный аргумент функции, а «лишний» по мнению кланга аргумент строки компиляции, конкретно тот, который задает место где надо искать библиотеки: -Lxxx. https://ibb.co/bYioHb . Вообще зачем нужно было это (предупреждение) делать, ни один другой компилятор не говорит о «лишних» параметрах.

PPP328
()