~ubuntu-branches/ubuntu/vivid/clementine/vivid-proposed

« back to all changes in this revision

Viewing changes to 3rdparty/sha2/sha2.h

  • Committer: Package Import Robot
  • Author(s): Thomas Pierson
  • Date: 2014-07-12 22:07:28 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20140712220728-5p88h4szhjx1rfrd
Tags: 1.2.3+dfsg-1
* New upstream release. (Closes: #742163, #724615, #722471)
* Update debian/watch file.
* Bump Standards-Version to 3.9.5.
* Bump debian/copyright standard version to 1.0.
* Fix a misspelling issue in debian/copyright.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
 * $Id: sha2.h,v 1.1 2001/11/08 00:02:01 adg Exp adg $
33
33
 */
34
34
 
35
 
#ifndef __SHA2_H__
36
 
#define __SHA2_H__
37
 
 
38
 
#ifdef __cplusplus
39
 
extern "C" {
40
 
#endif
41
 
 
 
35
#ifndef __CLEMENTINE_SHA2_H__
 
36
#define __CLEMENTINE_SHA2_H__
42
37
 
43
38
/*
44
39
 * Import u_intXX_t size_t type definitions from system headers.  You
47
42
 */
48
43
#include <sys/types.h>
49
44
 
50
 
#ifdef SHA2_USE_INTTYPES_H
51
 
 
52
 
#include <inttypes.h>
53
 
 
54
 
#endif /* SHA2_USE_INTTYPES_H */
55
 
 
 
45
namespace clementine_sha2 {
56
46
 
57
47
/*** SHA-256/384/512 Various Length Definitions ***********************/
58
 
#define SHA256_BLOCK_LENGTH             64
59
 
#define SHA256_DIGEST_LENGTH            32
60
 
#define SHA256_DIGEST_STRING_LENGTH     (SHA256_DIGEST_LENGTH * 2 + 1)
61
 
#define SHA384_BLOCK_LENGTH             128
62
 
#define SHA384_DIGEST_LENGTH            48
63
 
#define SHA384_DIGEST_STRING_LENGTH     (SHA384_DIGEST_LENGTH * 2 + 1)
64
 
#define SHA512_BLOCK_LENGTH             128
65
 
#define SHA512_DIGEST_LENGTH            64
66
 
#define SHA512_DIGEST_STRING_LENGTH     (SHA512_DIGEST_LENGTH * 2 + 1)
 
48
static const int SHA256_BLOCK_LENGTH = 64;
 
49
static const int SHA256_DIGEST_LENGTH = 32;
 
50
static const int SHA256_DIGEST_STRING_LENGTH = (SHA256_DIGEST_LENGTH * 2 + 1);
 
51
static const int SHA384_BLOCK_LENGTH = 128;
 
52
static const int SHA384_DIGEST_LENGTH = 48;
 
53
static const int SHA384_DIGEST_STRING_LENGTH = (SHA384_DIGEST_LENGTH * 2 + 1);
 
54
static const int SHA512_BLOCK_LENGTH = 128;
 
55
static const int SHA512_DIGEST_LENGTH = 64;
 
56
static const int SHA512_DIGEST_STRING_LENGTH = (SHA512_DIGEST_LENGTH * 2 + 1);
67
57
 
68
58
 
69
59
/*** SHA-256/384/512 Context Structures *******************************/
76
66
typedef unsigned int u_int32_t;         /* 4-bytes (32-bits) */
77
67
typedef unsigned long long u_int64_t;   /* 8-bytes (64-bits) */
78
68
#endif
79
 
/*
80
 
 * Most BSD systems already define u_intXX_t types, as does Linux.
81
 
 * Some systems, however, like Compaq's Tru64 Unix instead can use
82
 
 * uintXX_t types defined by very recent ANSI C standards and included
83
 
 * in the file:
84
 
 *
85
 
 *   #include <inttypes.h>
86
 
 *
87
 
 * If you choose to use <inttypes.h> then please define: 
88
 
 *
89
 
 *   #define SHA2_USE_INTTYPES_H
90
 
 *
91
 
 * Or on the command line during compile:
92
 
 *
93
 
 *   cc -DSHA2_USE_INTTYPES_H ...
94
 
 */
95
 
#ifdef SHA2_USE_INTTYPES_H
96
 
 
97
 
typedef struct _SHA256_CTX {
98
 
        uint32_t        state[8];
99
 
        uint64_t        bitcount;
100
 
        uint8_t buffer[SHA256_BLOCK_LENGTH];
101
 
} SHA256_CTX;
102
 
typedef struct _SHA512_CTX {
103
 
        uint64_t        state[8];
104
 
        uint64_t        bitcount[2];
105
 
        uint8_t buffer[SHA512_BLOCK_LENGTH];
106
 
} SHA512_CTX;
107
 
 
108
 
#else /* SHA2_USE_INTTYPES_H */
109
69
 
110
70
typedef struct _SHA256_CTX {
111
71
        u_int32_t       state[8];
118
78
        u_int8_t        buffer[SHA512_BLOCK_LENGTH];
119
79
} SHA512_CTX;
120
80
 
121
 
#endif /* SHA2_USE_INTTYPES_H */
122
 
 
123
81
typedef SHA512_CTX SHA384_CTX;
124
82
 
125
83
 
126
 
/*** SHA-256/384/512 Function Prototypes ******************************/
127
 
#ifndef NOPROTO
128
 
#ifdef SHA2_USE_INTTYPES_H
129
 
 
130
 
void SHA256_Init(SHA256_CTX *);
131
 
void SHA256_Update(SHA256_CTX*, const uint8_t*, size_t);
132
 
void SHA256_Final(uint8_t[SHA256_DIGEST_LENGTH], SHA256_CTX*);
133
 
char* SHA256_End(SHA256_CTX*, char[SHA256_DIGEST_STRING_LENGTH]);
134
 
char* SHA256_Data(const uint8_t*, size_t, char[SHA256_DIGEST_STRING_LENGTH]);
135
 
 
136
 
void SHA384_Init(SHA384_CTX*);
137
 
void SHA384_Update(SHA384_CTX*, const uint8_t*, size_t);
138
 
void SHA384_Final(uint8_t[SHA384_DIGEST_LENGTH], SHA384_CTX*);
139
 
char* SHA384_End(SHA384_CTX*, char[SHA384_DIGEST_STRING_LENGTH]);
140
 
char* SHA384_Data(const uint8_t*, size_t, char[SHA384_DIGEST_STRING_LENGTH]);
141
 
 
142
 
void SHA512_Init(SHA512_CTX*);
143
 
void SHA512_Update(SHA512_CTX*, const uint8_t*, size_t);
144
 
void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*);
145
 
char* SHA512_End(SHA512_CTX*, char[SHA512_DIGEST_STRING_LENGTH]);
146
 
char* SHA512_Data(const uint8_t*, size_t, char[SHA512_DIGEST_STRING_LENGTH]);
147
 
 
148
 
#else /* SHA2_USE_INTTYPES_H */
149
 
 
150
84
void SHA256_Init(SHA256_CTX *);
151
85
void SHA256_Update(SHA256_CTX*, const u_int8_t*, size_t);
152
86
void SHA256_Final(u_int8_t[SHA256_DIGEST_LENGTH], SHA256_CTX*);
165
99
char* SHA512_End(SHA512_CTX*, char[SHA512_DIGEST_STRING_LENGTH]);
166
100
char* SHA512_Data(const u_int8_t*, size_t, char[SHA512_DIGEST_STRING_LENGTH]);
167
101
 
168
 
#endif /* SHA2_USE_INTTYPES_H */
169
 
 
170
 
#else /* NOPROTO */
171
 
 
172
 
void SHA256_Init();
173
 
void SHA256_Update();
174
 
void SHA256_Final();
175
 
char* SHA256_End();
176
 
char* SHA256_Data();
177
 
 
178
 
void SHA384_Init();
179
 
void SHA384_Update();
180
 
void SHA384_Final();
181
 
char* SHA384_End();
182
 
char* SHA384_Data();
183
 
 
184
 
void SHA512_Init();
185
 
void SHA512_Update();
186
 
void SHA512_Final();
187
 
char* SHA512_End();
188
 
char* SHA512_Data();
189
 
 
190
 
#endif /* NOPROTO */
191
 
 
192
 
#ifdef  __cplusplus
193
 
}
194
 
#endif /* __cplusplus */
195
 
 
196
 
#endif /* __SHA2_H__ */
197
 
 
 
102
}  // namespace clementine_sha2
 
103
 
 
104
#endif /* __CLEMENTINE_SHA2_H__ */