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

dkcHash.h

lots of Hash Algorithm [詳細]

#include "dkcOSIndependent.h"
#include "st.h"
#include "dkcSHA.h"
#include "dkcMD5.h"

dkcHash.hのインクルード依存関係図

Include dependency graph

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

Included by dependency graph

ソースコードを見る。

構成

struct  dkc_SecureHashObject
 DKC_SHOの名前は廃止する可能性アリ. [詳細]


型定義

typedef int(WINAPI * DKC_SHO_INIT_F_TYPE )(void *)
typedef void(WINAPI * DKC_SHO_LOAD_F_TYPE )(void *, const BYTE *pBuffer, DWORD dwSize)
typedef void(WINAPI * DKC_SHO_FINAL_F_TYPE )(void *p)
typedef int(WINAPI * DKC_SHO_DIGESTSTR_F_TYPE )(void *p, char *buff, size_t size)
typedef int(WINAPI * DKC_SHO_DIGEST_F_TYPE )(void *p, BYTE *buff, size_t size)
typedef dkc_SecureHashObject DKC_SECURE_HASH_OBJECT
 DKC_SHOの名前は廃止する可能性アリ.

typedef dkc_SecureHashObject DKC_SHO
 DKC_SHOの名前は廃止する可能性アリ.


関数

DKC_SECURE_HASH_OBJECT *WINAPI dkcAllocSHO (UINT option)
int WINAPI dkcFreeSHO (DKC_SECURE_HASH_OBJECT **pp)
void WINAPI dkcSHOInit (DKC_SECURE_HASH_OBJECT *p)
void WINAPI dkcSHOLoad (DKC_SECURE_HASH_OBJECT *p, const BYTE *pBuffer, DWORD dwSize)
void WINAPI dkcSHOFinal (DKC_SECURE_HASH_OBJECT *p)
int WINAPI dkcSHODigestStr (DKC_SECURE_HASH_OBJECT *p, char *buff, size_t size)
int WINAPI dkcSHODigest (DKC_SECURE_HASH_OBJECT *p, BYTE *buff, size_t size)
DKC_EXTERN int WINAPI dkcSecureHashCalculateBinaryDigest (UINT hash_option, BYTE *digest_dest, size_t destsize, const BYTE *data, size_t data_size)
 バイナリでのハッシュを出力をする

DKC_EXTERN int WINAPI dkcSecureHashCalculateStringDigest (UINT hash_option, char *digest_dest, size_t destsize, const BYTE *data, size_t data_size)
 文字列の出力をする その他引数等は dkcSecureHashCalculateBinaryDigest()

DKC_EXTERN uint32 dkcHash24 (uint8 *, size_t)
DKC_EXTERN uint16 dkcHash16 (uint8 *, size_t)
DKC_EXTERN uint8 dkcHash8 (uint8 *, size_t)


説明

lots of Hash Algorithm

dkcHash.h で定義されています。


型定義

typedef struct dkc_SecureHashObject DKC_SECURE_HASH_OBJECT
 

DKC_SHOの名前は廃止する可能性アリ.

参照元 dkcAllocSHO(), dkcFreeSHO(), dkcHMACFinal(), dkcSHO_MD5Init(), dkcSHO_SHA1Init(), dkcSHO_SHA256Init(), dkcSHO_SHA384Init(), dkcSHO_SHA512Init(), dkcSHODigest(), dkcSHODigestStr(), dkcSHOFinal(), dkcSHOInit(), dkcSHOLoad(), と shc().

typedef struct dkc_SecureHashObject DKC_SHO
 

DKC_SHOの名前は廃止する可能性アリ.

typedef int(WINAPI * DKC_SHO_DIGEST_F_TYPE)(void *p,BYTE *buff,size_t size)
 

dkcHash.h17 行で定義されています。

参照元 dkcSHODigest().

typedef int(WINAPI * DKC_SHO_DIGESTSTR_F_TYPE)(void *p,char *buff,size_t size)
 

dkcHash.h16 行で定義されています。

参照元 dkcSHODigestStr().

typedef void(WINAPI * DKC_SHO_FINAL_F_TYPE)(void *p)
 

dkcHash.h15 行で定義されています。

参照元 dkcSHOFinal().

typedef int(WINAPI * DKC_SHO_INIT_F_TYPE)(void *)
 

dkcHash.h13 行で定義されています。

参照元 dkcSHOInit().

typedef void(WINAPI * DKC_SHO_LOAD_F_TYPE)(void *,const BYTE *pBuffer,DWORD dwSize)
 

dkcHash.h14 行で定義されています。

参照元 dkcSHOLoad().


関数

DKC_SECURE_HASH_OBJECT* WINAPI dkcAllocSHO UINT  option  ) 
 

dkcHash.c97 行で定義されています。

