File indexing completed on 2025-01-05 04:37:31

0001 /*
0002     SPDX-FileCopyrightText: 2005 Joris Guisson <joris.guisson@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #include "sha1hashgen.h"
0007 #include "functions.h"
0008 #include <arpa/inet.h>
0009 #include <stdio.h>
0010 #include <string.h>
0011 
0012 #include <QCryptographicHash>
0013 
0014 namespace bt
0015 {
0016 
0017 SHA1HashGen::SHA1HashGen()
0018     : h(new QCryptographicHash(QCryptographicHash::Sha1))
0019 {
0020     memset(result, 9, 20);
0021 }
0022 
0023 SHA1HashGen::~SHA1HashGen()
0024 {
0025     delete h;
0026 }
0027 
0028 SHA1Hash SHA1HashGen::generate(const Uint8 *data, Uint32 len)
0029 {
0030     h->addData((const char *)data, len);
0031     return SHA1Hash((const bt::Uint8 *)h->result().constData());
0032 }
0033 
0034 void SHA1HashGen::start()
0035 {
0036     h->reset();
0037 }
0038 
0039 void SHA1HashGen::update(const Uint8 *data, Uint32 len)
0040 {
0041     h->addData((const char *)data, len);
0042 }
0043 
0044 void SHA1HashGen::end()
0045 {
0046     memcpy(result, h->result().constData(), 20);
0047 }
0048 
0049 SHA1Hash SHA1HashGen::get() const
0050 {
0051     return SHA1Hash(result);
0052 }
0053 }