X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=Novacoin%2FSHA1.cs;h=05bac1d612d7de6473b90d160c6d45473b6967bc;hb=0fe762d6eee8a8a23033f813217c1675a34f2d6a;hp=9d31cfad6a6d908648a7bae3e49f3c90e9f79004;hpb=0aa2d5cb7cdb5813440e7afcdbe6014e9b8deeee;p=NovacoinLibrary.git diff --git a/Novacoin/SHA1.cs b/Novacoin/SHA1.cs index 9d31cfa..05bac1d 100644 --- a/Novacoin/SHA1.cs +++ b/Novacoin/SHA1.cs @@ -1,52 +1,55 @@ /** - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . + * Novacoin classes library + * Copyright (C) 2015 Alex D. (balthazar.ad@gmail.com) + + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . */ using System.Collections.Generic; using System.Linq; -using System.Security.Cryptography; +using Org.BouncyCastle.Crypto.Digests; namespace Novacoin { /// - /// Representation of SHA-256 hash + /// Representation of SHA-1 hash /// public class SHA1 : Hash { /// /// Computes RIPEMD160 hash using managed library /// - private static readonly SHA1Managed _hasher1 = new SHA1Managed(); + private static Sha1Digest _hasher1 = new Sha1Digest(); // 32 bytes public override int hashSize { - get { return 20; } + get { return _hasher1.GetDigestSize(); } } public SHA1() : base() { } public SHA1(byte[] bytes, int offset = 0) : base(bytes, offset) { } - public SHA1(IEnumerable bytes, int skip = 0) : base(bytes, skip) { } public SHA1(SHA1 h) : base(h) { } - public static SHA1 Compute1(IEnumerable inputBytes) + public static SHA1 Compute1(byte[] inputBytes) { - var dataBytes = inputBytes.ToArray(); - var digest1 = _hasher1.ComputeHash(dataBytes, 0, dataBytes.Length); + var digest1 = new byte[_hasher1.GetDigestSize()]; + + _hasher1.BlockUpdate(inputBytes, 0, inputBytes.Length); + _hasher1.DoFinal(digest1, 0); return new SHA1(digest1); }