1 /***************************************************************************
2 * Copyright (C) 2001-2003 by Christophe Devine *
3 * Copyright (C) 2005-2006 by Tarek Saidi *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; version 2 of the License. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
24 #include <QGlobalStatic>
33 extern void sha256_starts( sha256_context *ctx );
34 extern void sha256_update( sha256_context *ctx, const quint8 *input, quint32 length );
35 extern void sha256_finish( sha256_context *ctx, quint8 digest[32] );
39 SHA256(){sha256_starts(&ctx);}
40 ~SHA256(){overwriteCtx(&ctx);};
41 void update(void* input,quint32 length){sha256_update(&ctx,(quint8*)input,length);}
42 void finish(void* digest){sha256_finish(&ctx,(quint8*)digest);}
43 static void hashBuffer(const void* input, void* digest,quint32 length);
45 static void overwriteCtx(sha256_context* ctx);