DES_CRYPT(3) — NEWS-OS Programmer’s Manual
名称
des_crypt, ecb_crypt, cbc_crypt, des_setparity − 高速 DES エンクリプション
形式
#include <des_crypt.h>
int ecb_crypt(key, data, datalen, mode)
char ∗key;
char ∗data;
unsigned datalen;
unsigned mode;
int cbc_crypt(key, data, datalen, mode, ivec)
char ∗key;
char ∗data;
unsigned datalen;
unsigned mode;
char ∗ivec;
void des_setparity(key)
char ∗key;
解説
ecb_crypt() および cbc_crypt() は NBS DES (データエンクリプション標準)を実現します。 これらのルーチンは、 crypt(3) に比べて高速で、より一般的な目的をもっています。 これらのルーチンはまた、可能な場合は DES ハードウェアを利用することができます。 ecb_crypt() は、データのブロックを独立してエンクリプトする ECB (電子コードブック)モードでエンクリプトします。 cbc_crypt() は、連続するブロックを一緒に連鎖させる CBC (暗号ブロック連鎖)モードでエンクリプトします。 CBC モードは、ブロックの挿入、削除、および置換に対する保護を行います。 また、クリアなテキストの規則性は暗号テキストには見られません。 ここで、これらのルーチンの使い方を説明します。 最初のパラメータ key は、パリティをもつ 8 バイトのエンクリプションキーです。 このキーのパリティは、 DES の場合は各バイトの下位ビットにありますが、このパリティをセットするには、 des_setparity を使用します。 第2のパラメータ data は、エンクリプトまたはデクリプトされるデータを含みます。 第3のパラメータ datalen は、 データ のバイト単位の長さで、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_HWERR ハードウェアまたはドライバでエラーが発生しました。
DESERR_BADPARAM
ルーチンに対する不良パラメータ。 結果ステータス stat が与えられた場合、マクロ DES_FAILED (stat) は最初の2つのステータスについてだけ偽です。
制限
これらのルーチンは、アメリカ以外の輸出用には使用できません。
NEWS-OSRelease 4.1C