メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcMD5.c

MD5 hash algorithm. [詳細]

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

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

Include dependency graph

ソースコードを見る。

マクロ定義

#define DKUTIL_C_MD5_C

関数

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 で定義されています。


マクロ定義

#define DKUTIL_C_MD5_C
 

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


関数

DKC_MD5* WINAPI dkcAllocMD5  ) 
 

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

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

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

参照元 dkcSHO_MD5Init().

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

int WINAPI dkcFreeMD5 DKC_MD5 **  p  ) 
 

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

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

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

参照元 dkcFreeSHO().

00088                                   {
00089     if(NULL==p){
00090         return edk_FAILED;
00091     }
00092     return dkcFree((void **)p);
00093 }

int WINAPI dkcMD5Digest DKC_MD5 p,
BYTE buff,
size_t  size
 

dkcMD5DigestStr()

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

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

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

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

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

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

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

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

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

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

void WINAPI dkcMD5Final DKC_MD5 p  ) 
 

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

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

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

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

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

int WINAPI dkcMD5FinalDigest DKC_MD5 p,
BYTE buff,
size_t  size
 

dkcMD5FinalDigestStr()

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

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

00081                                                                {
00082     dkcMD5Final(p);
00083     return dkcMD5Digest(p,buff,size);
00084 
00085 }

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

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

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

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

00076                                                                   {
00077     dkcMD5Final(p);
00078     return dkcMD5DigestStr(p,buff,size);
00079 }

void WINAPI dkcMD5Init DKC_MD5 p  ) 
 

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

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

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

参照元 dkcAllocMD5(), と dkcSHO_MD5Init().

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

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.c30 行で定義されています。

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

参照元 dkcSHO_MD5Init().

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

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

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

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

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

参照元 dkcMD5Load().

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


dkutil_cに対してTue Feb 22 02:02:28 2005に生成されました。 doxygen 1.3.6