参照先 check_init(), DKC_SECURE_HASH_OBJECT, DKC_SHO_HASH_INIT_F_TYPE, dkcAllocate(), dkcFreeSHO(), dkcSHO_MD5Init(), dkcSHO_SHA1Init(), dkcSHO_SHA256Init(), dkcSHO_SHA384Init(), dkcSHO_SHA512Init(), dkc_SecureHashObject::mObj, dkc_SecureHashObject::mOption, と NULL.

参照元 dkcAllocHMAC(), と shc().

00098 {
00099     DKC_SECURE_HASH_OBJECT *p;
00100     DKC_SHO_HASH_INIT_F_TYPE init_func;
00101 
00102     check_init();
00103     p = dkcAllocate(sizeof(DKC_SECURE_HASH_OBJECT));
00104     if(NULL==p){
00105         return NULL;
00106     }
00107 
00108     {
00109         switch(option)
00110         {
00111         case edkcSH_MD5:
00112             init_func = dkcSHO_MD5Init;
00113             break;
00114         case edkcSH_SHA1:
00115             init_func = dkcSHO_SHA1Init;
00116             break;
00117         case edkcSH_SHA256:
00118             init_func = dkcSHO_SHA256Init;
00119             break;
00120         case edkcSH_SHA384:
00121             init_func = dkcSHO_SHA384Init;
00122             break;
00123         case edkcSH_SHA512:
00124             init_func = dkcSHO_SHA512Init;
00125             break;
00126         default:
00127             goto Error;
00128         }
00129     }
00130 
00131     //各ハッシュに応じた初期化
00132     init_func(p);
00133     if(NULL==p->mObj){
00134         goto Error;
00135     }
00136     p->mOption = option;
00137     //dkcAllocate()はmemset(0)
00138     //p->mInited = 0;
00139 
00140 
00141     return p;
00142 Error:
00143     dkcFreeSHO(&p);
00144     return NULL;
00145 }

int WINAPI dkcFreeSHO DKC_SECURE_HASH_OBJECT **  pp  ) 
 

dkcHash.c147 行で定義されています。

参照先 DKC_MD5, DKC_SECURE_HASH_OBJECT, DKC_SHA1, DKC_SHA256, DKC_SHA384, DKC_SHA512, dkcFree(), dkcFreeMD5(), dkcFreeSHA1(), dkcFreeSHA256(), dkcFreeSHA384(), dkcFreeSHA512(), dkc_SecureHashObject::mObj, dkc_SecureHashObject::mOption, と NULL.

参照元 dkcAllocSHO(), dkcFreeHMAC(), と shc().

00148 {
00149     DKC_SECURE_HASH_OBJECT *p = *pp;
00150     int option;
00151     void **obj;
00152 
00153     if(NULL==pp || NULL==p){
00154         return edk_FAILED;
00155     }
00156     option = p->mOption;
00157     obj = &(p->mObj);
00158     
00159     switch(option)
00160     {
00161     case edkcSH_MD5:
00162         dkcFreeMD5((DKC_MD5 **)obj);
00163         break;
00164     case edkcSH_SHA1:
00165         dkcFreeSHA1((DKC_SHA1 **)obj);
00166         break;
00167     case edkcSH_SHA256:
00168         dkcFreeSHA256((DKC_SHA256 **)obj);
00169         break;
00170     case edkcSH_SHA384:
00171         dkcFreeSHA384((DKC_SHA384 **)obj);
00172         break;
00173     case edkcSH_SHA512:
00174         dkcFreeSHA512((DKC_SHA512 **)obj);
00175         break;
00176     //default:
00177 
00178         
00179     }//eos
00180     
00181     return dkcFree(pp);
00182 }

DKC_EXTERN uint16 dkcHash16 uint8 *  ,
size_t 
 

dkcHash.c287 行で定義されています。

参照先 dkcdUNSIGNED_16BIT_PRIME_NUM.

00287                                         {
00288     uint32 v = 0;
00289     size_t i;
00290     for(i=0;i<cycle;i++){
00291         v = (pd[i] << 3) + v;
00292     }
00293     return (uint16)((v % dkcdUNSIGNED_16BIT_PRIME_NUM) & 0xFFFF);
00294 }

DKC_EXTERN uint32 dkcHash24 uint8 *  ,
size_t 
 

dkcHash.c296 行で定義されています。

参照先 dkcdUNSIGNED_16BIT_PRIME_NUM.

00296                                         {
00297     uint32 v = 0;
00298     size_t i;
00299     for(i=0;i<cycle;i++){
00300         v ^= (pd[i] << 3) + v;
00301     }
00302     return (v % dkcdUNSIGNED_16BIT_PRIME_NUM) & 0xFFFFFF;
00303 }

DKC_EXTERN uint8 dkcHash8 uint8 *  ,
size_t 
 

dkcHash.c278 行で定義されています。

参照先 dkcdUNSIGNED_8BIT_PRIME_NUM.

00278                                       {
00279     uint32 v = 0;
00280     size_t i;
00281     for(i=0;i<cycle;i++){
00282         v ^= (pd[i] << 3) + v;
00283     }
00284     return (uint8)((v % dkcdUNSIGNED_8BIT_PRIME_NUM) & 0xFF);
00285 }

