wasSharpNET – Diff between revs 13 and 14

Subversion Repositories:
Rev:
Only display areas with differencesIgnore whitespace
Rev 13 Rev 14
1 /////////////////////////////////////////////////////////////////////////// 1 ///////////////////////////////////////////////////////////////////////////
2 // Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 // 2 // Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 //
3 // Please see: http://www.gnu.org/licenses/gpl.html for legal details, // 3 // Please see: http://www.gnu.org/licenses/gpl.html for legal details, //
4 // rights of fair usage, the disclaimer and warranty conditions. // 4 // rights of fair usage, the disclaimer and warranty conditions. //
5 /////////////////////////////////////////////////////////////////////////// 5 ///////////////////////////////////////////////////////////////////////////
6   6  
7 using System; 7 using System;
8 using System.IO; 8 using System.IO;
9 using System.Text; 9 using System.Text;
10 using System.Threading.Tasks; 10 using System.Threading.Tasks;
11   11  
12 namespace wasSharpNET.Cryptography 12 namespace wasSharpNET.Cryptography
13 { 13 {
14 public static class SHA1 14 public static class SHA1
15 { 15 {
16 /// <summary> 16 /// <summary>
17 /// Return a 40 character hex representation of a SHA1 hash. 17 /// Return a 40 character hex representation of a SHA1 hash.
18 /// </summary> 18 /// </summary>
19 /// <param name="sha1">the SHA1 hash object</param> 19 /// <param name="sha1">the SHA1 hash object</param>
20 /// <param name="data">the byte data to compute the hash from</param> 20 /// <param name="data">the byte data to compute the hash from</param>
21 public static string ToHex(this System.Security.Cryptography.SHA1 sha1, byte[] data) 21 public static string ToHex(this System.Security.Cryptography.SHA1 sha1, byte[] data)
22 { 22 {
23 return BitConverter.ToString(sha1.ComputeHash(data)).Replace("-", ""); 23 return BitConverter.ToString(sha1.ComputeHash(data)).Replace("-", "");
24 } 24 }
25   25  
26 /// <summary> 26 /// <summary>
27 /// Return a 40 character hex representation of a SHA1 hash. 27 /// Return a 40 character hex representation of a SHA1 hash.
28 /// </summary> 28 /// </summary>
29 /// <param name="sha1">the SHA1 hash object</param> 29 /// <param name="sha1">the SHA1 hash object</param>
30 /// <param name="data">the string data to compute the hash from</param> 30 /// <param name="data">the string data to compute the hash from</param>
31 public static string ToHex(this System.Security.Cryptography.SHA1 sha1, string data) 31 public static string ToHex(this System.Security.Cryptography.SHA1 sha1, string data)
32 { 32 {
33 return BitConverter.ToString(sha1.ComputeHash(Encoding.UTF8.GetBytes(data))).Replace("-", ""); 33 return BitConverter.ToString(sha1.ComputeHash(Encoding.UTF8.GetBytes(data))).Replace("-", "");
34 } 34 }
35   35  
36 /// <summary> 36 /// <summary>
37 /// Return a 40 character hex representation of a SHA1 hash. 37 /// Return a 40 character hex representation of a SHA1 hash.
38 /// </summary> 38 /// </summary>
39 /// <param name="sha1">the SHA1 hash object</param> 39 /// <param name="sha1">the SHA1 hash object</param>
40 /// <param name="data">the memorystream to compute the hash from</param> 40 /// <param name="data">the memorystream to compute the hash from</param>
-   41 public static string ToHex(this System.Security.Cryptography.SHA1 sha1, Stream data)
-   42 {
-   43 return BitConverter.ToString(sha1.ComputeHash(data)).Replace("-", "");
-   44 }
-   45  
-   46 /// <summary>
-   47 /// Return a 40 character hex representation of a SHA1 hash.
-   48 /// </summary>
-   49 /// <param name="sha1">the SHA1 hash object</param>
-   50 /// <param name="data">a filestream to read the file from</param>
41 public static string ToHex(this System.Security.Cryptography.SHA1 sha1, MemoryStream data) 51 public static string ToHex(this System.Security.Cryptography.SHA1 sha1, FileStream data)
42 { 52 {
43 return BitConverter.ToString(sha1.ComputeHash(data)).Replace("-", ""); 53 return BitConverter.ToString(sha1.ComputeHash(data)).Replace("-", "");
44 } 54 }
45   55  
46 /////////////////////////////////////////////////////////////////////////// 56 ///////////////////////////////////////////////////////////////////////////
47 // Copyright (C) Wizardry and Steamworks 2014 - License: GNU GPLv3 // 57 // Copyright (C) Wizardry and Steamworks 2014 - License: GNU GPLv3 //
48 /////////////////////////////////////////////////////////////////////////// 58 ///////////////////////////////////////////////////////////////////////////
49 /// <summary> 59 /// <summary>
50 /// Compute the SHA1 hash of an array of bytes and copy the result to the output stream as a hexadecimal string. 60 /// Compute the SHA1 hash of an array of bytes and copy the result to the output stream as a hexadecimal string.
51 /// </summary> 61 /// </summary>
52 /// <param name="sha1">the SHA1 object to use</param> 62 /// <param name="sha1">the SHA1 object to use</param>
53 /// <param name="data">the data to hash</param> 63 /// <param name="data">the data to hash</param>
54 /// <param name="outStream">the output stream</param> 64 /// <param name="outStream">the output stream</param>
55 public static async Task CopyToAsync(this System.Security.Cryptography.SHA1 sha1, byte[] data, Stream outStream) 65 public static async Task CopyToAsync(this System.Security.Cryptography.SHA1 sha1, byte[] data, Stream outStream)
56 { 66 {
57 var buffer = new char[1]; 67 var buffer = new char[1];
58 using (MemoryStream SHA1OutputStream = new MemoryStream()) 68 using (MemoryStream SHA1OutputStream = new MemoryStream())
59 { 69 {
60 using (StringReader SHA1InputStream = new StringReader(BitConverter.ToString(sha1.ComputeHash(data)).Replace("-", ""))) 70 using (StringReader SHA1InputStream = new StringReader(BitConverter.ToString(sha1.ComputeHash(data)).Replace("-", "")))
61 { 71 {
62 int count; 72 int count;
63 while ((count = await SHA1InputStream.ReadAsync(buffer, 0, 1)) != 0) 73 while ((count = await SHA1InputStream.ReadAsync(buffer, 0, 1)) != 0)
64 { 74 {
65 switch (buffer[0]) 75 switch (buffer[0])
66 { 76 {
67 case '-': 77 case '-':
68 continue; 78 continue;
69 default: 79 default:
70 SHA1OutputStream.WriteByte((byte)buffer[0]); 80 SHA1OutputStream.WriteByte((byte)buffer[0]);
71 break; 81 break;
72 } 82 }
73 } 83 }
74 } 84 }
75 SHA1OutputStream.Position = 0L; 85 SHA1OutputStream.Position = 0L;
76 await SHA1OutputStream.CopyToAsync(outStream); 86 await SHA1OutputStream.CopyToAsync(outStream);
77 } 87 }
78 } 88 }
79 } 89 }
80 } 90 }
81   91