#include <nitro/crypto.h>
void CRYPTO_RC4Encrypt(CRYPTORC4Context* context, const void* in, u32 length, void* out);
| context | CRYPTO_RC4Init関数で予め鍵を設定した CRYPTORC4Context 型の構造体を指定します。 |
|---|---|
| in | RC4 アルゴリズムによる暗号化/復号を行う対象のデータへのポインタを指定します。 |
| length | in で指定したデータの長さを指定します。 |
| out | 暗号化/復号を行った結果を格納する先のポインタを指定します。 |
ありません。
共通鍵暗号である RC4 アルゴリズムによる暗号化/復号を行います。
RC4 アルゴリズムは暗号化と復号を同一の関数で行います。
in に格納されているデータに対して処理を行い、変換結果を out に出力します。in と out に同じポインタを指定して上書きすることも可能です。
CRYPTO_RC4* 関数と CRYPTO_RC4Fast* 関数の違いは使用するメモリ量と処理速度です。
CRYPTO_RC4* 関数で使用する CRYPTORC4Context 構造体は 260 バイトですが、
CRYPTO_RC4Fast* 関数で使用する CRYPTORC4FastContext 構造体は 1032 バイトを使用します。
また、十分大きなサイズのデータを扱う場合、CRYPTO_RC4FastEncrypt 関数のほうが1.5倍程度速く処理を行います。
ただし、速度差が出るのは in と out に同じポインタを与えた場合であり、異なるポインタを与えた場合は
CRYPTO_RC4Encrypt 関数と CRYPTO_RC4FastEncrypt 関数であまり速度に違いはでません。
RC4 アルゴリズムを使用する際の詳細な注意事項に関しましては、「RC4 アルゴリズムによる暗号化の概要」を参照してください。
2008/2/25 初版