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

dkcMD5.c

説明を見る。
00001 
00011 #include "dkcMD5.h"
00012 #include "dkcStdio.h"
00013 
00014 
00015 DKC_MD5 *WINAPI dkcAllocMD5(){
00016     DKC_MD5 *p = dkcAllocate(sizeof(DKC_MD5));
00017     if(NULL==p){
00018         return NULL;
00019     }
00020     dkcMD5Init(p);
00021     return p;
00022 }
00023 
00024 void WINAPI dkcMD5Init(DKC_MD5 *p){
00025     md5_init(&(p->d));
00026     p->mFinalized = FALSE;
00027 }
00028 
00029 int WINAPI dkcMD5Load(DKC_MD5 *p,const BYTE *pBuffer,DWORD dwSize){
00030     if(dwSize > INT_MAX){
00031         return edk_FAILED;
00032     }
00033 
00034     dkcMD5LoadStandard(p,pBuffer,dwSize);
00035     return edk_SUCCEEDED;
00036 }
00037 
00038 void WINAPI dkcMD5LoadStandard(DKC_MD5 *p,const BYTE *pBuffer,DWORD dwSize){
00039     if(p->mFinalized){
00040         return;
00041     }
00042     md5_append(&(p->d),pBuffer,(int)dwSize);
00043 }
00044 
00045 
00046 
00047 void WINAPI dkcMD5Final(DKC_MD5 *p){
00048     if(p->mFinalized){
00049         return;
00050     }
00051     md5_finalize(&(p->d));
00052 
00053     p->mFinalized = TRUE;
00054 }
00055 
00056 int WINAPI dkcMD5Digest(DKC_MD5 *p,BYTE *buff,size_t size){
00057     if(size < 16){
00058         return edk_BufferOverFlow;
00059     }
00060     //第二引数のbuffのキャストがバグかもしれない。
00061     md5_get_digest(&(p->d),(BYTE *)buff);
00062     return edk_SUCCEEDED;
00063 }
00064 
00065 int WINAPI dkcMD5DigestStr(DKC_MD5 *p,char *buff,size_t size){
00066     if(size < 32 + 1){
00067         return edk_BufferOverFlow;
00068     }
00069     md5_get_str_digest(&(p->d),(char *)buff);
00070     return edk_SUCCEEDED;
00071 }
00072 
00073 int WINAPI dkcMD5FinalDigestStr(DKC_MD5 *p,char *buff,size_t size){
00074     dkcMD5Final(p);
00075     return dkcMD5DigestStr(p,buff,size);
00076 }
00077 
00078 int WINAPI dkcMD5FinalDigest(DKC_MD5 *p,BYTE *buff,size_t size){
00079     dkcMD5Final(p);
00080     return dkcMD5Digest(p,buff,size);
00081 
00082 }
00083 
00084 
00085 int WINAPI dkcFreeMD5(DKC_MD5 **p){
00086     if(NULL==p){
00087         return edk_FAILED;
00088     }
00089     return dkcFree(p);
00090 }

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