/* common/KMChecksum.h
 *
 * Copyright (C) 2023 OpenKylin, Inc
 */

#ifndef __KMCHECKSUM_H__
#define __KMCHECKSUM_H__

#include <glib.h>

#include <string>

/**
 * KMChecksum:
 * @brief : 为了方便使用，对glib中的GChecksum类型进行了简单封装
 * @note  : 当前只定义了使用到的方法，不存在的方法请自行添加
 */
class KMChecksum
{
public:
    KMChecksum(GChecksumType checksumType);
    ~KMChecksum();

    void update(const unsigned char *data, std::size_t length);
    void getDigest(unsigned char *buffer, std::size_t *digestLen);
    std::string getString();

private:
    GChecksum *m_checksum;
};

#endif // !__KMCHECKSUM_H__
