DES_CRYPT(3) FreeBSD ライブラリ関数マニュアル DES_CRYPT(3)
名称
des_crypt, ecb_crypt, cbc_crypt, des_setparity − 高速 DES 暗号化 |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <rpc/des_crypt.h> int |
ecb_crypt(char *key, char *data, unsigned datalen, unsigned mode); int |
cbc_crypt(char *key, char *data, unsigned datalen, unsigned mode, char *ivec); void |
des_setparity(char *key); |
解説 |
ecb_crypt() と cbc_crypt() は、 NBS DES (Data Encryption Standard) を実現 しています。これらのルーチンは、 crypt(3) より高速で汎用的です。また、 DES ハードウェアが用意されていれば、それも利用できます。 ecb_crypt() は、 ECB (Electronic Code Book) モードで暗号化します。これはデータのブロックを 独立に暗号化するものです。 cbc_crypt() は、 CBC (Cipher Block Chaining) モードで暗号化します。これは連続するブロックを一つにつなげるものです。 CBC モードは、ブロックの挿入、削除、置き換えに対する保護を行ないます。ま た、通常のテキストにおける正規性は暗号テキストには現れません。 これらのルーチンを使用する方法は次のとおりです。最初のパラメータ key, は、パリティ付き 8 バイトの暗号化キーです。キーのパリティ ( DES の場合、 これは各バイトの下位ビットにあります) を設定するためには、 des_setparity() を使用します。2 番めのパラメータ data には、暗号化または 暗号解除されるデータが入っています。 3 番めのパラメータ datalen は、 data の長さ (バイト単位) であり、これは 8 の倍数でなければなりません。 4 番め のパラメータ mode は、いくつかのものの論理和 ( OR’ing ) によって作成され ます。暗号化の方向に関しては、 DES_ENCRYPT か DES_DECRYPT どちらかの 論理 和を、ソフトウェア対ハードウェアの暗号化については、 DES_HW か DES_SW の どちらかの 論理和を取り、 DES_HW が指定されており、しかもハードウェアがな い場合は、暗号化はソフトウェアで実行され、ルーチンは DESERR_NOHWDEVICE を 返します。 cbc_crypt() の場合、パラメータ ivec はチェイン作成用の 8 バイ トの初期化ベクトルです。これは戻り時に、次の初期化ベクトルへと更新されま す。 |
エラー
[DESERR_NONE]
エラーなし。 終了コード stat が与えられると、マクロ DES_FAILED(stat) が偽になるのは、 最初の 2 つのステータスについてだけです。 関連項目 |
制約
これらのルーチンは RPCSRC 4.0 では利用できません。この情報は Secure RPC で求められる DES インタフェースの説明として提供されています。 FreeBSD 10.0 October 6, 1987 FreeBSD 10.0 |