#include "dkcSHA384.h"
#include "dkcStdio.h"
dkcSHA384.cのインクルード依存関係図

マクロ定義 | |
| #define | DKUTIL_C_SHA384_C |
関数 | |
| DKC_SHA384 *WINAPI | dkcAllocSHA384 () |
| void WINAPI | dkcSHA384Init (DKC_SHA384 *p) |
| dkcAllocSHA384()から取得した領域を初期化する。 | |
| void WINAPI | dkcSHA384Load (DKC_SHA384 *p, const BYTE *pBuffer, DWORD dwSize) |
| void WINAPI | dkcSHA384Final (DKC_SHA384 *p) |
| int WINAPI | dkcSHA384DigestStr (DKC_SHA384 *p, char *buff, size_t size) |
| int WINAPI | dkcSHA384FinalDigestStr (DKC_SHA384 *p, char *buff, size_t size) |
| int WINAPI | dkcSHA384Digest (DKC_SHA384 *p, BYTE *buff, size_t size) |
| binaryハッシュ値 版 dkcSHA384DigestStr() | |
| int WINAPI | dkcSHA384FinalDigest (DKC_SHA384 *p, BYTE *buff, size_t size) |
| binaryハッシュ値 版 dkcSHA384FinalDigestStr() | |
| int WINAPI | dkcFreeSHA384 (DKC_SHA384 **p) |
dkcSHA384.c で定義されています。
|
|
dkcSHA384.c の 7 行で定義されています。 |
|
|
dkcSHA384.c の 13 行で定義されています。 参照先 DKC_SHA384, dkcAllocate(), dkcSHA384Init(), と NULL. 参照元 dkcSHO_SHA384Init().
00013 {
00014 DKC_SHA384 *p = dkcAllocate(sizeof(DKC_SHA384));
00015 if(NULL==p){
00016 return NULL;
00017 }
00018 dkcSHA384Init(p);
00019 return p;
00020 }
|
|
|
dkcSHA384.c の 143 行で定義されています。 参照先 DKC_SHA384, dkcFree(), と NULL. 参照元 dkcFreeSHO().
|
|
||||||||||||||||
|
binaryハッシュ値 版 dkcSHA384DigestStr()
dkcSHA384.c の 110 行で定義されています。 参照先 BYTE, DKC_SHA384, FALSE, dkc_SHA512::m_qwH, dkc_SHA512::mFinalized, と SHA384_BIN_BUFFER_SIZE. 参照元 dkcSHA384FinalDigest(), と dkcSHO_SHA384Init().
00110 {
00111 ULONG i = 0;
00112 //DWORD *dwp = (DWORD *)buff;
00113 //char s[SHA384_STR_BUFFER_SIZE];
00114 //s[SHA384_STR_BUFFER_SIZE]='\0';
00115
00116 if(SHA384_BIN_BUFFER_SIZE > size){
00117 return edk_BufferOverFlow;
00118 }
00119 if(FALSE==p->mFinalized){
00120 //まだFinalやってないっつーの
00121 return edk_LogicError;
00122 }
00123 /*
00124 for( i = 0; i < SHA_HASH; i++){
00125 sprintf(s + i * 8, "%08x", p->m_dwH[i]);
00126 dwp[i] = atoi(s + i * 8);
00127 }*/
00128 for(i = 0; i < SHA384_BIN_BUFFER_SIZE; ++i){
00129 //buff[i] = (BYTE)(p->m_dwH[i >> 2] >> (8 * (~i & 3)));
00130 buff[i] = (BYTE)(p->m_qwH[i >> 3] >> (8 * (~i & 7)));
00131 }
00132 return edk_SUCCEEDED;
00133 //ナにバカやってんだ私。
00134 //return dkc_memcpy(buff,size,(const void *)p->m_dwH,sizeof(p->m_dwH));
00135 }
|
|
||||||||||||||||
|
dkcSHA384.c の 68 行で定義されています。 参照先 BYTE, DKC_SHA384, dkc_strcpy(), FALSE, dkc_SHA512::m_qwH, dkc_SHA512::mFinalized, SHA384_BIN_BUFFER_SIZE, と SHA384_STR_BUFFER_SIZE. 参照元 dkcSHA384FinalDigestStr(), と dkcSHO_SHA384Init().
00068 {
00069
00070 //char s[SHA_HASH * 8 + 1];
00071 char s[SHA384_STR_BUFFER_SIZE];
00072 //BYTE *tb;
00073 int i;
00074 //s[SHA_HASH * 8]='\0';
00075 s[SHA384_STR_BUFFER_SIZE]='\0';
00076
00077 if(SHA384_STR_BUFFER_SIZE > size){
00078 return edk_BufferOverFlow;
00079 }
00080 if(FALSE==p->mFinalized){
00081 //まだFinalやってないっつーの
00082 return edk_LogicError;
00083 }
00084
00085 /*for( i = 0; i < SHA384_HASH; i++){
00086 sprintf(s + i * 12, "%06x", (DWORD)(p->m_qwH[i] >> 32));
00087 sprintf(s + i * 12 + 6, "%06x", (DWORD)(p->m_qwH[i] & 0x00000000ffffffff));
00088 }*/
00089 //tb = (BYTE *)p->m_qwH;
00090 for( i=0;i<SHA384_BIN_BUFFER_SIZE;i++){
00091 //sprintf(&s[SHA384_HASH * i],"%0x",p->m_qwH[i]);
00092
00093 //sprintf(s + i * 12, "%0x", (DWORD)(p->m_qwH[i] >> 32));
00094 //sprintf(s + i * 12 + 6, "%0x", (DWORD)(p->m_qwH[i] & 0x00000000ffffffff));
00095 sprintf(s + i * 2, "%02x", (BYTE)(p->m_qwH[i >> 3] >> (8 * (~i & 7))));
00096 //sprintf(s + i * 16 + 8, "%08x", (DWORD)(p->m_qwH[i] & 0x00000000ffffffff));
00097 }
00098
00099 //std::string strDigest = s;
00100 //return strDigest;
00101 return dkc_strcpy(buff,size,s,strlen(s));
00102 }
|
|
|
dkcSHA384.c の 43 行で定義されています。 参照先 DKC_SHA384, と dkcSHA512Final(). 参照元 dkcSHA384FinalDigest(), dkcSHA384FinalDigestStr(), と dkcSHO_SHA384Init().
00043 {
00044 dkcSHA512Final(p);
00045 /*BYTE cZero = 0x00;
00046 BYTE cOne = 0x80;
00047 DWORD dwHNumBits;
00048 DWORD dwLNumBits;
00049 if(p->mFinalized){
00050 return ;
00051 }
00052
00053 dwHNumBits = ReverseEndian(p->m_dwHNumBits);
00054 dwLNumBits = ReverseEndian(p->m_dwLNumBits);
00055
00056 dkcSHA384Load(p,&cOne, 1);
00057 while(p->m_nNumChr != SHA_BUFFER_SIZE - 8) dkcSHA384Load(p,&cZero, 1);
00058
00059 dkcSHA384Load(p,(BYTE *)&dwHNumBits, 4);
00060 dkcSHA384Load(p,(BYTE *)&dwLNumBits, 4);
00061
00062 //ファイナル処理した。
00063 p->mFinalized = TRUE;
00064 */
00065
00066 }
|
|
||||||||||||||||
|
binaryハッシュ値 版 dkcSHA384FinalDigestStr()
dkcSHA384.c の 138 行で定義されています。 参照先 BYTE, DKC_SHA384, dkcSHA384Digest(), と dkcSHA384Final().
00138 {
00139 dkcSHA384Final(p);
00140 return dkcSHA384Digest(p,buff,size);
00141 }
|
|
||||||||||||||||
|
dkcSHA384.c の 105 行で定義されています。 参照先 DKC_SHA384, dkcSHA384DigestStr(), と dkcSHA384Final().
00105 {
00106 dkcSHA384Final(p);
00107 return dkcSHA384DigestStr(p,buff,size);
00108 }
|
|
|
dkcAllocSHA384()から取得した領域を初期化する。
dkcSHA384.c の 22 行で定義されています。 参照先 DKC_SHA384, FALSE, dkc_SHA512::m_nNumChr, dkc_SHA512::m_qwH, dkc_SHA512::m_qwHNumBits, dkc_SHA512::m_qwLNumBits, と dkc_SHA512::mFinalized. 参照元 dkcAllocSHA384(), と dkcSHO_SHA384Init().
00022 {
00023
00024 p->m_qwH[0] = 0xcbbb9d5dc1059ed8;
00025 p->m_qwH[1] = 0x629a292a367cd507;
00026 p->m_qwH[2] = 0x9159015a3070dd17;
00027 p->m_qwH[3] = 0x152fecd8f70e5939;
00028 p->m_qwH[4] = 0x67332667ffc00b31;
00029 p->m_qwH[5] = 0x8eb44a8768581511;
00030 p->m_qwH[6] = 0xdb0c2e0d64f98fa7;
00031 p->m_qwH[7] = 0x47b5481dbefa4fa4;
00032 p->m_qwLNumBits = 0;
00033 p->m_qwHNumBits = 0;
00034 p->m_nNumChr = 0;
00035
00036 p->mFinalized = FALSE;
00037 }
|
|
||||||||||||||||
|
dkcSHA384.c の 39 行で定義されています。 参照先 BYTE, DKC_SHA384, と dkcSHA512Load(). 参照元 dkcSHO_SHA384Init().
00039 {
00040 dkcSHA512Load(p,pBuffer,dwSize);
00041 }
|
1.3.6