.\" @(#)des_crypt.3 2.1 88/08/11 4.0 RPCSRC; from 1.16 88/03/02 SMI; .\" .\" Taken from libc4 sources, which say: .\" Copyright (C) 1993 Eric Young - can be distributed under GPL. .\" .\" However, the above header line suggests that this file in fact is .\" Copyright Sun Microsystems, Inc (and is provided for unrestricted use, .\" see other Sun RPC sources). .\" .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) .\" can be distributed under GPL. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Japanese Version Copyright (c) 2004 Yuichi SATO .\" all rights reserved. .\" Translated Fri Jul 23 05:53:35 JST 2004 .\" by Yuichi SATO .\" .TH DES_CRYPT 3 2013\-09\-18 "" "Linux Programmer's Manual" .SH 名前 des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- 高速な DES 暗号化 .SH 書式 .nf .\" Sun version .\" .B #include \fB#include \fP .LP \fBint ecb_crypt(char *\fP\fIkey\fP\fB, char *\fP\fIdata\fP\fB, unsigned \fP\fIdatalen\fP\fB,\fP \fB unsigned \fP\fImode\fP\fB);\fP .LP \fBint cbc_crypt(char *\fP\fIkey\fP\fB, char *\fP\fIdata\fP\fB, unsigned \fP\fIdatalen\fP\fB,\fP \fB unsigned \fP\fImode\fP\fB, char *\fP\fIivec\fP\fB);\fP .LP \fBvoid des_setparity(char *\fP\fIkey\fP\fB);\fP .LP \fBint DES_FAILED(int \fP\fIstatus\fP\fB);\fP .fi .SH 説明 \fBecb_crypt\fP() と \fBcbc_crypt\fP() は NBS DES (Data Encryption Standard, データ暗号化規格) を実装している。 これらのルーチンは \fBcrypt\fP(3) よりも高速でより一般的な目的に使用できる。 利用可能であれば、これらのルーチンは DES ハードウェアを使用することもできる。 \fBecb_crypt\fP() は ECB (Electronic Code Book) モードで暗号化する。 このモードでは (個々の) データのブロックを独立して暗号化する \fBcbc_crypt\fP() は CBC (Cipher Block Chaining) モードで暗号化する。 このモードでは連続するブロックを互いに連鎖させて暗号化する。 CBC はブロックの挿入・削除・置き換えから保護する。 また平文の規則性が暗号文に現れない。 .LP これらのルーチンの使用法を示す。 第 1 引き数 \fIkey\fP はパリティ付きの 8 バイトの暗号化鍵である。 鍵のパリティを設定するには \fBdes_setparity\fP() を使うこと。 DES の場合、鍵のパリティは各バイトの最下位ビットである。 第 2 引き数 \fIdata\fP は暗号化または復号化されるデータを含む。 第 3 引き数 \fIdatalen\fP は \fIdata\fP のバイト長であり、8 の倍数でなければならない。 第 4 引き数 \fImode\fP はいくつかの値を OR することで作成する。 暗号化の方向 (訳註: 暗号化なのか復号化なのか) を指定するため、 \fBDES_ENCRYPT\fP または \fBDES_DECRYPT\fP を OR する。 暗号化をソフトウェアで行うかハードウェアで行うかを指定するため、 \fBDES_HW\fP または \fBDES_SW\fP を OR する。 \fBDES_HW\fP が指定されていて、かつハードウェアがない場合、 暗号化はソフトウェアで実行されて、ルーチンは \fBDESERR_NOHWDEVICE\fP を返す。 \fBcbc_crypt\fP() において、引き数 \fIivec\fP はデータブロックを連鎖させる際の 8 バイトの初期化ベクトルである。 この引き数はルーチンから戻るときに次の初期化ベクトルに更新される。 .SH 返り値 .PD 0 .TP 20 \fBDESERR_NONE\fP エラーなし。 .TP \fBDESERR_NOHWDEVICE\fP 暗号化は成功したが、要求されたハードウェアの代わりにソフトウェアで実行された。 .TP \fBDESERR_HWERROR\fP ハードウェアまたはドライバでエラーが発生した。 .TP \fBDESERR_BADPARAM\fP ルーチンへの引き数が不正である。 .PD .LP .\" .BR DES_FAILED\c .\" .BR ( stat ) .\" So far the Sun page .\" Some additions - aeb 結果の状態 \fIstat\fP を与えたとき、マクロ \fBDES_FAILED(\fP\fIstat\fP\fB)\fP が false になるのは、最初の 2 つだけである。 .SH バージョン これらのルーチンは libc 4.6.27 以降と glibc 2.1 以降に存在する。 .SH 属性 .SS "マルチスレッディング (pthreads(7) 参照)" 関数 \fBecb_crypt\fP(), \fBcbc_crypt\fP(), \fBdes_setparity\fP() はスレッドセーフである。 .SH 準拠 4.3BSD. POSIX.1\-2001 にはない。 .SH 関連項目 \fBdes\fP(1), \fBcrypt\fP(3), \fBxcrypt\fP(3) .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。