<헤더파일>
#ifndef OUT
#define OUT
#endif
#ifndef IN
#define IN
#endif
<소스 중>
//*********************************************************************************************************************************
// o SHA256_Process() : 임의의 길이를 가지는 입력 메시지를 512 비트 블록 단위로 나누어 압축함수를 호출하는 함수
// o 입력 : Info - SHA-256 구조체의 포인터 변수
// pszMessage - 입력 메시지의 포인터 변수
// uDataLen - 입력 메시지의 바이트 길이
// o 출력 :
//*********************************************************************************************************************************
void SHA256_Process( OUT SHA256_INFO *Info, IN const BYTE *pszMessage, IN UINT uDataLen )
{
if ((Info->uLowLength += (uDataLen << 3)) < 0)
Info->uHighLength++;
Info->uHighLength += (uDataLen >> 29);
while (uDataLen >= SHA256_DIGEST_BLOCKLEN)
{
memcpy((UCHAR_PTR)Info->szBuffer, pszMessage, (SINT)SHA256_DIGEST_BLOCKLEN);
SHA256_Transform((ULONG_PTR)Info->szBuffer, Info->uChainVar);
pszMessage += SHA256_DIGEST_BLOCKLEN;
uDataLen -= SHA256_DIGEST_BLOCKLEN;
}
memcpy((UCHAR_PTR)Info->szBuffer, pszMessage, uDataLen);
}
보면 함수의 입력 부분에서 ...( OUT SHA256_INFO * INFO, ..)
이렇게 입력을 받는데요 미리 정의한 구조체 변수 *Info
를 넣는건 지금까지 그래왔으니 알겠는데, 뒤에 OUT
가 어떤 의미로 붙는건지를 모르겠어요