113 lines
2.8 KiB
Groff
113 lines
2.8 KiB
Groff
.\" @(#)des_crypt.3 2.1 88/08/11 4.0 RPCSRC; from 1.16 88/03/02 SMI;
|
|
.\" %FreeBSD: src/lib/libc/rpc/des_crypt.3,v 1.4.2.3 2001/12/14 18:33:56 ru Exp %
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd October 6, 1987
|
|
.Dt DES_CRYPT 3
|
|
.Os
|
|
.Sh 名称
|
|
.Nm des_crypt , ecb_crypt , cbc_crypt , des_setparity
|
|
.Nd 高速 DES 暗号化
|
|
.Sh ライブラリ
|
|
.Lb libc
|
|
.Sh 書式
|
|
.In rpc/des_crypt.h
|
|
.Ft int
|
|
.Fn ecb_crypt "char *key" "char *data" "unsigned datalen" "unsigned mode"
|
|
.Ft int
|
|
.Fn cbc_crypt "char *key" "char *data" "unsigned datalen" "unsigned mode" "char *ivec"
|
|
.Ft void
|
|
.Fn des_setparity "char *key"
|
|
.Sh 解説
|
|
.Fn ecb_crypt
|
|
と
|
|
.Fn cbc_crypt
|
|
は、
|
|
.Tn NBS
|
|
.Tn DES
|
|
(Data Encryption Standard) を実現しています。これらのルーチンは、
|
|
.Xr crypt 3
|
|
より高速で汎用的です。また、
|
|
.Tn DES
|
|
ハードウェアが用意されていれば、それも利用できます。
|
|
.Fn ecb_crypt
|
|
は、
|
|
.Tn ECB
|
|
(Electronic Code Book) モードで暗号化します。
|
|
これはデータのブロックを独立に暗号化するものです。
|
|
.Fn cbc_crypt
|
|
は、
|
|
.Tn CBC
|
|
(Cipher Block Chaining) モードで暗号化します。これは
|
|
連続するブロックを一つにつなげるものです。
|
|
.Tn CBC
|
|
モードは、ブロックの挿入、削除、置き換えに対する保護を行ないます。
|
|
また、通常のテキストにおける正規性は暗号テキストには現れません。
|
|
.Pp
|
|
これらのルーチンを使用する方法は次のとおりです。最初のパラメータ
|
|
.Fa key ,
|
|
は、パリティ付き 8 バイトの暗号化キーです。キーのパリティ (
|
|
.Tn DES
|
|
の場合、これは各バイトの下位ビットにあります) を設定するためには、
|
|
.Fn des_setparity
|
|
を使用します。2 番めのパラメータ
|
|
.Fa data
|
|
には、暗号化または暗号解除されるデータが入っています。
|
|
3 番めのパラメータ
|
|
.Fa datalen
|
|
は、
|
|
.Fa data
|
|
の長さ (バイト単位) であり、これは 8 の倍数でなければなりません。
|
|
4 番めのパラメータ
|
|
.Fa mode
|
|
は、いくつかのものの論理和 (
|
|
.Em OR Ns 'ing
|
|
) によって作成されます。暗号化の方向に関しては、
|
|
.Dv DES_ENCRYPT
|
|
か
|
|
.Dv DES_DECRYPT
|
|
どちらかの
|
|
.Em 論理和
|
|
を、ソフトウェア対ハードウェアの暗号化については、
|
|
.Dv DES_HW
|
|
か
|
|
.Dv DES_SW
|
|
のどちらかの
|
|
.Em 論理和
|
|
を取り、
|
|
.Dv DES_HW
|
|
が指定されており、しかもハードウェアがない場合は、
|
|
暗号化はソフトウェアで実行され、ルーチンは
|
|
.Er DESERR_NOHWDEVICE
|
|
を返します。
|
|
.Fn cbc_crypt
|
|
の場合、パラメータ
|
|
.Fa ivec
|
|
はチェイン作成用の 8 バイトの初期化ベクトルです。
|
|
これは戻り時に、次の初期化ベクトルへと更新されます。
|
|
.Sh エラー
|
|
.Bl -tag -width [DESERR_NOHWDEVICE] -compact
|
|
.It Bq Er DESERR_NONE
|
|
エラーなし。
|
|
.It Bq Er DESERR_NOHWDEVICE
|
|
暗号化処理は成功しましたが、要求されたハードウェアではなく
|
|
ソフトウェアで行われました。
|
|
.It Bq Er DESERR_HWERR
|
|
ハードウェアまたはドライバでエラーが発生しました。
|
|
.It Bq Er DESERR_BADPARAM
|
|
ルーチンに間違ったパラメータが指定されました。
|
|
.El
|
|
.Pp
|
|
終了コード
|
|
.Va stat
|
|
が与えられると、マクロ
|
|
.Fn DES_FAILED stat
|
|
が偽になるのは、最初の 2 つのステータスについてだけです。
|
|
.Sh 関連項目
|
|
.\" .Xr des 1 ,
|
|
.Xr crypt 3
|
|
.Sh 制約
|
|
これらのルーチンは RPCSRC 4.0 では利用できません。
|
|
この情報は Secure RPC で求められる
|
|
.Tn DES
|
|
インタフェースの説明として提供されています。
|