mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-18 16:05:21 +01:00
Modern CPUs have special instructions to accelerate computing SHA hashes. The Qt QCryptographicHash code is standard C, so not taking advantage of those though. Outsource the hashing to OpenSSL that does. Shaves off some seconds during verification stage.
25 lines
602 B
C++
25 lines
602 B
C++
#ifndef ACCELERATEDCRYPTOGRAPHICHASH_H
|
|
#define ACCELERATEDCRYPTOGRAPHICHASH_H
|
|
|
|
/*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
* Copyright (C) 2020 Raspberry Pi (Trading) Limited
|
|
*/
|
|
|
|
#include <QCryptographicHash>
|
|
#include "openssl/sha.h"
|
|
|
|
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
|