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 | } |