I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
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
|
|
インタフェースの説明として提供されています。
|