URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10194
[ Назад ]

Исходное сообщение
"3DES через OpenSSL на чистом С "

Отправлено kolyanchi , 26-Дек-17 20:02 
Нужна функция 3DES на чистом С, программирую на Ubuntu. Буду рад любой помощи!

Содержание

Сообщения в этом обсуждении
"3DES через OpenSSL на чистом С "
Отправлено pavlinux , 26-Дек-17 22:25 
> Нужна функция 3DES на чистом С...


static void des3_ede_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
{
    struct des3_ede_ctx *dctx = crypto_tfm_ctx(tfm);
    const u32 *K = dctx->expkey;
    const __le32 *s = (const __le32 *)src;
    __le32 *d = (__le32 *)dst;
    u32 L, R, A, B;
    int i;

    L = le32_to_cpu(s[0]);
    R = le32_to_cpu(s[1]);

    IP(L, R, A);
    for (i = 0; i < 8; i++) {
        ROUND(L, R, A, B, K, 2);
        ROUND(R, L, A, B, K, 2);
    }
    for (i = 0; i < 8; i++) {
        ROUND(R, L, A, B, K, 2);
        ROUND(L, R, A, B, K, 2);
    }
    for (i = 0; i < 8; i++) {
        ROUND(L, R, A, B, K, 2);
        ROUND(R, L, A, B, K, 2);
    }
    FP(R, L, A);

    d[0] = cpu_to_le32(R);
    d[1] = cpu_to_le32(L);
}



"3DES через OpenSSL на чистом С "
Отправлено kolyanchi , 27-Дек-17 00:51 
>[оверквотинг удален]
>  }
>  for (i = 0; i < 8; i++) {
>   ROUND(L, R, A, B, K, 2);
>   ROUND(R, L, A, B, K, 2);
>  }
>  FP(R, L, A);
>  d[0] = cpu_to_le32(R);
>  d[1] = cpu_to_le32(L);
> }
>

Получается, какие библиотеки надо подключать при вводе этой функции в программу?


"3DES через OpenSSL на чистом С "
Отправлено Аноним , 27-Дек-17 07:07 
>[оверквотинг удален]
>>  for (i = 0; i < 8; i++) {
>>   ROUND(L, R, A, B, K, 2);
>>   ROUND(R, L, A, B, K, 2);
>>  }
>>  FP(R, L, A);
>>  d[0] = cpu_to_le32(R);
>>  d[1] = cpu_to_le32(L);
>> }
>>
> Получается, какие библиотеки надо подключать при вводе этой функции в программу?

Вы точно в С разбираетесь?


"3DES через OpenSSL на чистом С "
Отправлено kolyanchi , 27-Дек-17 09:29 
>[оверквотинг удален]
>>>   ROUND(L, R, A, B, K, 2);
>>>   ROUND(R, L, A, B, K, 2);
>>>  }
>>>  FP(R, L, A);
>>>  d[0] = cpu_to_le32(R);
>>>  d[1] = cpu_to_le32(L);
>>> }
>>>
>> Получается, какие библиотеки надо подключать при вводе этой функции в программу?
> Вы точно в С разбираетесь?

Если честно, я пока только в процессе обучения. А в чем тут дело?


"3DES через OpenSSL на чистом С "
Отправлено Andrey Mitrofanov , 27-Дек-17 10:25 
>>> Получается, какие библиотеки надо подключать при вводе этой функции в программу?
>> Вы точно в С разбираетесь?
> Если честно, я пока только в процессе обучения. А в чем тут
> дело?

Обучение надо начинать с хеловорлдов и семи лет выноса пробивок перфокарт за Мастером.


"3DES через OpenSSL на чистом С "
Отправлено kolyanchi , 27-Дек-17 10:50 
>>>> Получается, какие библиотеки надо подключать при вводе этой функции в программу?
>>> Вы точно в С разбираетесь?
>> Если честно, я пока только в процессе обучения. А в чем тут
>> дело?
> Обучение надо начинать с хеловорлдов и семи лет выноса пробивок перфокарт за
> Мастером.

Хеловорлды вроде прошёл. Но всё-таки, в чем проблема моего вопроса?


"3DES через OpenSSL на чистом С "
Отправлено Andrey Mitrofanov , 27-Дек-17 10:57 
>> Обучение надо начинать с хеловорлдов и семи лет выноса пробивок перфокарт за
>> Мастером.
> Хеловорлды вроде прошёл. Но всё-таки, в чем проблема моего вопроса?

+ Ставите телегу криптографии поперёд лошади "подключения библиотеки в код".
+ Задаёте учебные вопросы в не относящихся к обучению форумах.
+ Уверены, что помощь рядом и придёт сама и сразу -- надо только протянуть руку и не заморачиваться.
+ Учиться не надо -- есть же гугль.  А нет, не  то---


"3DES через OpenSSL на чистом С "
Отправлено kolyanchi , 27-Дек-17 12:47 
>>> Обучение надо начинать с хеловорлдов и семи лет выноса пробивок перфокарт за
>>> Мастером.
>> Хеловорлды вроде прошёл. Но всё-таки, в чем проблема моего вопроса?
> + Ставите телегу криптографии поперёд лошади "подключения библиотеки в код".
> + Задаёте учебные вопросы в не относящихся к обучению форумах.
> + Уверены, что помощь рядом и придёт сама и сразу -- надо
> только протянуть руку и не заморачиваться.
> + Учиться не надо -- есть же гугль.  А нет, не
>  то---

Спасибо за критику. Буду разбираться.



"3DES через OpenSSL на чистом С "
Отправлено pavlinux , 28-Дек-17 17:03 
> Если честно, я пока только в процессе обучения. А в чем тут дело?

В криптографии, программирования - минимум. Сплошные битовые операции. Без знания "Полей Галуа" там делать нечего.

Если хочется поиграть с числами, то тренироваться можно с реализации калькулятора без использования библиотек.

sin(x), cos(x), tg(x),ctg(x)
log[2](x), log[10](x), ln(x)
e^x, x^y
sqrt(x), x^(1/y)
...

--

Задание на лето:
Тот же калькулятор, но с числами с вводом и выводом до 10000 цифр, или 10000.10000 если с мантиссой.


"3DES через OpenSSL на чистом С "
Отправлено pavlinux , 28-Дек-17 16:58 
> Получается...

Вы просили функцию 3DES.:)