retro-imager/acceleratedcryptographichash.h
Floris Bos a6a4f0fc5b Mac: use system hash functions
May perform better under emulation
2020-09-29 19:56:12 +02:00

35 lines
878 B
C++

#ifndef ACCELERATEDCRYPTOGRAPHICHASH_H
#define ACCELERATEDCRYPTOGRAPHICHASH_H
/*
* SPDX-License-Identifier: Apache-2.0
* Copyright (C) 2020 Raspberry Pi (Trading) Limited
*/
#include <QCryptographicHash>
#ifdef Q_OS_DARWIN
#include <CommonCrypto/CommonDigest.h>
#define SHA256_CTX CC_SHA256_CTX
#define SHA256_DIGEST_LENGTH CC_SHA256_DIGEST_LENGTH
#define SHA256_Init CC_SHA256_Init
#define SHA256_Update CC_SHA256_Update
#define SHA256_Final CC_SHA256_Final
#else
#include "openssl/sha.h"
#endif
class AcceleratedCryptographicHash
{
public:
explicit AcceleratedCryptographicHash(QCryptographicHash::Algorithm method);
virtual ~AcceleratedCryptographicHash();
void addData(const char *data, int length);
void addData(const QByteArray &data);
QByteArray result();
protected:
SHA256_CTX _sha256;
};
#endif // ACCELERATEDCRYPTOGRAPHICHASH_H