plucky (3) ecb_crypt.3.gz

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)