diff options
Diffstat (limited to 'src/util/crypto_abe.c')
-rw-r--r-- | src/util/crypto_abe.c | 421 |
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 | ||
35 | struct GNUNET_CRYPTO_AbeMasterKey { | 35 | struct 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 | ||
40 | struct GNUNET_CRYPTO_AbeKey { | 41 | struct 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 | ||
45 | static int | 47 | static int |
46 | init_aes(element_t k, int enc, | 48 | init_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 | ||
79 | static int | 81 | static int |
80 | aes_128_cbc_encrypt(char* pt, | 82 | aes_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 | ||
116 | static int | 119 | static int |
117 | aes_128_cbc_decrypt(char* ct, | 120 | aes_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 | ||
149 | struct GNUNET_CRYPTO_AbeMasterKey* | 152 | struct GNUNET_CRYPTO_AbeMasterKey* |
150 | GNUNET_CRYPTO_cpabe_create_master_key(void) | 153 | GNUNET_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 | ||
161 | void | 164 | void |
162 | GNUNET_CRYPTO_cpabe_delete_master_key(struct GNUNET_CRYPTO_AbeMasterKey *key) | 165 | GNUNET_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 | ||
171 | struct GNUNET_CRYPTO_AbeKey* | 174 | struct GNUNET_CRYPTO_AbeKey* |
172 | GNUNET_CRYPTO_cpabe_create_key(struct GNUNET_CRYPTO_AbeMasterKey *key, | 175 | GNUNET_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 | ||
188 | void | 191 | void |
189 | GNUNET_CRYPTO_cpabe_delete_key(struct GNUNET_CRYPTO_AbeKey *key, | 192 | GNUNET_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 | ||
199 | ssize_t | 202 | ssize_t |
200 | write_cpabe(void **result, | 203 | write_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 | ||
227 | ssize_t | 230 | ssize_t |
228 | read_cpabe(const void *data, | 231 | read_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 | ||
257 | ssize_t | 260 | ssize_t |
258 | GNUNET_CRYPTO_cpabe_encrypt(const void *block, | 261 | GNUNET_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 | ||
289 | ssize_t | 293 | ssize_t |
290 | GNUNET_CRYPTO_cpabe_decrypt(const void *block, | 294 | GNUNET_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 | ||
328 | ssize_t | 332 | ssize_t |
329 | GNUNET_CRYPTO_cpabe_serialize_key(const struct GNUNET_CRYPTO_AbeKey *key, | 333 | GNUNET_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 | ||
350 | struct GNUNET_CRYPTO_AbeKey* | 354 | struct GNUNET_CRYPTO_AbeKey* |
351 | GNUNET_CRYPTO_cpabe_deserialize_key(const void *data, | 355 | GNUNET_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 | ||
374 | ssize_t | 378 | ssize_t |
375 | GNUNET_CRYPTO_cpabe_serialize_master_key(const struct GNUNET_CRYPTO_AbeMasterKey *key, | 379 | GNUNET_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 | ||
396 | struct GNUNET_CRYPTO_AbeMasterKey* | 401 | struct GNUNET_CRYPTO_AbeMasterKey* |
397 | GNUNET_CRYPTO_cpabe_deserialize_master_key(const void *data, | 402 | GNUNET_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 | } |