#include <rpc/des_crypt.h> int ecb_crypt(key, data, datalen, mode) char *key; char *data; unsigned datalen; unsigned mode; int cbc_crypt(key, data, datalen, mode, ivec) char *key; char *data; unsigned datalen; unsigned mode; char *ivec; void des_setparity(key) char *key;
Рассмотрим применение этих процедур. Первый параметр key, является 8-байтным ключем кодирования с паритетностью. Для определения паритетности ключа, которая для DES находится в меньшем бите каждого байте, используйте des_setparity. Второй параметр data содержит данные для кодирования или раскодирования. Третий параметр datalen является длиной блока данных data в байтах, длина кратна 8. Четвертый параметр mode формируется через логическое сложение OR нескольких вещей. Для направления кодирования 'or' исполняется либо с DES_ENCRYPT либо с DES_DECRYPT. Для программного кодирования или для использования оборудования 'or' исполняется либо с DES_HW либо с DES_SW. Если указано DES_HW но оборудования не обнаружено, то кодирование выполняется в программном режиме, а процедура возвращает DESERR_NOHWDEVICE. Для cbc_crypt параметр ivec является 8-байтовым вектором инициализации для последовательностей. Он обновляется на следующий вектор инициализации при возврате.
Указывая итоговый статус stat макросу DES_FAILED(stat) будет ложно только для первых двух состояний.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |