diff options
author | SlowRiot <rain.backnet@gmail.com> | 2014-11-20 01:58:57 +0000 |
---|---|---|
committer | SlowRiot <rain.backnet@gmail.com> | 2014-11-20 01:58:57 +0000 |
commit | 76cc2bf7b43140698618e9dbb87a219c3bd7d32f (patch) | |
tree | c9fa0bc2d233f49f6944be4487de925fa591d947 /libs/sha1/sha1.h | |
parent | 87333f3ae236555ac1efb38b5e99b5f067900ddd (diff) | |
download | yosys-76cc2bf7b43140698618e9dbb87a219c3bd7d32f.tar.gz yosys-76cc2bf7b43140698618e9dbb87a219c3bd7d32f.tar.bz2 yosys-76cc2bf7b43140698618e9dbb87a219c3bd7d32f.zip |
fixing incorrect buffer size allocation, and unsafe integer size type
Diffstat (limited to 'libs/sha1/sha1.h')
-rw-r--r-- | libs/sha1/sha1.h | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/libs/sha1/sha1.h b/libs/sha1/sha1.h index 15edee12e..898575d6c 100644 --- a/libs/sha1/sha1.h +++ b/libs/sha1/sha1.h @@ -1,27 +1,29 @@ /* sha1.h - header of - + ============ SHA-1 in C++ ============ - + 100% Public Domain. - + Original C Code -- Steve Reid <steve@edmweb.com> Small changes to fit into bglibs -- Bruce Guenter <bruce@untroubled.org> Translation to simpler C++ Code -- Volker Grabsch <vog@notjusthosting.com> + Fixing bugs and improving style + -- Eugene Hopkinson <slowriot at voxelstorm dot com> */ - + #ifndef SHA1_HPP #define SHA1_HPP - - + + #include <iostream> #include <string> - + class SHA1 { public: @@ -30,28 +32,28 @@ public: void update(std::istream &is); std::string final(); static std::string from_file(const std::string &filename); - + private: typedef unsigned long int uint32; /* just needs to be at least 32bit */ typedef unsigned long long uint64; /* just needs to be at least 64bit */ - + static const unsigned int DIGEST_INTS = 5; /* number of 32bit integers per SHA1 digest */ static const unsigned int BLOCK_INTS = 16; /* number of 32bit integers per SHA1 block */ static const unsigned int BLOCK_BYTES = BLOCK_INTS * 4; - + uint32 digest[DIGEST_INTS]; std::string buffer; uint64 transforms; - + void reset(); void transform(uint32 block[BLOCK_BYTES]); - - static void buffer_to_block(const std::string &buffer, uint32 block[BLOCK_BYTES]); - static void read(std::istream &is, std::string &s, int max); + + static void read(std::istream &is, std::string &s, size_t max); + static void buffer_to_block(const std::string &buffer, uint32 block[BLOCK_INTS]); }; - + std::string sha1(const std::string &string); - - - + + + #endif /* SHA1_HPP */ |