📄 messagedigest.hpp
字号:
//// VMime library (http://www.vmime.org)// Copyright (C) 2002-2008 Vincent Richard <vincent@vincent-richard.net>//// This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License as// published by the Free Software Foundation; either version 2 of// the License, or (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// General Public License for more details.//// You should have received a copy of the GNU General Public License along// with this program; if not, write to the Free Software Foundation, Inc.,// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.//// Linking this library statically or dynamically with other modules is making// a combined work based on this library. Thus, the terms and conditions of// the GNU General Public License cover the whole combination.//#ifndef VMIME_SECURITY_DIGEST_MESSAGEDIGEST_HPP_INCLUDED#define VMIME_SECURITY_DIGEST_MESSAGEDIGEST_HPP_INCLUDED#include "vmime/object.hpp"#include "vmime/types.hpp"namespace vmime {namespace security {namespace digest {/** Computes message digests using standard algorithms, * such as MD5 or SHA. */class messageDigest : public object{public: /** Updates the digest using the specified string. * * @param s the string with which to update the digest. */ virtual void update(const string& s) = 0; /** Updates the digest using the specified byte. * * @param b the byte with which to update the digest. */ virtual void update(const byte_t b) = 0; /** Updates the digest using the specified array of bytes. * * @param buffer array of bytes * @param len number of bytes to use in the buffer */ virtual void update(const byte_t* buffer, const unsigned long len) = 0; /** Updates the digest using the specified array of bytes, * starting at the specified offset. * * @param buffer array of bytes * @param offset offset to start from in the array of bytes * @param len number of bytes to use, starting at offset */ virtual void update(const byte_t* buffer, const unsigned long offset, const unsigned long len) = 0; /** Completes the hash computation by performing final operations * such as padding. */ virtual void finalize() = 0; /** Completes the hash computation by performing final operations * such as padding. This is equivalent to calling update() and * then finalize(). */ virtual void finalize(const string& s) = 0; /** Completes the hash computation by performing final operations * such as padding. This is equivalent to calling update() and * then finalize(). */ virtual void finalize(const byte_t* buffer, const unsigned long len) = 0; /** Completes the hash computation by performing final operations * such as padding. This is equivalent to calling update() and * then finalize(). */ virtual void finalize(const byte_t* buffer, const unsigned long offset, const unsigned long len) = 0; /** Returns the length of the hash. * This is the length of the array returned by getDigest(). * * @return length of computed hash */ virtual int getDigestLength() const = 0; /** Returns the hash, as computed by the algorithm. * You must call finalize() before using this function, or the * hash will not be correct. * To get the size of the returned array, call getDigestLength(). * * @return computed hash */ virtual const byte_t* getDigest() const = 0; /** Returns the hash as an hexadecimal string. * You must call finalize() before using this function, or the * hash will not be correct. * * @return computed hash, in hexadecimal format */ virtual const string getHexDigest() const; /** Resets the algorithm to its initial state, so that you can * compute a new hash using the same object. */ virtual void reset() = 0;};} // digest} // security} // vmime#endif // VMIME_SECURITY_DIGEST_MESSAGEDIGEST_HPP_INCLUDED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -