summaryrefslogtreecommitdiff
path: root/src/sha1.cc
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2025-10-19 00:09:53 +0200
committerJoel Klinghed <the_jk@spawned.biz>2025-10-19 00:24:21 +0200
commitf1b1880cf01a8abb6016954e51b46c453c3d6d94 (patch)
tree815b035e5b03775f7e775196851bbebc137ebb2c /src/sha1.cc
parent48bdfbeb03319eb21b5e73e69f525ba298af975c (diff)
sha1: Add new module
SHA1 hasher. Needed by websocket support that is coming soon. Using either libmd or openssl to do the actual hashing.
Diffstat (limited to 'src/sha1.cc')
-rw-r--r--src/sha1.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/sha1.cc b/src/sha1.cc
new file mode 100644
index 0000000..5d20ca9
--- /dev/null
+++ b/src/sha1.cc
@@ -0,0 +1,16 @@
+#include "sha1.hh"
+
+namespace sha1 {
+
+std::array<uint8_t, 20> hash(std::span<char const> input) {
+ // std::string and std::string_view -> std::span includes null terminating
+ // byte.
+ if (!input.empty() && input.back() == '\0') {
+ return hash(std::span{reinterpret_cast<uint8_t const*>(input.data()),
+ input.size() - 1});
+ }
+ return hash(
+ std::span{reinterpret_cast<uint8_t const*>(input.data()), input.size()});
+}
+
+} // namespace sha1