DKC_EXTERN int WINAPI dkcSecureHashCalculateBinaryDigest UINT  hash_option,
BYTE digest_dest,
size_t  destsize,
const BYTE data,
size_t  data_size
 

バイナリでのハッシュを出力をする

引数:
hash_option[in] edk_SecureHashのどれか
digest_dest[out] ダイジェストの出力バッファ
dest_size[in] digest_destに渡したバッファのサイズ
data[in] ハッシュを計算したいデータ
data_size[in] dataのサイズ

dkcHash.c258 行で定義されています。

参照先 BYTE, shc(), と TRUE.

参照元 dkcHMACInit().

00261      {
00262 
00263     return shc(hash_option,digest_dest,destsize,data,data_size,TRUE);
00264 }

DKC_EXTERN int WINAPI dkcSecureHashCalculateStringDigest UINT  hash_option,
char *  digest_dest,
size_t  destsize,
const BYTE data,
size_t  data_size
 

文字列の出力をする その他引数等は dkcSecureHashCalculateBinaryDigest()

dkcHash.c267 行で定義されています。

参照先 BYTE, FALSE, と shc().

参照元 dkcHMACInit().

00270  {
00271 
00272     return shc(hash_option,digest_dest,destsize,data,data_size,FALSE);
00273 }

int WINAPI dkcSHODigest DKC_SECURE_HASH_OBJECT p,
BYTE buff,
size_t  size
 

dkcHash.c218 行で定義されています。

参照先 BYTE, check_, dkc_SecureHashObject::Digest, DKC_SECURE_HASH_OBJECT, DKC_SHO_DIGEST_F_TYPE, と dkc_SecureHashObject::mObj.

参照元 dkcHMACDigest(), dkcHMACFinal(), と shc().

00219 {
00220     DKC_SHO_DIGEST_F_TYPE digest = (DKC_SHO_DIGEST_F_TYPE)p->Digest;
00221     check_();
00222     return digest(p->mObj,buff,size);
00223 }

int WINAPI dkcSHODigestStr DKC_SECURE_HASH_OBJECT p,
char *  buff,
size_t  size
 

dkcHash.c210 行で定義されています。

参照先 check_, dkc_SecureHashObject::DigestStr, DKC_SECURE_HASH_OBJECT, DKC_SHO_DIGESTSTR_F_TYPE, と dkc_SecureHashObject::mObj.

参照元 dkcHMACDigestStr(), dkcHMACFinal(), と shc().

00211 {
00212     DKC_SHO_DIGESTSTR_F_TYPE digeststr = (DKC_SHO_DIGESTSTR_F_TYPE)p->DigestStr;
00213     check_();
00214     return digeststr(p->mObj,buff,size);
00215 }

void WINAPI dkcSHOFinal DKC_SECURE_HASH_OBJECT p  ) 
 

dkcHash.c204 行で定義されています。

参照先 check_, DKC_SECURE_HASH_OBJECT, DKC_SHO_FINAL_F_TYPE, dkc_SecureHashObject::Final, と dkc_SecureHashObject::mObj.

参照元 dkcHMACFinal(), と shc().

00204                                                   {
00205     DKC_SHO_FINAL_F_TYPE final = (DKC_SHO_FINAL_F_TYPE)p->Final;
00206     check_();
00207     final(p->mObj);
00208 }

void WINAPI dkcSHOInit DKC_SECURE_HASH_OBJECT p  ) 
 

dkcHash.c184 行で定義されています。

参照先 DKC_SECURE_HASH_OBJECT, DKC_SHO_INIT_F_TYPE, dkc_SecureHashObject::Init, dkc_SecureHashObject::mInited, dkc_SecureHashObject::mObj, と TRUE.

参照元 dkcHMACFinal(), dkcHMACInit(), と dkcSHOLoad().

00185 {
00186     DKC_SHO_INIT_F_TYPE init = (DKC_SHO_INIT_F_TYPE)p->Init;
00187     init(p->mObj);
00188 
00189     p->mInited = TRUE;
00190 }

void WINAPI dkcSHOLoad DKC_SECURE_HASH_OBJECT p,
const BYTE pBuffer,
DWORD  dwSize
 

dkcHash.c192 行で定義されています。

参照先 BYTE, check_, DKC_SECURE_HASH_OBJECT, DKC_SHO_LOAD_F_TYPE, dkcSHOInit(), FALSE, dkc_SecureHashObject::Load, dkc_SecureHashObject::mInited, と dkc_SecureHashObject::mObj.

参照元 dkcHMACFinal(), dkcHMACKeyInner(), dkcHMACLoad(), と shc().

00193 {
00194     DKC_SHO_LOAD_F_TYPE load = (DKC_SHO_LOAD_F_TYPE)p->Load;
00195     check_();
00196     if(FALSE == p->mInited){
00197         dkcSHOInit(p);
00198     }
00199     load(p->mObj,pBuffer,dwSize);
00200 }


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