libpurple/protocols/msn/object.c

branch
soc.2013.gobjectification
changeset 34557
295cd5bf4c41
parent 33909
773899cbd05a
child 34567
ea5103f66b0e
equal deleted inserted replaced
34556:087db73b115d 34557:295cd5bf4c41
24 24
25 #include "msn.h" 25 #include "msn.h"
26 #include "object.h" 26 #include "object.h"
27 #include "debug.h" 27 #include "debug.h"
28 /* Sha1 stuff */ 28 /* Sha1 stuff */
29 #include "cipher.h" 29 #include "ciphers/sha1.h"
30 /* Base64 stuff */ 30 /* Base64 stuff */
31 #include "util.h" 31 #include "util.h"
32 32
33 #define GET_STRING_TAG(field, id) \ 33 #define GET_STRING_TAG(field, id) \
34 if ((tag = strstr(str, id "=\"")) != NULL) \ 34 if ((tag = strstr(str, id "=\"")) != NULL) \
128 msn_object_new_from_image(PurpleStoredImage *img, const char *location, 128 msn_object_new_from_image(PurpleStoredImage *img, const char *location,
129 const char *creator, MsnObjectType type) 129 const char *creator, MsnObjectType type)
130 { 130 {
131 MsnObject *msnobj; 131 MsnObject *msnobj;
132 132
133 PurpleCipherContext *ctx; 133 PurpleCipher *cipher;
134 char *buf; 134 char *buf;
135 gconstpointer data; 135 gconstpointer data;
136 size_t size; 136 size_t size;
137 char *base64; 137 char *base64;
138 unsigned char digest[20]; 138 unsigned char digest[20];
155 msn_object_set_image(msnobj, img); 155 msn_object_set_image(msnobj, img);
156 156
157 /* Compute the SHA1D field. */ 157 /* Compute the SHA1D field. */
158 memset(digest, 0, sizeof(digest)); 158 memset(digest, 0, sizeof(digest));
159 159
160 ctx = purple_cipher_context_new_by_name("sha1", NULL); 160 cipher = purple_sha1_cipher_new();
161 purple_cipher_context_append(ctx, data, size); 161 purple_cipher_append(cipher, data, size);
162 purple_cipher_context_digest(ctx, digest, sizeof(digest)); 162 purple_cipher_digest(cipher, digest, sizeof(digest));
163 163
164 base64 = purple_base64_encode(digest, sizeof(digest)); 164 base64 = purple_base64_encode(digest, sizeof(digest));
165 msn_object_set_sha1d(msnobj, base64); 165 msn_object_set_sha1d(msnobj, base64);
166 g_free(base64); 166 g_free(base64);
167 167
177 msn_object_get_friendly(msnobj), 177 msn_object_get_friendly(msnobj),
178 msn_object_get_sha1d(msnobj)); 178 msn_object_get_sha1d(msnobj));
179 179
180 memset(digest, 0, sizeof(digest)); 180 memset(digest, 0, sizeof(digest));
181 181
182 purple_cipher_context_reset(ctx, NULL); 182 purple_cipher_reset(cipher);
183 purple_cipher_context_append(ctx, (const guchar *)buf, strlen(buf)); 183 purple_cipher_append(cipher, (const guchar *)buf, strlen(buf));
184 purple_cipher_context_digest(ctx, digest, sizeof(digest)); 184 purple_cipher_digest(cipher, digest, sizeof(digest));
185 purple_cipher_context_destroy(ctx); 185 g_object_unref(cipher);
186 g_free(buf); 186 g_free(buf);
187 187
188 base64 = purple_base64_encode(digest, sizeof(digest)); 188 base64 = purple_base64_encode(digest, sizeof(digest));
189 msn_object_set_sha1c(msnobj, base64); 189 msn_object_set_sha1c(msnobj, base64);
190 g_free(base64); 190 g_free(base64);

mercurial