12 #ifndef hifi_HMACAuth_h
13 #define hifi_HMACAuth_h
17 #include <QtCore/QMutex>
23 enum AuthMethod { MD5, SHA1, SHA224, SHA256, RIPEMD160 };
24 using HMACHash = std::vector<unsigned char>;
26 explicit HMACAuth(AuthMethod authMethod = MD5);
29 bool setKey(
const char* keyValue,
int keyLen);
30 bool setKey(
const QUuid& uidKey);
32 bool calculateHash(HMACHash& hashResult,
const char* data,
int dataLen);
35 bool addData(
const char* data,
int dataLen);
42 QRecursiveMutex _lock;
43 struct hmac_ctx_st* _hmacContext;
44 AuthMethod _authMethod;