Search code examples
c#cryptographyasp.net-core-mvchmacsha1asp.net-core-1.1

byte[] does not contain a definition for concat


I'm attempting to generate a HMAC-SHA1 in my .Net Core application using the answer found to this question:

generate HMAC-SHA1 in C#

However, I am getting an error of byte[] does not contain a defintion for Concat. I've tried searching around on here and I haven't seem to come across an answer.

This error occurs at the line var key2 = key1.Concat(oauth_consumer_secret).ToArray();

using (var sha1 = SHA1.Create())
{
    var encodedStringAsByte = Encoding.UTF8.GetBytes(encodedString);

    var key1 = sha1.ComputeHash(encodedStringAsByte);
    var key2 = key1.Concat(oauth_consumer_secret).ToArray();
    var key3 = sha1.ComputeHash(key2);

    string signature = Convert.ToBase64String(key3);
 }

Any insight and knowledge is appreciated, thank you.


Solution

  • oauth_consumer_secret needs to be a byte[] and you appear to be trying to pass a string in. You should do this instead:

    //snip
    var encodedSecret = Encoding.UTF8.GetBytes(oauth_consumer_secret);
    var key2 = key1.Concat(encodedSecret).ToArray();
    //snip