Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
" movw (%%edi,%%ebx),%%ax "
" shrb $4,%%al "
" shlb $4,%%al "
" jmp 5f "
"4: shrb $1,%%bl "
" movw (%%edi,%%ebx),%%ax "
" shlb $4,%%al "
"5: orb %%cl,%%al "
" popl %%edx "
" movb %%al,%%dl "
" popl %%eax "
" popw %%cx "
" rorl $8,%%edx "
" shrl $8,%%eax "
" xorl %%esi,%%esi "
" popl %%esi "
" addl $16,%%esi "
" decw %%cx "
" jz 6f "
" jmp 1b "
"6: movl %%edx,%%eax "
" roll $11,%%eax "
" popl %%edx "
" xorl %%edx,%%eax "
:"=a" (SM2)
:"0"(SM1),"S"(k),"d"(N2)
:"ebx","ecx","edi");
return SM2;
}
Здесь приведена «лобовая» реализация блока подстановки и регистра сдвига. На оптимальность, конечно, не претендует, но работает правильно и достаточно быстро.
Весь вышеприведенный код драйвера разместим в файле sys_call_gost.c. Функции расположим в следующем порядке (параметры функций и тип возвращаемого результата не указаны):
block;
op;
symple_replace_crypt;
init_key;
own_gost;
write_gost;
open_gost;
close_gost;