Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

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

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <rpc/des_crypt.h>

       int ecb_crypt(char *key, char data[.datalen], unsigned int datalen,
                     unsigned int mode);
       int cbc_crypt(char *key, char data[.datalen], unsigned int datalen,
                     unsigned int mode, char *ivec);

       void des_setparity(char *key);

       int DES_FAILED(int status);

ОПИСАНИЕ

       ecb_crypt()   and  cbc_crypt()   implement  the NBS DES (Data Encryption Standard).  These
       routines are faster and more general purpose than crypt(3).  They also are able to utilize
       DES  hardware  if  it  is  available.  ecb_crypt()  encrypts in ECB (Electronic Code Book)
       mode, which encrypts blocks of data independently.  cbc_crypt()  encrypts in  CBC  (Cipher
       Block Chaining)  mode, which chains together successive blocks.  CBC mode protects against
       insertions, deletions, and substitutions of blocks.  Also, regularities in the clear  text
       will not appear in the cipher text.

       Рассмотрим  применение  этих  функций.  Первый  параметр,  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) будет ложно только для
       первых двух состояний.

ВЕРСИИ

       These functions were added in glibc 2.1.

       Функции 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.

СМ. ТАКЖЕ

       des(1), crypt(3), xcrypt(3)

ПЕРЕВОД

       Русский перевод этой страницы руководства был сделан Yuri  Kozlov  <yuray@komyakino.ru>  и
       Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы  обнаружите  ошибки  в  переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.