1 .\" @(#)des_crypt.3 2.1 88/08/11 4.0 RPCSRC; from 1.16 88/03/02 SMI;
3 .\" Taken from libc4 sources, which say:
4 .\" Copyright (C) 1993 Eric Young - can be distributed under GPL.
6 .\" However, the above header line suggests that this file in fact is
7 .\" Copyright Sun Microsystems, Inc (and is provided for unrestricted use,
8 .\" see other Sun RPC sources).
10 .\"*******************************************************************
12 .\" This file was generated with po4a. Translate the source file.
14 .\"*******************************************************************
15 .TH DES_CRYPT 3 2007\-05\-18 "" "Linux Programmer's Manual"
17 des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- 高速な DES 暗号化
21 .\" .B #include <des_crypt.h>
22 \fB#include <rpc/des_crypt.h>\fP
24 \fBint ecb_crypt(char *\fP\fIkey\fP\fB, char *\fP\fIdata\fP\fB, unsigned \fP\fIdatalen\fP\fB,\fP
25 \fB unsigned \fP\fImode\fP\fB);\fP
27 \fBint cbc_crypt(char *\fP\fIkey\fP\fB, char *\fP\fIdata\fP\fB, unsigned \fP\fIdatalen\fP\fB,\fP
28 \fB unsigned \fP\fImode\fP\fB, char *\fP\fIivec\fP\fB);\fP
30 \fBvoid des_setparity(char *\fP\fIkey\fP\fB);\fP
32 \fBint DES_FAILED(int \fP\fIstatus\fP\fB);\fP
35 \fBecb_crypt\fP() と \fBcbc_crypt\fP() は NBS DES (Data Encryption Standard,
36 データ暗号化規格) を実装している。 これらのルーチンは \fBcrypt\fP(3) よりも高速でより一般的な目的に使用できる。
37 利用可能であれば、これらのルーチンは DES ハードウェアを使用することもできる。 \fBecb_crypt\fP() は ECB (Electronic
38 Code Book) モードで暗号化する。 このモードでは (個々の) データのブロックを独立して暗号化する \fBcbc_crypt\fP() は CBC
39 (Cipher Block Chaining) モードで暗号化する。 このモードでは連続するブロックを互いに連鎖させて暗号化する。 CBC
40 はブロックの挿入・削除・置き換えから保護する。 また平文の規則性が暗号文に現れない。
42 これらのルーチンの使用法を示す。 第 1 引き数 \fIkey\fP はパリティ付きの 8 バイトの暗号化鍵である。 鍵のパリティを設定するには
43 \fBdes_setparity\fP() を使うこと。 DES の場合、鍵のパリティは各バイトの最下位ビットである。 第 2 引き数 \fIdata\fP
44 は暗号化または復号化されるデータを含む。 第 3 引き数 \fIdatalen\fP は \fIdata\fP のバイト長であり、8 の倍数でなければならない。 第
45 4 引き数 \fImode\fP はいくつかの値を OR することで作成する。 暗号化の方向 (訳註: 暗号化なのか復号化なのか) を指定するため、
46 \fBDES_ENCRYPT\fP または \fBDES_DECRYPT\fP を OR する。 暗号化をソフトウェアで行うかハードウェアで行うかを指定するため、
47 \fBDES_HW\fP または \fBDES_SW\fP を OR する。 \fBDES_HW\fP が指定されていて、かつハードウェアがない場合、
48 暗号化はソフトウェアで実行されて、ルーチンは \fBDESERR_NOHWDEVICE\fP を返す。 \fBcbc_crypt\fP() において、引き数
49 \fIivec\fP はデータブロックを連鎖させる際の 8 バイトの初期化ベクトルである。 この引き数はルーチンから戻るときに次の初期化ベクトルに更新される。
56 \fBDESERR_NOHWDEVICE\fP
57 暗号化は成功したが、要求されたハードウェアの代わりにソフトウェアで実行された。
60 ハードウェアまたはドライバでエラーが発生した。
68 .\" So far the Sun page
69 .\" Some additions - aeb
70 結果の状態 \fIstat\fP を与えたとき、マクロ \fBDES_FAILED(\fP\fIstat\fP\fB)\fP が false になるのは、最初の 2
73 これらのルーチンは libc 4.6.27 以降と glibc 2.1 以降に存在する。
75 4.3BSD. POSIX.1\-2001 にはない。
77 \fBdes\fP(1), \fBcrypt\fP(3), \fBxcrypt\fP(3)