📄 trunhash.h
字号:
#ifndef CRYPTOPP_TRUNHASH_H#define CRYPTOPP_TRUNHASH_H#include "cryptlib.h"NAMESPACE_BEGIN(CryptoPP)class NullHash : public HashTransformation{public: void Update(const byte *input, size_t length) {} unsigned int DigestSize() const {return 0;} void TruncatedFinal(byte *digest, size_t digestSize) {} bool TruncatedVerify(const byte *digest, size_t digestLength) {return true;}};//! construct new HashModule with smaller DigestSize() from existing onetemplate <class T>class TruncatedHashTemplate : public HashTransformation{public: TruncatedHashTemplate(T hm, unsigned int digestSize) : m_hm(hm), m_digestSize(digestSize) {} TruncatedHashTemplate(const byte *key, size_t keyLength, unsigned int digestSize) : m_hm(key, keyLength), m_digestSize(digestSize) {} TruncatedHashTemplate(size_t digestSize) : m_digestSize(digestSize) {} void Restart() {m_hm.Restart();} void Update(const byte *input, size_t length) {m_hm.Update(input, length);} unsigned int DigestSize() const {return m_digestSize;} void TruncatedFinal(byte *digest, size_t digestSize) {m_hm.TruncatedFinal(digest, digestSize);} bool TruncatedVerify(const byte *digest, size_t digestLength) {return m_hm.TruncatedVerify(digest, digestLength);}private: T m_hm; unsigned int m_digestSize;};typedef TruncatedHashTemplate<HashTransformation &> TruncatedHashModule;NAMESPACE_END#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -