Provided by: manpages-ja-dev_0.5.0.0.20210215+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 以降に存在する。

属性

   マルチスレッディング (pthreads(7) 参照)
       関数 ecb_crypt(), cbc_crypt(), des_setparity() はスレッドセーフである。

準拠

       4.3BSD. POSIX.1-2001 にはない。

関連項目

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

この文書について

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

                                            2014-08-19                               DES_CRYPT(3)