メインページ | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcMD5.c

MD5 hash algorithm. [詳細]

#include "dkcMD5.h"
#include "dkcStdio.h"

dkcMD5.cのインクルード依存関係図

Include dependency graph

ソースコードを見る。

関数

DKC_MD5 *WINAPI dkcAllocMD5 ()
void WINAPI dkcMD5Init (DKC_MD5 *p)
 dkcAllocMD5()から取得した領域を初期化する。

int WINAPI dkcMD5Load (DKC_MD5 *p, const BYTE *pBuffer, DWORD dwSize)
void WINAPI dkcMD5LoadStandard (DKC_MD5 *p, const BYTE *pBuffer, DWORD dwSize)
 dkcSHA1Load() dkcSHA256Load()等と同じ仕様のLoad

void WINAPI dkcMD5Final (DKC_MD5 *p)
int WINAPI dkcMD5Digest (DKC_MD5 *p, BYTE *buff, size_t size)
 dkcMD5DigestStr()

int WINAPI dkcMD5DigestStr (DKC_MD5 *p, char *buff, size_t size)
int WINAPI dkcMD5FinalDigestStr (DKC_MD5 *p, char *buff, size_t size)
int WINAPI dkcMD5FinalDigest (DKC_MD5 *p, BYTE *buff, size_t size)
 dkcMD5FinalDigestStr()

int WINAPI dkcFreeMD5 (DKC_MD5 **p)


説明

MD5 hash algorithm.

覚え書き:
original: http://sourceforge.net/projects/libmd5-rfc/ reconstruct: d金魚

dkcMD5.c で定義されています。


関数

DKC_MD5* WINAPI dkcAllocMD5  ) 
 

戻り値:
DKC_MD5構造体への確保したメモリ領域
覚え書き:
すでにdkcMD5Init()は呼ばれています。

dkcMD5.c15 行で定義されています。

参照先 DKC_MD5, dkcAllocate(), dkcMD5Init(), と NULL.

00015                              {
00016     DKC_MD5 *p = dkcAllocate(sizeof(DKC_MD5));
00017     if(NULL==p){
00018         return NULL;
00019     }
00020     dkcMD5Init(p);
00021     return p;
00022 }

int WINAPI dkcFreeMD5 DKC_MD5 **  p  ) 
 

引数:
p[in][out] dkcAllocMD5()で取得したポインタへのポインタ
戻り値:
上手く開放できたらedk_SUCCEEDED

dkcMD5.c85 行で定義されています。

参照先 DKC_MD5, dkcFree(), edk_FAILED, と NULL.

00085                                   {
00086     if(NULL==p){
00087         return edk_FAILED;
00088     }
00089     return dkcFree(p);
00090 }

int WINAPI dkcMD5Digest DKC_MD5 p,
BYTE buff,
size_t  size
 

dkcMD5DigestStr()

dkcMD5.c56 行で定義されています。

参照先 BYTE, dkc_MD5::d, DKC_MD5, edk_BufferOverFlow, edk_SUCCEEDED, と md5_get_digest().

参照元 dkcMD5FinalDigest().

00056                                                           {
00057     if(size < 16){
00058         return edk_BufferOverFlow;
00059     }
00060     //第二引数のbuffのキャストがバグかもしれない。
00061     md5_get_digest(&(p->d),(BYTE *)buff);
00062     return edk_SUCCEEDED;
00063 }

int WINAPI dkcMD5DigestStr DKC_MD5 p,
char *  buff,
size_t  size
 

引数:
p[in][out] dkcAllocMD5()で取得したポインタ
buff[out] 書き込むバッファへのポインタ
size[in] buffのサイズ
戻り値:
成功したらedk_SUCCEEDEDが返る

dkcMD5.c65 行で定義されています。

参照先 dkc_MD5::d, DKC_MD5, edk_BufferOverFlow, edk_SUCCEEDED, と md5_get_str_digest().

参照元 dkcMD5FinalDigestStr().

