summaryrefslogtreecommitdiff
path: root/src/util/crypto_abe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/crypto_abe.c')
-rw-r--r--src/util/crypto_abe.c421
1 files changed, 213 insertions, 208 deletions
diff --git a/src/util/crypto_abe.c b/src/util/crypto_abe.c
index d702738de..1fe648e5a 100644
--- a/src/util/crypto_abe.c
+++ b/src/util/crypto_abe.c
@@ -32,65 +32,67 @@
32 32
33#include "gnunet_crypto_lib.h" 33#include "gnunet_crypto_lib.h"
34 34
35struct GNUNET_CRYPTO_AbeMasterKey { 35struct GNUNET_CRYPTO_AbeMasterKey
36 gabe_pub_t* pub; 36{
37 gabe_msk_t* msk; 37 gabe_pub_t*pub;
38 gabe_msk_t*msk;
38}; 39};
39 40
40struct GNUNET_CRYPTO_AbeKey { 41struct GNUNET_CRYPTO_AbeKey
41 gabe_pub_t* pub; 42{
42 gabe_prv_t* prv; 43 gabe_pub_t*pub;
44 gabe_prv_t*prv;
43}; 45};
44 46
45static int 47static int
46init_aes(element_t k, int enc, 48init_aes (element_t k, int enc,
47 gcry_cipher_hd_t* handle, 49 gcry_cipher_hd_t*handle,
48 struct GNUNET_CRYPTO_SymmetricSessionKey *key, 50 struct GNUNET_CRYPTO_SymmetricSessionKey *key,
49 unsigned char* iv) 51 unsigned char*iv)
50{ 52{
51 int rc; 53 int rc;
52 int key_len; 54 int key_len;
53 unsigned char* key_buf; 55 unsigned char*key_buf;
54 56
55 key_len = element_length_in_bytes(k) < 33 ? 3 : element_length_in_bytes(k); 57 key_len = element_length_in_bytes (k) < 33 ? 3 : element_length_in_bytes (k);
56 key_buf = (unsigned char*)malloc(key_len); 58 key_buf = (unsigned char*) malloc (key_len);
57 element_to_bytes(key_buf, k); 59 element_to_bytes (key_buf, k);
58 60
59 GNUNET_memcpy(key->aes_key, 61 GNUNET_memcpy (key->aes_key,
60 key_buf, 62 key_buf,
61 GNUNET_CRYPTO_AES_KEY_LENGTH); 63 GNUNET_CRYPTO_AES_KEY_LENGTH);
62 GNUNET_assert(0 == 64 GNUNET_assert (0 ==
63 gcry_cipher_open(handle, GCRY_CIPHER_AES256, 65 gcry_cipher_open (handle, GCRY_CIPHER_AES256,
64 GCRY_CIPHER_MODE_CFB, 0)); 66 GCRY_CIPHER_MODE_CFB, 0));
65 rc = gcry_cipher_setkey(*handle, 67 rc = gcry_cipher_setkey (*handle,
66 key->aes_key, 68 key->aes_key,
67 sizeof(key->aes_key)); 69 sizeof(key->aes_key));
68 GNUNET_assert((0 == rc) || ((char)rc == GPG_ERR_WEAK_KEY)); 70 GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY));
69 memset(iv, 0, 16); //TODO make reasonable 71 memset (iv, 0, 16); // TODO make reasonable
70 rc = gcry_cipher_setiv(*handle, 72 rc = gcry_cipher_setiv (*handle,
71 iv, 73 iv,
72 16); 74 16);
73 GNUNET_assert((0 == rc) || ((char)rc == GPG_ERR_WEAK_KEY)); 75 GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY));
74 76
75 free(key_buf); 77 free (key_buf);
76 return rc; 78 return rc;
77} 79}
78 80
79static int 81static int
80aes_128_cbc_encrypt(char* pt, 82aes_128_cbc_encrypt (char*pt,
81 int size, 83 int size,
82 element_t k, 84 element_t k,
83 char **ct) 85 char **ct)
84{ 86{
85 gcry_cipher_hd_t handle; 87 gcry_cipher_hd_t handle;
86 struct GNUNET_CRYPTO_SymmetricSessionKey skey; 88 struct GNUNET_CRYPTO_SymmetricSessionKey skey;
87 unsigned char iv[16]; 89 unsigned char iv[16];
88 char* buf; 90 char*buf;
89 int padding; 91 int padding;
90 int buf_size; 92 int buf_size;
91 uint8_t len[4]; 93 uint8_t len[4];
92 94
93 init_aes(k, 1, &handle, &skey, iv); 95 init_aes (k, 1, &handle, &skey, iv);
94 96
95 /* TODO make less crufty */ 97 /* TODO make less crufty */
96 98
@@ -101,37 +103,38 @@ aes_128_cbc_encrypt(char* pt,
101 len[3] = (size & 0xff) >> 0; 103 len[3] = (size & 0xff) >> 0;
102 padding = 16 - ((4 + size) % 16); 104 padding = 16 - ((4 + size) % 16);
103 buf_size = 4 + size + padding; 105 buf_size = 4 + size + padding;
104 buf = GNUNET_malloc(buf_size); 106 buf = GNUNET_malloc (buf_size);
105 GNUNET_memcpy(buf, len, 4); 107 GNUNET_memcpy (buf, len, 4);
106 GNUNET_memcpy(buf + 4, pt, size); 108 GNUNET_memcpy (buf + 4, pt, size);
107 *ct = GNUNET_malloc(buf_size); 109 *ct = GNUNET_malloc (buf_size);
108 110
109 GNUNET_assert(0 == gcry_cipher_encrypt(handle, *ct, buf_size, buf, buf_size)); 111 GNUNET_assert (0 == gcry_cipher_encrypt (handle, *ct, buf_size, buf,
110 gcry_cipher_close(handle); 112 buf_size));
111 //AES_cbc_encrypt(pt->data, ct->data, pt->len, &key, iv, AES_ENCRYPT); 113 gcry_cipher_close (handle);
112 GNUNET_free(buf); 114 // AES_cbc_encrypt(pt->data, ct->data, pt->len, &key, iv, AES_ENCRYPT);
115 GNUNET_free (buf);
113 return buf_size; 116 return buf_size;
114} 117}
115 118
116static int 119static int
117aes_128_cbc_decrypt(char* ct, 120aes_128_cbc_decrypt (char*ct,
118 int size, 121 int size,
119 element_t k, 122 element_t k,
120 char **pt) 123 char **pt)
121{ 124{
122 struct GNUNET_CRYPTO_SymmetricSessionKey skey; 125 struct GNUNET_CRYPTO_SymmetricSessionKey skey;
123 gcry_cipher_hd_t handle; 126 gcry_cipher_hd_t handle;
124 unsigned char iv[16]; 127 unsigned char iv[16];
125 char* tmp; 128 char*tmp;
126 uint32_t len; 129 uint32_t len;
127 130
128 init_aes(k, 1, &handle, &skey, iv); 131 init_aes (k, 1, &handle, &skey, iv);
129 132
130 tmp = GNUNET_malloc(size); 133 tmp = GNUNET_malloc (size);
131 134
132 //AES_cbc_encrypt(ct->data, pt->data, ct->len, &key, iv, AES_DECRYPT); 135 // AES_cbc_encrypt(ct->data, pt->data, ct->len, &key, iv, AES_DECRYPT);
133 GNUNET_assert(0 == gcry_cipher_decrypt(handle, tmp, size, ct, size)); 136 GNUNET_assert (0 == gcry_cipher_decrypt (handle, tmp, size, ct, size));
134 gcry_cipher_close(handle); 137 gcry_cipher_close (handle);
135 /* TODO make less crufty */ 138 /* TODO make less crufty */
136 139
137 /* get real length */ 140 /* get real length */
@@ -140,194 +143,195 @@ aes_128_cbc_decrypt(char* ct,
140 | ((tmp[0]) << 24) | ((tmp[1]) << 16) 143 | ((tmp[0]) << 24) | ((tmp[1]) << 16)
141 | ((tmp[2]) << 8) | ((tmp[3]) << 0); 144 | ((tmp[2]) << 8) | ((tmp[3]) << 0);
142 /* truncate any garbage from the padding */ 145 /* truncate any garbage from the padding */
143 *pt = GNUNET_malloc(len); 146 *pt = GNUNET_malloc (len);
144 GNUNET_memcpy(*pt, tmp + 4, len); 147 GNUNET_memcpy (*pt, tmp + 4, len);
145 GNUNET_free(tmp); 148 GNUNET_free (tmp);
146 return len; 149 return len;
147} 150}
148 151
149struct GNUNET_CRYPTO_AbeMasterKey* 152struct GNUNET_CRYPTO_AbeMasterKey*
150GNUNET_CRYPTO_cpabe_create_master_key(void) 153GNUNET_CRYPTO_cpabe_create_master_key (void)
151{ 154{
152 struct GNUNET_CRYPTO_AbeMasterKey* key; 155 struct GNUNET_CRYPTO_AbeMasterKey*key;
153 156
154 key = GNUNET_new(struct GNUNET_CRYPTO_AbeMasterKey); 157 key = GNUNET_new (struct GNUNET_CRYPTO_AbeMasterKey);
155 gabe_setup(&key->pub, &key->msk); 158 gabe_setup (&key->pub, &key->msk);
156 GNUNET_assert(NULL != key->pub); 159 GNUNET_assert (NULL != key->pub);
157 GNUNET_assert(NULL != key->msk); 160 GNUNET_assert (NULL != key->msk);
158 return key; 161 return key;
159} 162}
160 163
161void 164void
162GNUNET_CRYPTO_cpabe_delete_master_key(struct GNUNET_CRYPTO_AbeMasterKey *key) 165GNUNET_CRYPTO_cpabe_delete_master_key (struct GNUNET_CRYPTO_AbeMasterKey *key)
163{ 166{
164 gabe_msk_free(key->msk); 167 gabe_msk_free (key->msk);
165 gabe_pub_free(key->pub); 168 gabe_pub_free (key->pub);
166 //GNUNET_free (key->msk); 169 // GNUNET_free (key->msk);
167 //gabe_msk_free (key->msk); //For some reason free of pub implicit? 170 // gabe_msk_free (key->msk); //For some reason free of pub implicit?
168 GNUNET_free(key); 171 GNUNET_free (key);
169} 172}
170 173
171struct GNUNET_CRYPTO_AbeKey* 174struct GNUNET_CRYPTO_AbeKey*
172GNUNET_CRYPTO_cpabe_create_key(struct GNUNET_CRYPTO_AbeMasterKey *key, 175GNUNET_CRYPTO_cpabe_create_key (struct GNUNET_CRYPTO_AbeMasterKey *key,
173 char **attrs) 176 char **attrs)
174{ 177{
175 struct GNUNET_CRYPTO_AbeKey *prv_key; 178 struct GNUNET_CRYPTO_AbeKey *prv_key;
176 int size; 179 int size;
177 char *tmp; 180 char *tmp;
178 181
179 prv_key = GNUNET_new(struct GNUNET_CRYPTO_AbeKey); 182 prv_key = GNUNET_new (struct GNUNET_CRYPTO_AbeKey);
180 prv_key->prv = gabe_keygen(key->pub, key->msk, attrs); 183 prv_key->prv = gabe_keygen (key->pub, key->msk, attrs);
181 size = gabe_pub_serialize(key->pub, &tmp); 184 size = gabe_pub_serialize (key->pub, &tmp);
182 prv_key->pub = gabe_pub_unserialize(tmp, size); 185 prv_key->pub = gabe_pub_unserialize (tmp, size);
183 GNUNET_free(tmp); 186 GNUNET_free (tmp);
184 GNUNET_assert(NULL != prv_key->prv); 187 GNUNET_assert (NULL != prv_key->prv);
185 return prv_key; 188 return prv_key;
186} 189}
187 190
188void 191void
189GNUNET_CRYPTO_cpabe_delete_key(struct GNUNET_CRYPTO_AbeKey *key, 192GNUNET_CRYPTO_cpabe_delete_key (struct GNUNET_CRYPTO_AbeKey *key,
190 int delete_pub) 193 int delete_pub)
191{ 194{
192 //Memory management in gabe is buggy 195 // Memory management in gabe is buggy
193 gabe_prv_free(key->prv); 196 gabe_prv_free (key->prv);
194 if (GNUNET_YES == delete_pub) 197 if (GNUNET_YES == delete_pub)
195 gabe_pub_free(key->pub); 198 gabe_pub_free (key->pub);
196 GNUNET_free(key); 199 GNUNET_free (key);
197} 200}
198 201
199ssize_t 202ssize_t
200write_cpabe(void **result, 203write_cpabe (void **result,
201 uint32_t file_len, 204 uint32_t file_len,
202 char* cph_buf, 205 char*cph_buf,
203 int cph_buf_len, 206 int cph_buf_len,
204 char* aes_buf, 207 char*aes_buf,
205 int aes_buf_len) 208 int aes_buf_len)
206{ 209{
207 char *ptr; 210 char *ptr;
208 uint32_t *len; 211 uint32_t *len;
209 212
210 *result = GNUNET_malloc(12 + cph_buf_len + aes_buf_len); 213 *result = GNUNET_malloc (12 + cph_buf_len + aes_buf_len);
211 ptr = *result; 214 ptr = *result;
212 len = (uint32_t*)ptr; 215 len = (uint32_t*) ptr;
213 *len = htonl(file_len); 216 *len = htonl (file_len);
214 ptr += 4; 217 ptr += 4;
215 len = (uint32_t*)ptr; 218 len = (uint32_t*) ptr;
216 *len = htonl(aes_buf_len); 219 *len = htonl (aes_buf_len);
217 ptr += 4; 220 ptr += 4;
218 GNUNET_memcpy(ptr, aes_buf, aes_buf_len); 221 GNUNET_memcpy (ptr, aes_buf, aes_buf_len);
219 ptr += aes_buf_len; 222 ptr += aes_buf_len;
220 len = (uint32_t*)ptr; 223 len = (uint32_t*) ptr;
221 *len = htonl(cph_buf_len); 224 *len = htonl (cph_buf_len);
222 ptr += 4; 225 ptr += 4;
223 GNUNET_memcpy(ptr, cph_buf, cph_buf_len); 226 GNUNET_memcpy (ptr, cph_buf, cph_buf_len);
224 return 12 + cph_buf_len + aes_buf_len; 227 return 12 + cph_buf_len + aes_buf_len;
225} 228}
226 229
227ssize_t 230ssize_t
228read_cpabe(const void *data, 231read_cpabe (const void *data,
229 char** cph_buf, 232 char**cph_buf,
230 int *cph_buf_len, 233 int *cph_buf_len,
231 char** aes_buf, 234 char**aes_buf,
232 int *aes_buf_len) 235 int *aes_buf_len)
233{ 236{
234 int buf_len; 237 int buf_len;
235 char *ptr; 238 char *ptr;
236 uint32_t *len; 239 uint32_t *len;
237 240
238 ptr = (char*)data; 241 ptr = (char*) data;
239 len = (uint32_t*)ptr; 242 len = (uint32_t*) ptr;
240 buf_len = ntohl(*len); 243 buf_len = ntohl (*len);
241 ptr += 4; 244 ptr += 4;
242 len = (uint32_t*)ptr; 245 len = (uint32_t*) ptr;
243 *aes_buf_len = ntohl(*len); 246 *aes_buf_len = ntohl (*len);
244 ptr += 4; 247 ptr += 4;
245 *aes_buf = GNUNET_malloc(*aes_buf_len); 248 *aes_buf = GNUNET_malloc (*aes_buf_len);
246 GNUNET_memcpy(*aes_buf, ptr, *aes_buf_len); 249 GNUNET_memcpy (*aes_buf, ptr, *aes_buf_len);
247 ptr += *aes_buf_len; 250 ptr += *aes_buf_len;
248 len = (uint32_t*)ptr; 251 len = (uint32_t*) ptr;
249 *cph_buf_len = ntohl(*len); 252 *cph_buf_len = ntohl (*len);
250 ptr += 4; 253 ptr += 4;
251 *cph_buf = GNUNET_malloc(*cph_buf_len); 254 *cph_buf = GNUNET_malloc (*cph_buf_len);
252 GNUNET_memcpy(*cph_buf, ptr, *cph_buf_len); 255 GNUNET_memcpy (*cph_buf, ptr, *cph_buf_len);
253 256
254 return buf_len; 257 return buf_len;
255} 258}
256 259
257ssize_t 260ssize_t
258GNUNET_CRYPTO_cpabe_encrypt(const void *block, 261GNUNET_CRYPTO_cpabe_encrypt (const void *block,
259 size_t size, 262 size_t size,
260 const char *policy, 263 const char *policy,
261 const struct GNUNET_CRYPTO_AbeMasterKey *key, 264 const struct GNUNET_CRYPTO_AbeMasterKey *key,
262 void **result) 265 void **result)
263{ 266{
264 gabe_cph_t* cph; 267 gabe_cph_t*cph;
265 char* plt; 268 char*plt;
266 char* cph_buf; 269 char*cph_buf;
267 char* aes_buf; 270 char*aes_buf;
268 element_t m; 271 element_t m;
269 int cph_buf_len; 272 int cph_buf_len;
270 int aes_buf_len; 273 int aes_buf_len;
271 ssize_t result_len; 274 ssize_t result_len;
272 275
273 if (!(cph = gabe_enc(key->pub, m, (char*)policy))) 276 if (! (cph = gabe_enc (key->pub, m, (char*) policy)))
274 return GNUNET_SYSERR; 277 return GNUNET_SYSERR;
275 cph_buf_len = gabe_cph_serialize(cph, 278 cph_buf_len = gabe_cph_serialize (cph,
276 &cph_buf); 279 &cph_buf);
277 gabe_cph_free(cph); 280 gabe_cph_free (cph);
278 GNUNET_free(cph); 281 GNUNET_free (cph);
279 plt = GNUNET_memdup(block, size); 282 plt = GNUNET_memdup (block, size);
280 aes_buf_len = aes_128_cbc_encrypt(plt, size, m, &aes_buf); 283 aes_buf_len = aes_128_cbc_encrypt (plt, size, m, &aes_buf);
281 GNUNET_free(plt); 284 GNUNET_free (plt);
282 element_clear(m); 285 element_clear (m);
283 result_len = write_cpabe(result, size, cph_buf, cph_buf_len, aes_buf, aes_buf_len); 286 result_len = write_cpabe (result, size, cph_buf, cph_buf_len, aes_buf,
284 GNUNET_free(cph_buf); 287 aes_buf_len);
285 GNUNET_free(aes_buf); 288 GNUNET_free (cph_buf);
289 GNUNET_free (aes_buf);
286 return result_len; 290 return result_len;
287} 291}
288 292
289ssize_t 293ssize_t
290GNUNET_CRYPTO_cpabe_decrypt(const void *block, 294GNUNET_CRYPTO_cpabe_decrypt (const void *block,
291 size_t size, 295 size_t size,
292 const struct GNUNET_CRYPTO_AbeKey *key, 296 const struct GNUNET_CRYPTO_AbeKey *key,
293 void **result) 297 void **result)
294{ 298{
295 char* aes_buf; 299 char*aes_buf;
296 char* cph_buf; 300 char*cph_buf;
297 gabe_cph_t* cph; 301 gabe_cph_t*cph;
298 element_t m; 302 element_t m;
299 int cph_buf_size; 303 int cph_buf_size;
300 int aes_buf_size; 304 int aes_buf_size;
301 int plt_len; 305 int plt_len;
302 306
303 read_cpabe(block, &cph_buf, &cph_buf_size, &aes_buf, &aes_buf_size); 307 read_cpabe (block, &cph_buf, &cph_buf_size, &aes_buf, &aes_buf_size);
304 cph = gabe_cph_unserialize(key->pub, cph_buf, cph_buf_size); 308 cph = gabe_cph_unserialize (key->pub, cph_buf, cph_buf_size);
305 if (!gabe_dec(key->pub, key->prv, cph, m)) 309 if (! gabe_dec (key->pub, key->prv, cph, m))
306 { 310 {
307 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, 311 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
308 "%s\n", gabe_error()); 312 "%s\n", gabe_error ());
309 GNUNET_free(aes_buf); 313 GNUNET_free (aes_buf);
310 GNUNET_free(cph_buf); 314 GNUNET_free (cph_buf);
311 gabe_cph_free(cph); 315 gabe_cph_free (cph);
312 GNUNET_free(cph); 316 GNUNET_free (cph);
313 element_clear(m); 317 element_clear (m);
314 return GNUNET_SYSERR; 318 return GNUNET_SYSERR;
315 } 319 }
316 gabe_cph_free(cph); 320 gabe_cph_free (cph);
317 GNUNET_free(cph); 321 GNUNET_free (cph);
318 plt_len = aes_128_cbc_decrypt(aes_buf, aes_buf_size, m, (char**)result); 322 plt_len = aes_128_cbc_decrypt (aes_buf, aes_buf_size, m, (char**) result);
319 GNUNET_free(cph_buf); 323 GNUNET_free (cph_buf);
320 GNUNET_free(aes_buf); 324 GNUNET_free (aes_buf);
321 element_clear(m); 325 element_clear (m);
322 //freeing is buggy in gabe 326 // freeing is buggy in gabe
323 //gabe_prv_free (prv); 327 // gabe_prv_free (prv);
324 //gabe_pub_free (pub); 328 // gabe_pub_free (pub);
325 return plt_len; 329 return plt_len;
326} 330}
327 331
328ssize_t 332ssize_t
329GNUNET_CRYPTO_cpabe_serialize_key(const struct GNUNET_CRYPTO_AbeKey *key, 333GNUNET_CRYPTO_cpabe_serialize_key (const struct GNUNET_CRYPTO_AbeKey *key,
330 void **result) 334 void **result)
331{ 335{
332 ssize_t len; 336 ssize_t len;
333 char *pub; 337 char *pub;
@@ -335,21 +339,21 @@ GNUNET_CRYPTO_cpabe_serialize_key(const struct GNUNET_CRYPTO_AbeKey *key,
335 int pub_len; 339 int pub_len;
336 int prv_len; 340 int prv_len;
337 341
338 pub_len = gabe_pub_serialize(key->pub, &pub); 342 pub_len = gabe_pub_serialize (key->pub, &pub);
339 prv_len = gabe_prv_serialize(key->prv, &prv); 343 prv_len = gabe_prv_serialize (key->prv, &prv);
340 344
341 len = pub_len + prv_len + 12; 345 len = pub_len + prv_len + 12;
342 write_cpabe(result, len, pub, pub_len, prv, prv_len); 346 write_cpabe (result, len, pub, pub_len, prv, prv_len);
343 347
344 GNUNET_free(pub); 348 GNUNET_free (pub);
345 GNUNET_free(prv); 349 GNUNET_free (prv);
346 350
347 return len; 351 return len;
348} 352}
349 353
350struct GNUNET_CRYPTO_AbeKey* 354struct GNUNET_CRYPTO_AbeKey*
351GNUNET_CRYPTO_cpabe_deserialize_key(const void *data, 355GNUNET_CRYPTO_cpabe_deserialize_key (const void *data,
352 size_t len) 356 size_t len)
353{ 357{
354 struct GNUNET_CRYPTO_AbeKey *key; 358 struct GNUNET_CRYPTO_AbeKey *key;
355 char *pub; 359 char *pub;
@@ -357,23 +361,24 @@ GNUNET_CRYPTO_cpabe_deserialize_key(const void *data,
357 int prv_len; 361 int prv_len;
358 int pub_len; 362 int pub_len;
359 363
360 key = GNUNET_new(struct GNUNET_CRYPTO_AbeKey); 364 key = GNUNET_new (struct GNUNET_CRYPTO_AbeKey);
361 read_cpabe(data, 365 read_cpabe (data,
362 &pub, 366 &pub,
363 &pub_len, 367 &pub_len,
364 &prv, 368 &prv,
365 &prv_len); 369 &prv_len);
366 key->pub = gabe_pub_unserialize(pub, pub_len); 370 key->pub = gabe_pub_unserialize (pub, pub_len);
367 key->prv = gabe_prv_unserialize(key->pub, prv, prv_len); 371 key->prv = gabe_prv_unserialize (key->pub, prv, prv_len);
368 372
369 GNUNET_free(pub); 373 GNUNET_free (pub);
370 GNUNET_free(prv); 374 GNUNET_free (prv);
371 return key; 375 return key;
372} 376}
373 377
374ssize_t 378ssize_t
375GNUNET_CRYPTO_cpabe_serialize_master_key(const struct GNUNET_CRYPTO_AbeMasterKey *key, 379GNUNET_CRYPTO_cpabe_serialize_master_key (const struct
376 void **result) 380 GNUNET_CRYPTO_AbeMasterKey *key,
381 void **result)
377{ 382{
378 ssize_t len; 383 ssize_t len;
379 char *pub; 384 char *pub;
@@ -381,21 +386,21 @@ GNUNET_CRYPTO_cpabe_serialize_master_key(const struct GNUNET_CRYPTO_AbeMasterKey
381 int pub_len; 386 int pub_len;
382 int msk_len; 387 int msk_len;
383 388
384 pub_len = gabe_pub_serialize(key->pub, &pub); 389 pub_len = gabe_pub_serialize (key->pub, &pub);
385 msk_len = gabe_msk_serialize(key->msk, &msk); 390 msk_len = gabe_msk_serialize (key->msk, &msk);
386 391
387 len = pub_len + msk_len + 12; 392 len = pub_len + msk_len + 12;
388 write_cpabe(result, len, pub, pub_len, msk, msk_len); 393 write_cpabe (result, len, pub, pub_len, msk, msk_len);
389 394
390 GNUNET_free(pub); 395 GNUNET_free (pub);
391 GNUNET_free(msk); 396 GNUNET_free (msk);
392 397
393 return len; 398 return len;
394} 399}
395 400
396struct GNUNET_CRYPTO_AbeMasterKey* 401struct GNUNET_CRYPTO_AbeMasterKey*
397GNUNET_CRYPTO_cpabe_deserialize_master_key(const void *data, 402GNUNET_CRYPTO_cpabe_deserialize_master_key (const void *data,
398 size_t len) 403 size_t len)
399{ 404{
400 struct GNUNET_CRYPTO_AbeMasterKey *key; 405 struct GNUNET_CRYPTO_AbeMasterKey *key;
401 char *msk; 406 char *msk;
@@ -403,17 +408,17 @@ GNUNET_CRYPTO_cpabe_deserialize_master_key(const void *data,
403 int msk_len; 408 int msk_len;
404 int pub_len; 409 int pub_len;
405 410
406 key = GNUNET_new(struct GNUNET_CRYPTO_AbeMasterKey); 411 key = GNUNET_new (struct GNUNET_CRYPTO_AbeMasterKey);
407 read_cpabe(data, 412 read_cpabe (data,
408 &pub, 413 &pub,
409 &pub_len, 414 &pub_len,
410 &msk, 415 &msk,
411 &msk_len); 416 &msk_len);
412 key->pub = gabe_pub_unserialize(pub, pub_len); 417 key->pub = gabe_pub_unserialize (pub, pub_len);
413 key->msk = gabe_msk_unserialize(key->pub, msk, msk_len); 418 key->msk = gabe_msk_unserialize (key->pub, msk, msk_len);
414 419
415 GNUNET_free(pub); 420 GNUNET_free (pub);
416 GNUNET_free(msk); 421 GNUNET_free (msk);
417 422
418 return key; 423 return key;
419} 424}