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

名前
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 引数 datalen は data のバイト長であり、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)