[VB6 equivalent: HMAC_Bytes]
Dim abData() As Byte
Dim abKey() As Byte
Dim nDataLen As Integer
Dim nKeyLen As Integer
Dim abDigest() As Byte
Dim i As Integer
' Test case 4 from RFC 2202 and RFC 4231
' key = 0x0102030405060708090a0b0c0d0e0f10111213141516171819
' key_len 25
' data = 0xcd repeated 50 times
' data_len = 50
nKeyLen = 25
ReDim abKey(nKeyLen - 1)
For i = 0 To nKeyLen - 1
abKey(i) = CByte(i + 1)
Next
Console.WriteLine("Key=" & Cnv.ToHex(abKey))
nDataLen = 50
ReDim abData(nDataLen - 1)
For i = 0 To nDataLen - 1
abData(i) = &HCD
Next
' Compute default HMAC (HMAC-SHA-1)
abDigest = Hmac.BytesFromBytes(abData, abKey, HashAlgorithm.Sha1)
If abDigest.Length = 0 Then Exit Sub ' ERROR
Console.WriteLine("HMAC-SHA-1 =" & Cnv.ToHex(abDigest))
Console.WriteLine("CORRECT =" & "4c9007f4026250c6bc8414f9bf50c86c2d7235da")
' Compute HMAC-MD5
abDigest = Hmac.BytesFromBytes(abData, abKey, HashAlgorithm.Md5)
If abDigest.Length = 0 Then Exit Sub ' ERROR
Console.WriteLine("HMAC-MD5 =" & Cnv.ToHex(abDigest))
Console.WriteLine("CORRECT =" & "697eaf0aca3a3aea3a75164746ffaa79")
' Compute HMAC-SHA-256
abDigest = Hmac.BytesFromBytes(abData, abKey, HashAlgorithm.Sha256)
If abDigest.Length = 0 Then Exit Sub ' ERROR
Console.WriteLine("HMAC-SHA-256=" & Cnv.ToHex(abDigest))
Console.WriteLine("CORRECT =" & "82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b")
See Also:
Hmac.BytesFromBytes Method