vcpkg/toolsrc
Nicole Mazzuca 7827239593 (#7757) [vcpkg] Switch to internal hash algorithms 📜
On non-Windows platforms, there is no standard way to get the hash of an
item -- before this PR, what we did was check for the existence of a few
common utility names (shasum, sha1, sha256, sha512), and then call that
utility on a file we created containing the contents we wish to hash.
This PR adds internal hashers for sha1, sha256, and sha512, and
standardizes the interface to allow anyone to implement hashers in the
future.

These hashers are not extremely optimized, so it's likely that in the
future we could get more optimized, but for now we just call out to
BCryptHasher on Windows, since it's standard and easy to use (and about
2x faster for sha1 and sha256, and 1.5x faster for sha512). However,
they are reasonably fast for being unoptimized. I attempted a few minor
optimizations, which actually made the code slower! So as of right now,
it's implemented as just a basic conversion of the code on Wikipedia to
C++. I have tested these on the standard NIST test vectors (and those
test vectors are located in vcpkg-test/hash.cpp).
2019-08-26 12:35:22 -07:00
..
include (#7757) [vcpkg] Switch to internal hash algorithms 📜 2019-08-26 12:35:22 -07:00
src (#7757) [vcpkg] Switch to internal hash algorithms 📜 2019-08-26 12:35:22 -07:00
vcpkg allow tests to run on older standard libraries 2019-07-19 23:20:28 -07:00
vcpkglib improve logic expression evaluation (#7508) 2019-08-02 21:37:49 -07:00
vcpkgmetricsuploader allow tests to run on older standard libraries 2019-07-19 23:20:28 -07:00
vcpkgtest [vcpkg] Fix RealFilesystem::remove_all (#7430) 2019-07-26 16:32:33 -07:00
.clang-format Rewrite the tests! now they're cross-platform! (#7315) 2019-07-18 19:07:00 -07:00
CMakeLists.txt [vcpkg] Major tool CMakeLists.txt updates 2019-08-16 19:40:53 -07:00
dirs.proj [vcxproj] Explicitly specify intermediate and output directories 2018-11-01 01:26:31 -07:00
vcpkg.natvis Initial addition of native visualizer, to improve debugging experience. (#3906) 2018-08-01 10:58:25 -07:00
vcpkg.sln improve logic expression evaluation (#7508) 2019-08-02 21:37:49 -07:00
VERSION.txt [vcpkg]Port toolchains (#7687) 2019-08-20 08:47:26 -07:00