#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);
これらのルーチンの使用法を示す。 第 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 バイトの初期化ベクトルである。 この引数はルーチンから戻るときに次の初期化ベクトルに更新される。
結果の状態 stat を与えたとき、マクロ DES_FAILED(stat) が false になるのは、最初の 2 つだけである。
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.
インターフェース | 属性 | 値 |
ecb_crypt(), cbc_crypt(), des_setparity() | Thread safety | MT-Safe |
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]