

#include <nitro/math/checksum.h>
void MATH_Checksum8Update( MATHChecksum8Context *context, const void* input, u32 length );
void MATH_Checksum16Update( MATHChecksum16Context *context, const void* input, u32 length );
| context | 各種 Checksum 計算用のコンテキスト構造体へのポインタ。 |
| input | 入力データへのポインタ。 |
| length | 入力データのサイズ。 |
なし。
この関数は、各種 Checksum によるハッシュ値を入力データによって更新します。context 引数はあらかじめMATH_Checksum*Init()で初期化してある必要があります。
この関数を任意の回数呼び出した後に、MATH_Checksum*GetHash()を使用してハッシュ値を得ます。
入力データには任意のサイズ・任意のアラインメント位置のものが使用できます。
8bit Checksum は 8bit のハッシュ値を求めるためのアルゴリズムです。1の補数和の1の補数を 8bit 単位で計算します。
16bit Checksum は 16bit のハッシュ値を求めるためのアルゴリズムです。1の補数和の1の補数を 16bit 単位で計算します。
16bit Checksum は IP, UDP, TCP などで使用する IP Checksum、または Internet Checksum と呼ばれるものと同じ値を返します。Internet Checksum の詳細は IETF (The Internet Engineering Task Force) が発行している RFC (Request For Comments) 1071 などを参照してください。
MATH_Checksum*Init, MATH_Checksum*GetHash
2005/04/12 初版