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 }