Statistics
| Branch: | Revision:

root / trunk / hammock / src / net35 / Hammock / Extensions / OAuthExtensions.cs @ 0eea575a

History | View | Annotate | Download (1.2 kB)

1 0eea575a Panagiotis Kanavos
using System;
2 0eea575a Panagiotis Kanavos
using System.Security.Cryptography;
3 0eea575a Panagiotis Kanavos
using System.Text;
4 0eea575a Panagiotis Kanavos
using Hammock.Authentication.OAuth;
5 0eea575a Panagiotis Kanavos
6 0eea575a Panagiotis Kanavos
namespace Hammock.Extensions
7 0eea575a Panagiotis Kanavos
{
8 0eea575a Panagiotis Kanavos
    internal static class OAuthExtensions
9 0eea575a Panagiotis Kanavos
    {
10 0eea575a Panagiotis Kanavos
        public static string ToRequestValue(this OAuthSignatureMethod signatureMethod)
11 0eea575a Panagiotis Kanavos
        {
12 0eea575a Panagiotis Kanavos
            var value = signatureMethod.ToString().ToUpper();
13 0eea575a Panagiotis Kanavos
            var shaIndex = value.IndexOf("SHA1");
14 0eea575a Panagiotis Kanavos
            return shaIndex > -1 ? value.Insert(shaIndex, "-") : value;
15 0eea575a Panagiotis Kanavos
        }
16 0eea575a Panagiotis Kanavos
        
17 0eea575a Panagiotis Kanavos
        public static OAuthSignatureMethod FromRequestValue(this string signatureMethod)
18 0eea575a Panagiotis Kanavos
        {
19 0eea575a Panagiotis Kanavos
            switch(signatureMethod)
20 0eea575a Panagiotis Kanavos
            {
21 0eea575a Panagiotis Kanavos
                case "HMAC-SHA1":
22 0eea575a Panagiotis Kanavos
                    return OAuthSignatureMethod.HmacSha1;
23 0eea575a Panagiotis Kanavos
                case "RSA-SHA1":
24 0eea575a Panagiotis Kanavos
                    return OAuthSignatureMethod.RsaSha1;
25 0eea575a Panagiotis Kanavos
                default:
26 0eea575a Panagiotis Kanavos
                    return OAuthSignatureMethod.PlainText;
27 0eea575a Panagiotis Kanavos
            }
28 0eea575a Panagiotis Kanavos
        }
29 0eea575a Panagiotis Kanavos
30 0eea575a Panagiotis Kanavos
        public static string HashWith(this string input, HashAlgorithm algorithm)
31 0eea575a Panagiotis Kanavos
        {
32 0eea575a Panagiotis Kanavos
            var data = Encoding.UTF8.GetBytes(input);
33 0eea575a Panagiotis Kanavos
            var hash = algorithm.ComputeHash(data);
34 0eea575a Panagiotis Kanavos
            return Convert.ToBase64String(hash);
35 0eea575a Panagiotis Kanavos
        }
36 0eea575a Panagiotis Kanavos
    }
37 0eea575a Panagiotis Kanavos
}