//#-------------------------------------------------------------- // // File: hashhmac.cpp // // Synopsis: Implementation of CHashHmacMD5 class methods // // // History: 1/28/98 MKarki Created // // Copyright (C) 1997-98 Microsoft Corporation // All rights reserved. // //---------------------------------------------------------------- #include "radcommon.h" #include "hashhmac.h" #include #include //++-------------------------------------------------------------- // // Function: CHashHmacMD5 // // Synopsis: This is CHashHmacMD5 class constructor // // Arguments: NONE // // Returns: NONE // // // History: MKarki Created 1/28/98 // //---------------------------------------------------------------- CHashHmacMD5::CHashHmacMD5() { } // end of CHashHmacMD5 constructor //++-------------------------------------------------------------- // // Function: ~CHashHmacMD5 // // Synopsis: This is ~CHashHmacMD5 class constructor // // Arguments: NONE // // Returns: NONE // // // History: MKarki Created 10/2/97 // //---------------------------------------------------------------- CHashHmacMD5::~CHashHmacMD5() { } // end of CHashHmacMD5 destructor //++-------------------------------------------------------------- // // Function: HashIt // // Synopsis: This is HashIt CHashHmacMD5 class public method used // carry out hashing of the buffers provided // // Arguments: NONE // // Returns: NONE // // // History: MKarki Created 1/28/97 // //---------------------------------------------------------------- BOOL CHashHmacMD5::HashIt ( PBYTE pbyAuthenticator, PBYTE pSharedSecret = NULL, DWORD dwSharedSecretSize = 0, PBYTE pBuffer1 = NULL, DWORD dwSize1 = 0, PBYTE pBuffer2 = NULL, DWORD dwSize2 = 0, PBYTE pBuffer3 = NULL, DWORD dwSize3 = 0, PBYTE pBuffer4 = NULL, DWORD dwSize4 = 0, PBYTE pBuffer5 = NULL, DWORD dwSize5 = 0 ) { BOOL bRetVal = FALSE; HMACMD5_CTX Context; __try { if (NULL == pbyAuthenticator) __leave; HMACMD5Init (&Context, pSharedSecret, dwSharedSecretSize); if ((NULL != pBuffer1) && (0 != dwSize1)) { HMACMD5Update (&Context, pBuffer1, dwSize1); } if ((NULL != pBuffer2) && (0 != dwSize2)) { HMACMD5Update (&Context, pBuffer2, dwSize2); } if ((NULL != pBuffer3) && (0 != dwSize3)) { HMACMD5Update (&Context, pBuffer3, dwSize3); } if ((NULL != pBuffer4) && (0 != dwSize4)) { HMACMD5Update ( &Context, pBuffer4, dwSize4); } if ((NULL != pBuffer5) && (0 != dwSize5)) { HMACMD5Update ( &Context, pBuffer5, dwSize5); } HMACMD5Final (&Context, pbyAuthenticator); // // done the hashing // bRetVal = TRUE; } __finally { // // nothing here for now // } return (bRetVal); } // end of CHmacHashMD5::HashIt method