source: psi/trunk/cutestuff/util/sha1.h@ 12

Last change on this file since 12 was 2, checked in by dmik, 19 years ago

Imported original Psi 0.10 sources from Affinix

File size: 1.6 KB
Line 
1/*
2 * sha1.h - Secure Hash Algorithm 1
3 * Copyright (C) 2003 Justin Karneges
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library 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 GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 */
20
21#ifndef CS_SHA1_H
22#define CS_SHA1_H
23
24#include<qstring.h>
25
26// CS_NAMESPACE_BEGIN
27
28class SHA1
29{
30public:
31 static QByteArray hash(const QByteArray &);
32 static QByteArray hashString(const QCString &);
33 static QString digest(const QString &);
34
35private:
36 SHA1();
37
38 struct SHA1_CONTEXT
39 {
40 Q_UINT32 state[5];
41 Q_UINT32 count[2];
42 unsigned char buffer[64];
43 };
44
45 typedef union {
46 unsigned char c[64];
47 Q_UINT32 l[16];
48 } CHAR64LONG16;
49
50 void transform(Q_UINT32 state[5], unsigned char buffer[64]);
51 void init(SHA1_CONTEXT* context);
52 void update(SHA1_CONTEXT* context, unsigned char* data, Q_UINT32 len);
53 void final(unsigned char digest[20], SHA1_CONTEXT* context);
54
55 unsigned long blk0(Q_UINT32 i);
56 bool bigEndian;
57
58 CHAR64LONG16* block;
59};
60
61// CS_NAMESPACE_END
62
63#endif
Note: See TracBrowser for help on using the repository browser.