checkbrute/src/checksum_lib.h

49 lines
1.8 KiB
C++

/*****************************************************************************
* checkbrute Checksum Bruteforcing Tool
* Copyright (C) 2020 Syping
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* This software is provided as-is, no warranties are given to you, we are not
* responsible for anything with use of the software, you are self responsible.
*****************************************************************************/
#ifndef CHECKSUM_LIB_H
#define CHECKSUM_LIB_H
#include "checksum.h"
typedef int (*PluginHashSzFunction)();
typedef const char* (*PluginFormatFunction)();
typedef const char* (*PluginVersionFunction)();
typedef u_int32_t (*PluginHash32Function)(unsigned char*, size_t);
typedef u_int64_t (*PluginHash64Function)(unsigned char*, size_t);
class checksum_lib : public checksum
{
Q_OBJECT
public:
explicit checksum_lib(PluginFormatFunction formatFunc, PluginHash32Function hash32Func, PluginHashSzFunction hashSzFunc);
explicit checksum_lib(PluginFormatFunction formatFunc, PluginHash64Function hash64Func, PluginHashSzFunction hashSzFunc);
QByteArray generateChecksum(const QByteArray &data);
const QString formatName();
int checksumSize();
private:
PluginHash32Function hash32Func;
PluginHash64Function hash64Func;
QString p_formatName;
int p_checksumSize;
int p_funcBit;
};
#endif // CHECKSUM_LIB_H