QuickHash Library Type Library


int QHASH_BlockHMAC( [ in ]int nAlgID, [ out ]QHASH_Digest *pDigest,[ in, size_is( nSrcLength ) ]const void* pSrc, [ in ] int nSrcLength,[ in, size_is( nKeyLength ) ]const void* pKey, [ in ] int nKeyLength );

Return value

Zero if calculation is successful, otherwise nonzero.

Note. All possible return values are specified in the Error Codes List.



    [in] The ID of the hash algorithm selected for calculations. For example, nAlgID has to be set to SHA1_ALGID when you need to calculate the HMAC using SHA-1 hash algorithm.

    Note. All supported hash algorithms with their corresponding IDs are specified in the Predefined Constants List.



    [out] The memory buffer that will receive the HMAC.

    Note. All predefined types are specified in the Predefined Types List.


    [in] A continuous memory block for which to calculate the HMAC.


    [in] Length in bytes of the memory block.


    [in] The key which represents a continuous memory block.


    [in] Length in bytes of the key.


Calculates the HMAC for the continuous memory block specified by pSrc using the key specified by pKey. The HMAC is retrieved in the pDigest memory buffer.

VB Example

Private Sub MyButton_Click()
    Dim MyStrData As String
    MyStrData = "Hello World!"
    Dim MyStrKey As String
    MyStrKey = "password"
    Dim nLen As Long
    nLen = Len(MyStrData)
    Dim nLenKey As Long
    nLenKey = Len(MyStrKey)
    'Convert the string to byte array
    Dim MyBinData() As Byte
    ReDim MyBinData(1 To nLen)
    For i = 1 To nLen
        MyBinData(i) = Asc(Mid(MyStrData, i, 1))
    Next i
    'Convert the key to byte array
    Dim MyBinKey() As Byte
    ReDim MyBinKey(1 To nLenKey)
    For i = 1 To nLenKey
        MyBinKey(i) = Asc(Mid(MyStrKey, i, 1))
    Next i
    'Calculate the MD5-HMAC
    Dim Hmac As QHASH_Digest
    QHASH_BlockHMAC MD5_ALGID, Hmac, MyBinData(1), nLen, MyBinKey(1), nLenKey
    'Show the MD5-HMAC in hexadecimal representation
    MsgBox QHASH_ConvertToHex(Hmac.Value(0), MD5_DIGESTSIZE, True) 
End Sub



Type Library Overview   |   Type Library Functions   |   Useful Links   |   HashCalc


See Also    QHASH_BlockHexHMAC, QHASH_StringHMAC, QHASH_FileHMAC, QHASH_ConvertToHex



Send Feedback to SlavaSoft Inc. Tell a friend about QuickHash Library