Linux repositories inspector

des_crypt(3) - Russkiy

2019-03-06
Aliases: cbc_crypt(3), cbc_crypt(3), cbc_crypt(3), cbc_crypt(3), cbc_crypt(3), cbc_crypt(3), DES_FAILED(3), DES_FAILED(3), DES_FAILED(3), DES_FAILED(3), DES_FAILED(3), DES_FAILED(3), des_setparity(3), des_setparity(3), des_setparity(3), des_setparity(3), des_setparity(3), des_setparity(3), ecb_crypt(3), ecb_crypt(3), ecb_crypt(3), ecb_crypt(3), ecb_crypt(3), ecb_crypt(3)

man-pages-ru

Russian man pages from the Linux Documentation Project

manpages-dev

Manual pages about using GNU/Linux for development

man-pages

Linux kernel and C library user-space interface documentation

ИМЯ

des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED - быстрое шифрование DES

ОБЗОР

#include <rpc/des_crypt.h>

int ecb_crypt(char *key, char *data, unsigned datalen, unsigned mode);
int cbc_crypt(char *key, char *data, unsigned datalen, unsigned mode, char *ivec);
void des_setparity(char *key);
int DES_FAILED(int status);

ОПИСАНИЕ

В функциях ecb_crypt() и cbc_crypt() реализован стандарт шифрования данных NBS DES (Data Encryption Standard). Они более быстры и имеют более широкое предназначение, чем crypt(3). Также они могут использовать (при наличии) оборудование DES. Функция ecb_crypt() шифрует данные в режиме ECB (Electronic Code Book), при котором блоки данных шифруются независимо друг от друга. Функция cbc_crypt() шифрует данные в режиме CBC (Cipher Block Chaining), при котором вместе связываются рядом стоящие блоки. Режим CBC защищает от вставки, удаления или подмены блоков. Также повторяющиеся отрезки простого текста не появятся в зашифрованном в таком режиме коде.
Рассмотрим применение этих функций. Первый параметр, key, является 8-байтным ключом шифрования с чётностью. Для установки чётности ключа, которая для DES находится в младшем бите каждого байта, используйте des_setparity. Второй параметр, data, содержит данные для шифрования или расшифровки. Третий параметр, datalen, задаёт длину блока данных data в байтах, длина должна быть кратна 8. Четвертый параметр, mode, формируется через логическое сложение (OR) нескольких вещей. Чтобы указать тип операции добавляется либо DES_ENCRYPT, либо DES_DECRYPT. Чтобы применить программное шифрование или использовать специальное оборудование, добавляется либо DES_HW, либо DES_SW. Если указано DES_HW и оборудование не обнаружено, то шифрование выполняется в программном режиме, а функция возвращает DESERR_NOHWDEVICE. В cbc_crypt() параметр ivec используется как 8-байтовый вектор инициализации для шифрования цепочек. Он обновляется на следующий вектор инициализации при возврате.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

DESERR_NONE Нет ошибок.
DESERR_NOHWDEVICE Шифрование выполнено, но использовался программный метод, так как не было обнаружено запрошенное оборудование шифрования.
DESERR_HWERROR Ошибка в оборудовании или драйвере.
DESERR_BADPARAM Некорректный параметр функции.
Указывая итоговое состояние stat, значение макроса DES_FAILED(stat) будет ложно только для первых двух состояний.

ВЕРСИИ

Функции ecb_crypt(), ecb_crypt(), crypt_r() и des_setparity() удалены из glibc 2.28, так как они используют блочный шифр DES, который теперь считается небезопасным. В приложениях следует использовать современную библиотеку шифрования, например libgcrypt.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).
Интерфейс Атрибут Значение
ecb_crypt(), cbc_crypt(), des_setparity() Безвредность в нитях MT-Safe

СООТВЕТСТВИЕ СТАНДАРТАМ

4.3BSD. Отсутствует в POSIX-1.

СМОТРИТЕ ТАКЖЕ

REFERENCED BY

⇧ Top