Mercurial > pidgin
annotate libpurple/ciphers/sha256.c @ 32751:6b80dbe29e0c
I'm really going to try to release Tuesday night. I'm going to try to
confirm that we still build on windows... but if anyone else wants to
test it, that would be good, too
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Mon, 12 Mar 2012 08:56:12 +0000 |
parents | ca94413ccd0e |
children |
rev | line source |
---|---|
31217
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 /* |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 * purple |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 * |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 * Purple is the legal property of its developers, whose names are too numerous |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 * to list here. Please refer to the COPYRIGHT file distributed with this |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 * source distribution. |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 * |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 * This program is free software; you can redistribute it and/or modify |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 * (at your option) any later version. |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 * |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 * GNU General Public License for more details. |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 * |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 * along with this program; if not, write to the Free Software |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 */ |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 #include <cipher.h> |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 |
31221
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
24 #if !GLIB_CHECK_VERSION(2,16,0) |
31217
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 |
31221
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
26 #define SHA256_HMAC_BLOCK_SIZE 64 |
31217
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 #define SHA256_ROTR(X,n) ((((X) >> (n)) | ((X) << (32-(n)))) & 0xFFFFFFFF) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 static const guint32 sha256_K[64] = |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 }; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
40 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 struct SHA256Context { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 guint32 H[8]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 guint32 W[64]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 gint lenW; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 guint32 sizeHi; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 guint32 sizeLo; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 }; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 |
31221
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
51 static size_t |
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
52 sha256_get_block_size(PurpleCipherContext *context) |
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
53 { |
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
54 /* This does not change (in this case) */ |
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
55 return SHA256_HMAC_BLOCK_SIZE; |
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
56 } |
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
57 |
31217
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
58 static void |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
59 sha256_hash_block(struct SHA256Context *sha256_ctx) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
60 gint i; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
61 guint32 A, B, C, D, E, F, G, H, T1, T2; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
63 for(i = 16; i < 64; i++) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
64 sha256_ctx->W[i] = |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
65 (SHA256_ROTR(sha256_ctx->W[i-2], 17) ^ SHA256_ROTR(sha256_ctx->W[i-2], 19) ^ (sha256_ctx->W[i-2] >> 10)) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
66 + sha256_ctx->W[i-7] |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
67 + (SHA256_ROTR(sha256_ctx->W[i-15], 7) ^ SHA256_ROTR(sha256_ctx->W[i-15], 18) ^ (sha256_ctx->W[i-15] >> 3)) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
68 + sha256_ctx->W[i-16]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
69 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
70 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 A = sha256_ctx->H[0]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
72 B = sha256_ctx->H[1]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
73 C = sha256_ctx->H[2]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
74 D = sha256_ctx->H[3]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
75 E = sha256_ctx->H[4]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
76 F = sha256_ctx->H[5]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
77 G = sha256_ctx->H[6]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
78 H = sha256_ctx->H[7]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
79 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
80 for(i = 0; i < 64; i++) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
81 T1 = H |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
82 + (SHA256_ROTR(E, 6) ^ SHA256_ROTR(E, 11) ^ SHA256_ROTR(E, 25)) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
83 + ((E & F) ^ ((~E) & G)) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
84 + sha256_K[i] + sha256_ctx->W[i]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
85 T2 = (SHA256_ROTR(A, 2) ^ SHA256_ROTR(A, 13) ^ SHA256_ROTR(A, 22)) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
86 + ((A & B) ^ (A & C) ^ (B & C)); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 H = G; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
88 G = F; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
89 F = E; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
90 E = D + T1; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
91 D = C; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
92 C = B; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
93 B = A; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
94 A = T1 + T2; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
95 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
96 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
97 sha256_ctx->H[0] += A; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
98 sha256_ctx->H[1] += B; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
99 sha256_ctx->H[2] += C; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
100 sha256_ctx->H[3] += D; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
101 sha256_ctx->H[4] += E; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
102 sha256_ctx->H[5] += F; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
103 sha256_ctx->H[6] += G; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
104 sha256_ctx->H[7] += H; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
105 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
106 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
107 static void |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
108 sha256_set_opt(PurpleCipherContext *context, const gchar *name, void *value) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
109 struct SHA256Context *ctx; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
110 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
111 ctx = purple_cipher_context_get_data(context); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
112 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
113 if(!strcmp(name, "sizeHi")) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
114 ctx->sizeHi = GPOINTER_TO_INT(value); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
115 } else if(!strcmp(name, "sizeLo")) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
116 ctx->sizeLo = GPOINTER_TO_INT(value); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
117 } else if(!strcmp(name, "lenW")) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
118 ctx->lenW = GPOINTER_TO_INT(value); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
119 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
120 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
121 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
122 static void * |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
123 sha256_get_opt(PurpleCipherContext *context, const gchar *name) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
124 struct SHA256Context *ctx; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
125 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
126 ctx = purple_cipher_context_get_data(context); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
127 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
128 if(!strcmp(name, "sizeHi")) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
129 return GINT_TO_POINTER(ctx->sizeHi); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 } else if(!strcmp(name, "sizeLo")) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
131 return GINT_TO_POINTER(ctx->sizeLo); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
132 } else if(!strcmp(name, "lenW")) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
133 return GINT_TO_POINTER(ctx->lenW); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
134 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
135 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
136 return NULL; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
137 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
138 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
139 static void |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
140 sha256_init(PurpleCipherContext *context, void *extra) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
141 struct SHA256Context *sha256_ctx; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
142 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
143 sha256_ctx = g_new0(struct SHA256Context, 1); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
144 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
145 purple_cipher_context_set_data(context, sha256_ctx); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
146 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
147 purple_cipher_context_reset(context, extra); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
148 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
149 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
150 static void |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
151 sha256_reset(PurpleCipherContext *context, void *extra) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
152 struct SHA256Context *sha256_ctx; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
153 gint i; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
154 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
155 sha256_ctx = purple_cipher_context_get_data(context); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
156 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
157 g_return_if_fail(sha256_ctx); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
158 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
159 sha256_ctx->lenW = 0; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
160 sha256_ctx->sizeHi = 0; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
161 sha256_ctx->sizeLo = 0; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
162 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
163 sha256_ctx->H[0] = 0x6a09e667; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
164 sha256_ctx->H[1] = 0xbb67ae85; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
165 sha256_ctx->H[2] = 0x3c6ef372; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
166 sha256_ctx->H[3] = 0xa54ff53a; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
167 sha256_ctx->H[4] = 0x510e527f; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
168 sha256_ctx->H[5] = 0x9b05688c; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
169 sha256_ctx->H[6] = 0x1f83d9ab; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
170 sha256_ctx->H[7] = 0x5be0cd19; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
171 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
172 for(i = 0; i < 64; i++) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
173 sha256_ctx->W[i] = 0; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
174 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
175 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
176 static void |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
177 sha256_uninit(PurpleCipherContext *context) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
178 struct SHA256Context *sha256_ctx; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
179 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
180 purple_cipher_context_reset(context, NULL); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
181 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
182 sha256_ctx = purple_cipher_context_get_data(context); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
183 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
184 memset(sha256_ctx, 0, sizeof(struct SHA256Context)); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
185 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
186 g_free(sha256_ctx); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
187 sha256_ctx = NULL; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
188 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
189 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
190 static void |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
191 sha256_append(PurpleCipherContext *context, const guchar *data, size_t len) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
192 struct SHA256Context *sha256_ctx; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
193 gint i; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
194 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
195 sha256_ctx = purple_cipher_context_get_data(context); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
196 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
197 g_return_if_fail(sha256_ctx); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
198 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
199 for(i = 0; i < len; i++) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
200 sha256_ctx->W[sha256_ctx->lenW / 4] <<= 8; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
201 sha256_ctx->W[sha256_ctx->lenW / 4] |= data[i]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
202 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
203 if((++sha256_ctx->lenW) % 64 == 0) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
204 sha256_hash_block(sha256_ctx); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
205 sha256_ctx->lenW = 0; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
206 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
207 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
208 sha256_ctx->sizeLo += 8; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
209 sha256_ctx->sizeHi += (sha256_ctx->sizeLo < 8); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
210 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
211 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
212 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
213 static gboolean |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
214 sha256_digest(PurpleCipherContext *context, size_t in_len, guchar digest[32], |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
215 size_t *out_len) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
216 { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
217 struct SHA256Context *sha256_ctx; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
218 guchar pad0x80 = 0x80, pad0x00 = 0x00; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
219 guchar padlen[8]; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
220 gint i; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
221 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
222 g_return_val_if_fail(in_len >= 32, FALSE); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
223 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
224 sha256_ctx = purple_cipher_context_get_data(context); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
225 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
226 g_return_val_if_fail(sha256_ctx, FALSE); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
227 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
228 padlen[0] = (guchar)((sha256_ctx->sizeHi >> 24) & 255); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
229 padlen[1] = (guchar)((sha256_ctx->sizeHi >> 16) & 255); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
230 padlen[2] = (guchar)((sha256_ctx->sizeHi >> 8) & 255); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
231 padlen[3] = (guchar)((sha256_ctx->sizeHi >> 0) & 255); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
232 padlen[4] = (guchar)((sha256_ctx->sizeLo >> 24) & 255); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
233 padlen[5] = (guchar)((sha256_ctx->sizeLo >> 16) & 255); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
234 padlen[6] = (guchar)((sha256_ctx->sizeLo >> 8) & 255); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
235 padlen[7] = (guchar)((sha256_ctx->sizeLo >> 0) & 255); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
236 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
237 /* pad with a 1, then zeroes, then length */ |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
238 purple_cipher_context_append(context, &pad0x80, 1); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
239 while(sha256_ctx->lenW != 56) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
240 purple_cipher_context_append(context, &pad0x00, 1); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
241 purple_cipher_context_append(context, padlen, 8); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
242 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
243 for(i = 0; i < 32; i++) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
244 digest[i] = (guchar)(sha256_ctx->H[i / 4] >> 24); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
245 sha256_ctx->H[i / 4] <<= 8; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
246 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
247 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
248 purple_cipher_context_reset(context, NULL); |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
249 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
250 if(out_len) |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
251 *out_len = 32; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
252 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
253 return TRUE; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
254 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
255 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
256 static PurpleCipherOps SHA256Ops = { |
31353
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
257 sha256_set_opt, /* Set Option */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
258 sha256_get_opt, /* Get Option */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
259 sha256_init, /* init */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
260 sha256_reset, /* reset */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
261 sha256_uninit, /* uninit */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
262 NULL, /* set iv */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
263 sha256_append, /* append */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
264 sha256_digest, /* digest */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
265 NULL, /* encrypt */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
266 NULL, /* decrypt */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
267 NULL, /* set salt */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
268 NULL, /* get salt size */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
269 NULL, /* set key */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
270 NULL, /* get key size */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
271 NULL, /* set batch mode */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
272 NULL, /* get batch mode */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
273 sha256_get_block_size, /* get block size */ |
ca94413ccd0e
Named initializers and most other C99isms don't work in Visual C++ .NET 2005 in
Florian Quèze <florian@instantbird.org>
parents:
31221
diff
changeset
|
274 NULL /* set key with len */ |
31217
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
275 }; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
276 |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
277 PurpleCipherOps * |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
278 purple_sha256_cipher_get_ops(void) { |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
279 return &SHA256Ops; |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
280 } |
3af51303d45c
Moved sha256 to the sub library
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
281 |
31221
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
282 #endif /* !GLIB_CHECK_VERSION(2,16,0) */ |
2b041e31b825
Removed the "new" api I added by moving it to ciphers/gchecksum.c. Moved the gchecksum implements into gchecksum.c as a preproc macro, removed them from their individual files
Gary Kramlich <grim@reaperworld.com>
parents:
31219
diff
changeset
|
283 |