SNode.C
Loading...
Searching...
No Matches
sha1.h
Go to the documentation of this file.
1#ifndef UTILS_SHA1_H
2#define UTILS_SHA1_H
3
4/*
5 sha1.h - header of
6
7 ============
8 SHA-1 in C++
9 ============
10
11 100% Public Domain.
12
13 Original C Code
14 -- Steve Reid <steve@edmweb.com>
15 Small changes to fit into bglibs
16 -- Bruce Guenter <bruce@untroubled.org>
17 Translation to simpler C++ Code
18 -- Volker Grabsch <vog@notjusthosting.com>
19 Transform digest to binary
20 -- Volker Christian <me@vchrist.at>
21*/
22
23#ifndef DOXYGEN_SHOULD_SKIP_THIS
24
25#include <cstddef>
26#include <cstdint>
27#include <iostream>
28#include <string>
29#include <vector>
30
31#endif /* DOXYGEN_SHOULD_SKIP_THIS */
32
33namespace utils {
34
35 class SHA1 {
36 public:
37 SHA1();
38 void update(const std::string& s);
39 void update(std::istream& is);
40 std::string final();
41
42 private:
43 static const unsigned int DIGEST_INTS = 5; /* number of 32bit integers per SHA1 digest */
44 static const unsigned int BLOCK_INTS = 16; /* number of 32bit integers per SHA1 block */
45 static const unsigned int BLOCK_BYTES = BLOCK_INTS * 4;
46
47 uint32_t digest[DIGEST_INTS]{};
49 uint64_t transforms = 0;
50
51 void reset();
52 void transform(uint32_t block[BLOCK_BYTES]);
53
54 static void buffer_to_block(const std::string& buffer, uint32_t block[BLOCK_BYTES]);
55 static void read(std::istream& is, std::string& s, std::size_t max);
56 };
57
58 std::vector<unsigned char> sha1(const std::string& string);
59
60} // namespace utils
61
62#endif // UTILS_SHA1_H
std::string timeToString(std::chrono::time_point< std::chrono::system_clock > time)
void addQueryParamToUri(std::string &uri, const std::string &queryParamName, const std::string &queryParamValue)
std::string getNewUUID()
std::string hashSha1(const std::string &str)
#define APPLICATION(req, res)
Definition Router.h:45
#define MIDDLEWARE(req, res, next)
Definition Router.h:40
MariaDBClient(const MariaDBConnectionDetails &details)
static void init(int argc, char *argv[])
Definition WebApp.cpp:34
static int start(const utils::Timeval &timeOut={LONG_MAX, 0})
Definition WebApp.cpp:38
static const unsigned int BLOCK_INTS
Definition sha1.h:44
uint32_t digest[DIGEST_INTS]
Definition sha1.h:47
static const unsigned int BLOCK_BYTES
Definition sha1.h:45
std::string buffer
Definition sha1.h:48
static const unsigned int DIGEST_INTS
Definition sha1.h:43
uint64_t transforms
Definition sha1.h:49
void transform(uint32_t block[BLOCK_BYTES])
Definition sha1.cpp:135
void reset()
Definition sha1.cpp:118
std::string final()
Definition sha1.cpp:79
static void read(std::istream &is, std::string &s, std::size_t max)
Definition sha1.cpp:244
void update(std::istream &is)
Definition sha1.cpp:62
static void buffer_to_block(const std::string &buffer, uint32_t block[BLOCK_BYTES])
Definition sha1.cpp:236
void update(const std::string &s)
Definition sha1.cpp:57
int main(int argc, char *argv[])
Definition Config.h:37
std::vector< unsigned char > sha1(const std::string &string)
Definition sha1.cpp:267