Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       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  はブロックの挿入・削除・置き
       換えから保護する。 また平文の規則性が暗号文に現れない。

       これらのルーチンの使用法を示す。 第 1 引数 key はパリティ付きの 8 バイトの暗号化鍵である。
       鍵のパリティを設定するには des_setparity()  を使うこと。 DES  の場合、鍵のパリティは各バイ
       トの最下位ビットである。 第 2 引数 data は暗号化または復号化されるデータを含む。 第 3 引数
       datalendata のバイト長であり、8 の倍数でなければならない。 第 4 引数 mode はいくつかの
       値を  OR  することで作成する。  暗号化の方向 (訳註: 暗号化なのか復号化なのか) を指定するた
       め、 DES_ENCRYPT または DES_DECRYPT を OR する。  暗号化をソフトウェアで行うかハードウェア
       で行うかを指定するため、  DES_HW  または DES_SW を OR する。 DES_HW が指定されていて、かつ
       ハードウェアがない場合、 暗号化はソフトウェアで実行されて、ルーチンは DESERR_NOHWDEVICE を
       返す。  cbc_crypt()  において、引数 ivec はデータブロックを連鎖させる際の 8 バイトの初期化
       ベクトルである。 この引数はルーチンから戻るときに次の初期化ベクトルに更新される。

返り値

       DESERR_NONE
              エラーなし。

       DESERR_NOHWDEVICE
              暗号化は成功したが、要求されたハードウェアの代わりにソフトウェアで実行された。

       DESERR_HWERROR
              ハードウェアまたはドライバでエラーが発生した。

       DESERR_BADPARAM
              ルーチンへの引数が不正である。

       結果の状態 stat を与えたとき、マクロ DES_FAILED(stat) が false になるのは、最初の 2 つだけ
       である。

バージョン

       これらの関数は glibc のバージョン 2.1 で追加された。

       Because  they  employ  the  DES  block  cipher,  which  is  no  longer  considered secure,
       ecb_crypt(), ecb_crypt(), crypt_r(), and  des_setparity()  were  removed  in  glibc  2.28.
       Applications should switch to a modern cryptography library, such as libgcrypt.

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌──────────────────────────┬───────────────┬─────────┐
       │インターフェース属性      │
       ├──────────────────────────┼───────────────┼─────────┤
       │ecb_crypt(), cbc_crypt(), │ Thread safety │ MT-Safe │
       │des_setparity()           │               │         │
       └──────────────────────────┴───────────────┴─────────┘

準拠

       4.3BSD. POSIX.1 にはない。

関連項目

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

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの
       説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

                                            2020-04-11                               DES_CRYPT(3)