[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