DES_CRYPT
Section: Linux Programmer's Manual (3)
Updated: 2007-05-18
Index
JM Home Page
roff page
名前
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 つだけである。
バージョン
これらのルーチンは libc 4.6.27 以降と glibc 2.1 以降に存在する。
準拠
4.3BSD. POSIX.1-2001 にはない。
関連項目
des(1),
crypt(3),
xcrypt(3)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- バージョン
-
- 準拠
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:36 GMT, November 19, 2007