2 using System.Collections.Generic;
\r
4 using System.Security.Cryptography;
\r
6 using OpenSSL.Crypto;
\r
8 namespace Pithos.Network
\r
10 public class SHA1OpenSSL : SHA1
\r
13 private MessageDigestContext _context;
\r
15 public SHA1OpenSSL()
\r
17 _context = new MessageDigestContext(MessageDigest.CreateByName("SHA1"));
\r
21 public override void Initialize()
\r
26 protected override void HashCore(byte[] array, int ibStart, int cbSize)
\r
28 if (array.Length == cbSize)
\r
29 _context.Update(array);
\r
32 var block = new byte[cbSize];
\r
33 Buffer.BlockCopy(array, ibStart, block, 0, cbSize);
\r
34 _context.Update(block);
\r
38 protected override byte[] HashFinal()
\r
40 return _context.DigestFinal();
\r
43 protected override void Dispose(bool disposing)
\r
45 base.Dispose(disposing);
\r
48 if (_context != null)
\r
55 public class SHA256OpenSSL : SHA256
\r
58 private MessageDigestContext _context;
\r
60 public SHA256OpenSSL()
\r
62 _context = new MessageDigestContext(MessageDigest.CreateByName("SHA256"));
\r
66 public override void Initialize()
\r
71 protected override void HashCore(byte[] array, int ibStart, int cbSize)
\r
73 if (array.Length == cbSize)
\r
74 _context.Update(array);
\r
77 var block = new byte[cbSize];
\r
78 Buffer.BlockCopy(array, ibStart, block, 0, cbSize);
\r
79 _context.Update(block);
\r
83 protected override byte[] HashFinal()
\r
85 return _context.DigestFinal();
\r
88 protected override void Dispose(bool disposing)
\r
90 base.Dispose(disposing);
\r
93 if (_context != null)
\r