SophiaFramework UNIVERSE 5.3 |
BREW 2.0 | BREW 2.1 | BREW 3.1 | BREW 4.0 |
---|---|---|---|
○ | ○ | ○ | ○ |
パブリック関数 | |
---|---|
SFCError |
GetResult(
VoidPtr data
, SInt32Ptr size
)
すべての SFBHash::Update 呼び出し終了後のハッシュ結果を取得します。
|
SFCError |
GetResult(
SFXBufferPtr data
)
すべての SFBHash::Update 呼び出し終了後のハッシュ結果を取得します。
|
static SFBHashSmp |
NewInstance(
AEECLSID clsid = AEECLSID_MD5
, SFCErrorPtr exception = null
) SFBHash インスタンスを生成します。
|
Void |
Restart( Void )
ハッシュ操作を再開します。
|
SFCError |
SetKey(
VoidConstPtr key
, SInt32 keySize
)
HMAC 鍵付きハッシュの鍵を初期化します。
|
SFCError |
SetKey(
SFXBufferConstRef key
)
HMAC 鍵付きハッシュの鍵を初期化します。
|
Void |
Update(
VoidPtr data
, SInt32 dataLength
)
ハッシュ オブジェクトにデータを追加更新します。
|
Void |
Update(
SFXBufferPtr data
)
ハッシュ オブジェクトにデータを追加更新します。
|
プロテクト関数 | |
---|---|
static SFBBaseSmp |
FactoryByCreate(
AEECLSID id
, SFCErrorPtr exception = null
)
(SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを生成します。
|
static SFBBaseSmp |
FactoryByQuery(
SFBQuerySmpConstRef query
, AEECLSID id
, SFCErrorPtr exception = null
)
(SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。
|
[ public ] SFCError GetResult( VoidPtr data // ハッシュ結果を取得するデータへのポインタ SInt32Ptr size // バッファ data のサイズへのポインタ // リターン時は、ハッシュ結果のサイズを格納する );
[ public ] SFCError GetResult( SFXBufferPtr data // ハッシュ結果を取得するためのバッファ // サイズは自動的に変換される );
注意:バッファサイズは SInt32 の値までの制限があります。
[ public, static ] SFBHashSmp NewInstance( AEECLSID clsid = AEECLSID_MD5 // ハッシュアルゴリズムの ClassID SFCErrorPtr exception = null // エラー値 );
使用できる ClassID には次のものがあります。
AEECLSID_MD2 |
AEECLSID_MD5 |
AEECLSID_SHA1 |
[ public ] Void Restart(Void);
新しいデータストリームをハッシュする場合に必要となります。
異なるデータストリームを立て続けにハッシュし、ログに表示します。
AChar srcString[] = {"message for you..."}; AChar srcStringNext[] = {"next message for you..."}; AChar result[32] = {0}; SInt32 len = 32; // SFBHash インスタンスを生成する SFBHashSmp hash = SFBHash::NewInstance(); // ハッシュを行う hash->Update(srcString, STRLEN(srcString)); // ハッシュ後の結果を取得する hash->GetResult(result, &len); // ハッシュ後の結果をログに表示する TRACE("*** result: %s ***", result); // 再度ハッシュを行う ZEROAT(result); len = 32; // データストリームの初期化する hash->Restart(); // 1 バイトづつハッシュを行う ACharPtr i = srcStringNext; for (; *i; i++) hash->Update(i, 1); // ハッシュ後の結果を取得する hash->GetResult(result, &len); // ハッシュ後の結果をログに表示する TRACE("*** next result: %s ***", result);
[ public ] SFCError SetKey( VoidConstPtr key // 鍵へのポインタ SInt32 keySize // 鍵サイズ );
[ public ] SFCError SetKey( SFXBufferConstRef key // 鍵へのポインタ );
この関数は、BREW 3.1 から使用可能です
注意 | |
---|---|
この関数をBREW 3.1 以前の BREW で使用すると、アプリケーションがクラッシュします。 |
[ public ] Void Update( VoidPtr data // ハッシュするデータへのポインタ SInt32 dataLength // ハッシュする( pbData に格納された )データの長さ );
[ public ] Void Update( SFXBufferPtr data // ハッシュするデータへのポインタ // null の場合、何もしない );
不連続の長いデータストリームをハッシュする場合、 この関数を複数回呼び出します。
文字列をハッシュし、ログに結果を表示します。
AChar srcString[] = {"message for you..."}; AChar result[32] = {0}; SInt32 len = 32; // SFBHash インスタンスを生成する SFBHashSmp hash = SFBHash::NewInstance(); // ハッシュを行う hash->Update(srcString, STRLEN(srcString)); // ハッシュ後の結果を取得する hash->GetResult(result, &len); // 結果をログに表示する TRACE("*** result: %s ***", result);
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |