|
QuickHash Library |
Type Library |
|
QHASH_BlockHMAC
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.
Parameters
nAlgID
[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.
pDigest
[out] The memory buffer
that will receive the HMAC.
Note. All predefined types are specified in the
Predefined Types List.
pSrc
[in] A continuous memory
block for which to calculate the HMAC.
nSrcLength
[in] Length in bytes of the
memory block.
pKey
[in] The key which
represents a continuous memory block.
nKeyLength
[in] Length in
bytes of the key.
Remarks
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
|