mistserver/lib/auth.h
2021-10-19 22:29:40 +02:00

30 lines
1.5 KiB
C++

#pragma once
#include <string>
namespace Secure{
// MD5 hashing functions
std::string md5(std::string input);
std::string md5(const char *input, const unsigned int in_len);
void md5bin(const char *input, const unsigned int in_len, char *output);
// SHA256 hashing functions
std::string sha256(std::string input);
std::string sha256(const char *input, const unsigned int in_len);
void sha256bin(const char *input, const unsigned int in_len, char *output);
// Generic HMAC functions
std::string hmac(std::string msg, std::string key, unsigned int hashSize,
void hasher(const char *, const unsigned int, char *), unsigned int blockSize);
std::string hmac(const char *msg, const unsigned int msg_len, const char *key,
const unsigned int key_len, unsigned int hashSize,
void hasher(const char *, const unsigned int, char *), unsigned int blockSize);
void hmacbin(const char *msg, const unsigned int msg_len, const char *key, const unsigned int key_len,
unsigned int hashSize, void hasher(const char *, const unsigned int, char *),
unsigned int blockSize, char *output);
// Specific HMAC functions
std::string hmac_sha256(std::string msg, std::string key);
std::string hmac_sha256(const char *msg, const unsigned int msg_len, const char *key, const unsigned int key_len);
void hmac_sha256bin(const char *msg, const unsigned int msg_len, const char *key,
const unsigned int key_len, char *output);
}// namespace Secure