#include <nitro/crypto.h>
void CRYPTO_RC4Fast(const void* key, u32 key_len, void* data, u32 data_len);
| key | RC4 アルゴリズムによる暗号化/復号を行うための鍵のバイト列へのポインタを指定します。 |
|---|---|
| key_len | key で指定した鍵の長さを指定します。鍵の長さは 16 バイト以下である必要があり、それより大きい場合は 16 バイトに切り詰められます。 |
| data | RC4 アルゴリズムによる暗号化/復号を行う対象のデータへのポインタを指定します。 |
| data_len | data で指定したデータの長さを指定します。 |
なし。
共通鍵暗号である RC4 アルゴリズムによる暗号化/復号を行います。RC4 アルゴリズムは暗号化と復号を同一の関数で行います。
data に格納されているデータに対して、直接処理を行い、変換結果が上書きされます。
この関数は CRYPTO_RC4FastInit 関数と CRYPTO_RC4FastEncrypt 関数を続けて呼び出すインライン関数として定義されています。
CRYPTO_RC4 関数と CRYPTO_RC4Fast 関数の違いは使用するメモリ量と処理速度です。
CRYPTO_RC4 関数は実行時にスタックに CRYPTORC4Context 構造体を取りますので少なくとも 260 バイト以上が必要になります。
一方、CRYPTO_RC4Fast 関数は CRYPTORC4FastContext 構造体を取りますので、1032 バイト以上のスタックを使用します。
速度に関しては、十分大きなサイズのデータを扱う場合、CRYPTO_RC4Fast 関数のほうが1.5倍程度速く処理を行います。
RC4 アルゴリズムを使用する際の詳細な注意事項に関しましては、「RC4 アルゴリズムによる暗号化の概要」を参照してください。
CRYPTO_RC4FastEncrypt, CRYPTO_RC4FastInit
2008/2/25 初版