前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework 4.1
SFBHashCTX
IHashCTX インターフェースのラッパークラスです。
#include <SFBHashCTX.h.hpp>
class SFBHashCTX : public SFBQuery;
SFMTYPEDEFWRAPPER(SFBHashCTX)

継承図

SFBHashCTX クラスの継承図

バージョン

BREW 2.0 BREW 2.1 BREW 3.0 BREW 3.1

参照

BREW API IHashCTX

メンバ

パブリック関数
SFCError Final( VoidPtr hash , SInt32 hashSize , VoidPtr result , SInt32Ptr resultSize )
Final( SFXBufferPtr hash , SFXBufferPtr result )
SFBHashCTX::Update の呼び出し完了後にハッシュ結果を取得します。
Void Init( VoidPtr hash , SInt32 hashSize )
Init( SFXBufferPtr hash )
ハッシュ開始前、またはハッシュ処理を再開始するために呼び出します。
static
SFBHashCTXSmp
NewInstance( AEECLSID clsid )
SFBHashCTX クラスのインスタンスを生成します。
SFCError SetKey( VoidPtr ctx , SInt32 ctxSize , VoidConstPtr key , SInt32 keySize )
SetKey( SFXBufferPtr ctx , SFXBufferConstRef key )
HMAC 鍵付きハッシュの鍵を初期化します。
Void Update( VoidPtr hash , SInt32 hashSize , VoidConstPtr data , SInt32 dataLength )
Update( SFXBufferPtr hash , SFXBufferConstRef data )
ハッシュオブジェクトにデータを追加更新します。
SFCError QueryInterface( AEECLSID clsid , VoidHandle handle ) (SFBQuery から継承)
QueryInterface( AEECLSID clsid , SFBBaseSmpPtr handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFBBaseSmp QueryInterface( AEECLSID clsid ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
Void Self( AEECLSID clsidReq , SFBQuerySmpPtr clone , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インターフェースで実装するときに使います。
SFBQuerySmp Self( AEECLSID clsidReq , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インターフェースで実装するときに使います。

SFBHashCTX::Final
SFBHashCTX::Update の呼び出し完了後にハッシュ結果を取得します。
[ public ]
SFCError Final(
    VoidPtr hash           // ハッシュ コンテキスト構造体へのポインター
    SInt32 hashSize        // ハッシュ コンテキスト構造体のサイズ
    VoidPtr result         // ハッシュ結果を取得するデータへのポインター
    SInt32Ptr resultSize   // バッファ result のサイズへのポインター
                           // リターン時は、ハッシュ結果のサイズを格納する
);
[ public ]
SFCError Final(
    SFXBufferPtr hash     // ハッシュ コンテキスト構造体へのポインター
    SFXBufferPtr result   // ハッシュ結果を取得するデータへのポインター
                           // サイズは自動的に変更される
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 引数が不正なとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED
  • hashSize が、要求されたコンテキストサイズよりも小さいとき : AEESEC_HASH_INVALID_CTX

解説

バッファサイズは SInt32 の値までの制限があります。

参照

BREW API IHASHCTX_Final


SFBHashCTX::Init
ハッシュ開始前、またはハッシュ処理を再開始するために呼び出します。
[ public ]
Void Init(
    VoidPtr hash      // ハッシュコンテキスト構造体へのポインター
    SInt32 hashSize   // ハッシュコンテキスト構造体のサイズ
);
[ public ]
Void Init(
    SFXBufferPtr hash   // ハッシュコンテキスト構造体へのポインター
                        // null の場合、何もしない
);

解説

これは、新しいデータストリームをハッシュする場合に必要となります。

参照

BREW API IHASHCTX_Init


SFBHashCTX::NewInstance
SFBHashCTX クラスのインスタンスを生成します。
[ public, static ]
SFBHashCTXSmp NewInstance(
    AEECLSID clsid   // ハッシュアルゴリズムの ClassID 
);

解説

使用できる ClassID には次のものがあります。

AEECLSID_MD2
AEECLSID_MD5
AEECLSID_SHA1


SFBHashCTX::SetKey
HMAC 鍵付きハッシュの鍵を初期化します。
[ public ]
SFCError SetKey(
    VoidPtr ctx        // ハッシュコンテキスト構造体へのポインター
    SInt32 ctxSize     // ハッシュコンテキスト構造体のサイズ 
    VoidConstPtr key   // 鍵へのポインター
    SInt32 keySize     // 鍵サイズ 
);
[ public ]
SFCError SetKey(
    SFXBufferPtr ctx        // ハッシュコンテキスト構造体へのポインター
    SFXBufferConstRef key   // 鍵へのポインター 
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 鍵が無効のとき : AEE_CRYPT_INVALID_KEY

バージョン

この関数は、BREW 3.0.1 から使用可能です

解説

[Caution] 注意

この関数をBREW 3.0.1 以前の BREW で使用すると、アプリケーションがクラッシュします。

参照

BREW API IHASHCTX_Update


SFBHashCTX::Update
ハッシュオブジェクトにデータを追加更新します。
[ public ]
Void Update(
    VoidPtr hash        // ハッシュコンテキスト構造体へのポインター
    SInt32 hashSize     // ハッシュコンテキスト構造体のサイズ
    VoidConstPtr data   // ハッシュするデータへのポインター
    SInt32 dataLength   // ハッシュする( data に格納された ) データの長さ
);
[ public ]
Void Update(
    SFXBufferPtr hash        // ハッシュコンテキスト構造体へのポインター
                             // null の場合、何もしない
    SFXBufferConstRef data   // ハッシュするデータへのポインター
);

解説

不連続の長いデータストリームをハッシュする場合、 この関数を複数回呼び出します。

参照

BREW API IHASHCTX_Update