00065                                                              {
00066     if(size < 32 + 1){
00067         return edk_BufferOverFlow;
00068     }
00069     md5_get_str_digest(&(p->d),(char *)buff);
00070     return edk_SUCCEEDED;
00071 }

void WINAPI dkcMD5Final DKC_MD5 p  ) 
 

引数:
p[in][out] dkcAllocMD5()で取得したポインタ
覚え書き:
dkcMD5FinalDigest()を使用する事を奨励します。

dkcMD5.c47 行で定義されています。

参照先 dkc_MD5::d, DKC_MD5, md5_finalize(), dkc_MD5::mFinalized, と TRUE.

参照元 dkcMD5FinalDigest(), と dkcMD5FinalDigestStr().

00047                                    {
00048     if(p->mFinalized){
00049         return;
00050     }
00051     md5_finalize(&(p->d));
00052 
00053     p->mFinalized = TRUE;
00054 }

int WINAPI dkcMD5FinalDigest DKC_MD5 p,
BYTE buff,
size_t  size
 

dkcMD5FinalDigestStr()

dkcMD5.c78 行で定義されています。

参照先 BYTE, DKC_MD5, dkcMD5Digest(), と dkcMD5Final().

00078                                                                {
00079     dkcMD5Final(p);
00080     return dkcMD5Digest(p,buff,size);
00081 
00082 }

int WINAPI dkcMD5FinalDigestStr DKC_MD5 p,
char *  buff,
size_t  size
 

参照:
引数、戻り値についてはdkcMD5Digest()と同じです。
覚え書き:
dkcMD5Final()とdkcMD5Digest()を使用するより、この関数の使用を奨励します。

dkcMD5.c73 行で定義されています。

参照先 DKC_MD5, dkcMD5DigestStr(), と dkcMD5Final().

00073                                                                   {
00074     dkcMD5Final(p);
00075     return dkcMD5DigestStr(p,buff,size);
00076 }

void WINAPI dkcMD5Init DKC_MD5 p  ) 
 

dkcAllocMD5()から取得した領域を初期化する。

dkcMD5.c24 行で定義されています。

参照先 dkc_MD5::d, DKC_MD5, FALSE, md5_init(), と dkc_MD5::mFinalized.

参照元 dkcAllocMD5().

00024                                   {
00025     md5_init(&(p->d));
00026     p->mFinalized = FALSE;
00027 }

int WINAPI dkcMD5Load DKC_MD5 p,
const BYTE pBuffer,
DWORD  dwSize
 

引数:
p[in][out] dkcAllocMD5()で取得したポインタ
pBuffer[in] 読み取るバッファへのポインタ
dwSize[in] バッファにアクセスしてOKなサイズ
戻り値:
edk_SUCCEEDEDで成功
覚え書き:
ライブラリの都合により、dkcMD5Load()はINT_MAXより大きいバッファを扱えないため

dkcMD5.c29 行で定義されています。

参照先 BYTE, DKC_MD5, dkcMD5LoadStandard(), edk_FAILED, と edk_SUCCEEDED.

00029                                                                   {
00030     if(dwSize > INT_MAX){
00031         return edk_FAILED;
00032     }
00033 
00034     dkcMD5LoadStandard(p,pBuffer,dwSize);
00035     return edk_SUCCEEDED;
00036 }

void WINAPI dkcMD5LoadStandard DKC_MD5 p,
const BYTE pBuffer,
DWORD  dwSize
 

dkcSHA1Load() dkcSHA256Load()等と同じ仕様のLoad

dkcMD5.c38 行で定義されています。

参照先 BYTE, dkc_MD5::d, DKC_MD5, md5_append(), と dkc_MD5::mFinalized.

参照元 dkcMD5Load().

00038                                                                            {
00039     if(p->mFinalized){
00040         return;
00041     }
00042     md5_append(&(p->d),pBuffer,(int)dwSize);
00043 }


dkutil_cに対してSun Jul 18 22:45:49 2004に生成されました。 doxygen 1.3.6