#include "dkcOSIndependent.h"
dkcSHA256.hのインクルード依存関係図

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

構成 | |
| struct | dkc_SHA256 |
マクロ定義 | |
| #define | SHA256_HASH 8 |
| #define | SHA256_BLOCK 16 |
| #define | SHA256_WORK 64 |
| #define | SHA256_BIN_BUFFER_SIZE (SHA256_HASH * 4) |
| SHA256の生ハッシュ値(binary)に必要なバッファサイズ. | |
| #define | SHA256_STR_BUFFER_SIZE (SHA256_HASH * 8 + 1) |
| SHA256のハッシュ値文字列に必要なバッファサイズ. | |
型定義 | |
| typedef dkc_SHA256 | DKC_SHA256 |
関数 | |
| DKC_EXTERN DKC_SHA256 *WINAPI | dkcAllocSHA256 () |
| DKC_EXTERN void WINAPI | dkcSHA256Init (DKC_SHA256 *) |
| dkcAllocSHA256()から取得した領域を初期化する。 | |
| DKC_EXTERN void WINAPI | dkcSHA256Load (DKC_SHA256 *p, const BYTE *pBuffer, DWORD dwSize) |
| DKC_EXTERN void WINAPI | dkcSHA256Final (DKC_SHA256 *p) |
| DKC_EXTERN int WINAPI | dkcSHA256DigestStr (DKC_SHA256 *p, char *buff, size_t size) |
| 文字列版 | |
| DKC_EXTERN int WINAPI | dkcSHA256Digest (DKC_SHA256 *p, BYTE *buff, size_t size) |
| バイナリ版 dkcSHA256DigestStr | |
| DKC_EXTERN int WINAPI | dkcSHA256FinalDigestStr (DKC_SHA256 *p, char *buff, size_t size) |
| DKC_EXTERN int WINAPI | dkcSHA256FinalDigest (DKC_SHA256 *p, BYTE *buff, size_t size) |
| バイナリ版 dkcSHA256DigestStr(); | |
| DKC_EXTERN int WINAPI | dkcFreeSHA256 (DKC_SHA256 **p) |
dkcSHA256.h で定義されています。
|
|
SHA256の生ハッシュ値(binary)に必要なバッファサイズ.
dkcSHA256.h の 18 行で定義されています。 参照元 dkcSHA256Digest(), と dkcSHO_SHA256Init(). |
|
|
dkcSHA256.h の 13 行で定義されています。 参照元 Generate(). |
|
|
dkcSHA256.h の 12 行で定義されています。 |
|
|
SHA256のハッシュ値文字列に必要なバッファサイズ.
dkcSHA256.h の 20 行で定義されています。 |
|
|
dkcSHA256.h の 14 行で定義されています。 参照元 Generate(). |
|
|
|
dkcSHA256.c の 69 行で定義されています。 参照先 DKC_SHA256, dkcAllocate(), dkcSHA256Init(), と NULL. 参照元 dkcSHO_SHA256Init().
00069 {
00070 DKC_SHA256 *p = dkcAllocate(sizeof(DKC_SHA256));
00071 if(NULL==p){
00072 return NULL;
00073 }
00074 dkcSHA256Init(p);
00075 return p;
00076 }
|
|
|
dkcSHA256.c の 198 行で定義されています。 参照先 DKC_SHA256, dkcFree(), と NULL. 参照元 dkcFreeSHO().
|
|
||||||||||||||||
|
バイナリ版 dkcSHA256DigestStr
dkcSHA256.c の 176 行で定義されています。 参照先 BYTE, DKC_SHA256, FALSE, dkc_SHA256::m_dwH, dkc_SHA256::mFinalized, と SHA256_BIN_BUFFER_SIZE. 参照元 dkcSHA256FinalDigest(), と dkcSHO_SHA256Init().
00176 {
00177 size_t i;
00178 if(SHA256_BIN_BUFFER_SIZE > size){
00179 return edk_BufferOverFlow;
00180 }
00181 if(FALSE==p->mFinalized){
00182 //まだFinalやってないっつーの
00183 return edk_LogicError;
00184 }
00185 for(i = 0; i < SHA256_BIN_BUFFER_SIZE; ++i){
00186 buff[i] = (BYTE)(p->m_dwH[i >> 2] >> (8 * (~i & 3)));
00187 }
00188 return edk_SUCCEEDED;
00189 //return dkc_memcpy(buff,size,(const void *)p->m_dwH,sizeof(p->m_dwH));
00190 }
|
|
||||||||||||||||
|
文字列版
dkcSHA256.c の 148 行で定義されています。 参照先 DKC_SHA256, dkc_strcpy(), FALSE, dkc_SHA256::m_dwH, dkc_SHA256::mFinalized, SHA256_HASH, と SHA256_STR_BUFFER_SIZE. 参照元 dkcSHA256FinalDigestStr(), と dkcSHO_SHA256Init().
00148 {
00149 //char s[SHA256_HASH * 8 + 1];
00150 char s[SHA256_STR_BUFFER_SIZE];
00151 int i;
00152
00153 s[SHA256_HASH * 8]='\0';
00154 if(SHA256_STR_BUFFER_SIZE > size){
00155 return edk_BufferOverFlow;
00156 }
00157 if(FALSE==p->mFinalized){
00158 //まだFinalやってないっつーの
00159 return edk_LogicError;
00160 }
00161
00162 for(i = 0; i < SHA256_HASH; i++){
00163 sprintf(s + i * 8, "%08x", p->m_dwH[i]);
00164 }
00165 //std::string strDigest = s;
00166 //return strDigest;
00167 return dkc_strcpy(buff,size,s,strlen(s));
00168 }
|
|
|
dkcSHA256.c の 124 行で定義されています。 参照先 BYTE, DKC_SHA256, dkcSHA256Load(), DWORD, dkc_SHA256::m_dwHNumBits, dkc_SHA256::m_dwLNumBits, dkc_SHA256::m_nNumChr, dkc_SHA256::mFinalized, ReverseEndian(), SHA256_BUFFER_SIZE, と TRUE. 参照元 dkcSHA256FinalDigest(), dkcSHA256FinalDigestStr(), と dkcSHO_SHA256Init().
00124 {
00125
00126 BYTE cZero = 0x00;
00127 BYTE cOne = 0x80;
00128 DWORD dwHNumBits;
00129 DWORD dwLNumBits;
00130
00131 if(p->mFinalized){
00132 return;
00133 }
00134
00135 dwHNumBits = ReverseEndian(p->m_dwHNumBits);
00136 dwLNumBits = ReverseEndian(p->m_dwLNumBits);
00137
00138 dkcSHA256Load(p,&cOne, 1);
00139 while(p->m_nNumChr != SHA256_BUFFER_SIZE - 8) dkcSHA256Load(p,&cZero, 1);
00140
00141 dkcSHA256Load(p,(BYTE *)&dwHNumBits, 4);
00142 dkcSHA256Load(p,(BYTE *)&dwLNumBits, 4);
00143
00144 //ファイナル処理した。
00145 p->mFinalized = TRUE;
00146 }
|
|
||||||||||||||||
|
バイナリ版 dkcSHA256DigestStr();
dkcSHA256.c の 192 行で定義されています。 参照先 BYTE, DKC_SHA256, dkcSHA256Digest(), と dkcSHA256Final().
00192 {
00193 dkcSHA256Final(p);
00194 return dkcSHA256Digest(p,buff,size);
00195 }
|
|
||||||||||||||||
|
dkcSHA256.c の 169 行で定義されています。 参照先 DKC_SHA256, dkcSHA256DigestStr(), と dkcSHA256Final().
00169 {
00170 dkcSHA256Final(p);
00171 return dkcSHA256DigestStr(p,buff,size);
00172 }
|
|
|
dkcAllocSHA256()から取得した領域を初期化する。
dkcSHA256.c の 78 行で定義されています。 参照先 c_dwInitH, DKC_SHA256, FALSE, dkc_SHA256::m_dwH, dkc_SHA256::m_dwHNumBits, dkc_SHA256::m_dwLNumBits, dkc_SHA256::m_nNumChr, dkc_SHA256::mFinalized, と SHA256_HASH. 参照元 dkcAllocSHA256(), と dkcSHO_SHA256Init().
00078 {
00079 int i;
00080 for(i = 0; i < SHA256_HASH; i++){
00081 p->m_dwH[i] = c_dwInitH[i];
00082 }
00083 p->m_dwLNumBits = 0;
00084 p->m_dwHNumBits = 0;
00085 p->m_nNumChr = 0;
00086 p->mFinalized = FALSE;
00087 }
|
|
||||||||||||||||
|
dkcSHA256.c の 89 行で定義されています。 参照先 BYTE, DKC_SHA256, DWORD, Generate(), dkc_SHA256::m_aBlock, dkc_SHA256::m_dwHNumBits, dkc_SHA256::m_dwLNumBits, dkc_SHA256::m_nNumChr, dkc_SHA256::mFinalized, と SHA256_BUFFER_SIZE. 参照元 dkcSHA256Final(), と dkcSHO_SHA256Init().
00089 {
00090 DWORD dwReadSize;
00091 DWORD dwLNumBits;
00092 BYTE *pBlock;
00093
00094 if(dwSize == 0) return;
00095 if(p->mFinalized){
00096 return;
00097 }
00098 dwLNumBits = (p->m_dwLNumBits + (dwSize << 3));
00099 if(dwLNumBits < p->m_dwLNumBits) p->m_dwHNumBits++;
00100 p->m_dwHNumBits += dwSize >> 29;
00101 p->m_dwLNumBits = dwLNumBits;
00102
00103 pBlock = (BYTE *)p->m_aBlock;
00104
00105 while(dwSize){
00106 //dwReadSize = (dwSize < SHA256_BUFFER_SIZE - p->m_nNumChr) ?
00107 dwReadSize = (dwSize < SHA256_BUFFER_SIZE - (DWORD)p->m_nNumChr) ?
00108 dwSize :
00109 (SHA256_BUFFER_SIZE - p->m_nNumChr);
00110
00111 memcpy(pBlock + p->m_nNumChr, pBuffer, dwReadSize);
00112
00113 p->m_nNumChr += dwReadSize;
00114 pBuffer += dwReadSize;
00115 dwSize -= dwReadSize;
00116
00117 if(p->m_nNumChr == SHA256_BUFFER_SIZE){
00118 Generate(p);
00119 p->m_nNumChr = 0;
00120 }
00121 }
00122 }
|
1.3.6