#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(). |
|
dkcSHA256.h の 13 行で定義されています。 参照元 Generate(). |
|
dkcSHA256.h の 12 行で定義されています。 |
|
SHA256のハッシュ値文字列に必要なバッファサイズ.
dkcSHA256.h の 20 行で定義されています。 参照元 dkcSHA256DigestStr(). |
|
dkcSHA256.h の 14 行で定義されています。 参照元 Generate(). |
|
参照元 dkcAllocSHA256(), dkcFreeSHA256(), dkcSHA256Digest(), dkcSHA256DigestStr(), dkcSHA256Final(), dkcSHA256FinalDigest(), dkcSHA256FinalDigestStr(), dkcSHA256Init(), dkcSHA256Load(), と Generate(). |
|
dkcSHA256.c の 69 行で定義されています。 参照先 DKC_SHA256, dkcAllocate(), dkcSHA256Init(), と NULL.
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(), edk_FAILED, と NULL.
00198 { 00199 if(NULL==p){ 00200 return edk_FAILED; 00201 } 00202 return dkcFree(p); 00203 } |
|
バイナリ版 dkcSHA256DigestStr
dkcSHA256.c の 176 行で定義されています。 参照先 BYTE, DKC_SHA256, edk_BufferOverFlow, edk_LogicError, edk_SUCCEEDED, FALSE, dkc_SHA256::m_dwH, dkc_SHA256::mFinalized, と SHA256_BIN_BUFFER_SIZE.
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(), edk_BufferOverFlow, edk_LogicError, FALSE, dkc_SHA256::m_dwH, dkc_SHA256::mFinalized, SHA256_HASH, と SHA256_STR_BUFFER_SIZE. 参照元 dkcSHA256FinalDigestStr().
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().
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().
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().
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 } |