2014-12-11 10:50:15 +03:00
|
|
|
// Copyright (c) 2012-2014 Konstantin Isakov <ikm@zbackup.org> and ZBackup contributors, see CONTRIBUTORS
|
2014-10-10 13:50:55 +04:00
|
|
|
// Part of ZBackup. Licensed under GNU GPLv2 or later + OpenSSL, see LICENSE
|
2013-07-18 21:33:25 +04:00
|
|
|
|
|
|
|
#ifndef SHA256_HH_INCLUDED__
|
|
|
|
#define SHA256_HH_INCLUDED__
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <openssl/sha.h>
|
|
|
|
#include <stddef.h>
|
|
|
|
|
|
|
|
using std::string;
|
|
|
|
|
|
|
|
/// A simple wrapper over openssl
|
|
|
|
class Sha256
|
|
|
|
{
|
|
|
|
SHA256_CTX ctx;
|
|
|
|
public:
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
// Number of bytes a digest has
|
|
|
|
Size = SHA256_DIGEST_LENGTH
|
|
|
|
};
|
|
|
|
|
|
|
|
Sha256();
|
|
|
|
|
|
|
|
/// Adds more data
|
|
|
|
void add( void const * data, size_t size );
|
|
|
|
|
|
|
|
/// Result should point at at least Size bytes
|
|
|
|
void finish( void * result );
|
|
|
|
|
|
|
|
/// Returns result as a string blob
|
|
|
|
string finish();
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|