diff options
author | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2017-07-08 20:14:49 +0200 |
---|---|---|
committer | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2017-07-08 20:14:49 +0200 |
commit | f3a84ebcd657b369792667bb1c1bd5ca2e53ee35 (patch) | |
tree | 59352860e877fdca8c5bf8032ea5492e86231d31 /src/util/crypto_abe.c | |
parent | 9d601af559af4e7ad7ed818da499fa22ebfa5ae6 (diff) | |
download | gnunet-f3a84ebcd657b369792667bb1c1bd5ca2e53ee35.tar.gz gnunet-f3a84ebcd657b369792667bb1c1bd5ca2e53ee35.zip |
-add serialization
Diffstat (limited to 'src/util/crypto_abe.c')
-rw-r--r-- | src/util/crypto_abe.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/util/crypto_abe.c b/src/util/crypto_abe.c index d004220d1..62b9b7108 100644 --- a/src/util/crypto_abe.c +++ b/src/util/crypto_abe.c | |||
@@ -303,3 +303,51 @@ GNUNET_CRYPTO_cpabe_decrypt (const void *block, | |||
303 | 303 | ||
304 | return pt_size; | 304 | return pt_size; |
305 | } | 305 | } |
306 | |||
307 | ssize_t | ||
308 | GNUNET_CRYPTO_cpabe_serialize_key (struct GNUNET_CRYPTO_AbeKey *key, | ||
309 | void **result) | ||
310 | { | ||
311 | ssize_t len; | ||
312 | |||
313 | len = key->pub->len + key->prv->len + 12; | ||
314 | write_cpabe (result, key->pub, len, key->prv); | ||
315 | |||
316 | return len; | ||
317 | } | ||
318 | |||
319 | struct GNUNET_CRYPTO_AbeKey* | ||
320 | GNUNET_CRYPTO_cpabe_deserialize_key (void *data, | ||
321 | size_t len) | ||
322 | { | ||
323 | struct GNUNET_CRYPTO_AbeKey *key; | ||
324 | |||
325 | key = GNUNET_new (struct GNUNET_CRYPTO_AbeKey); | ||
326 | read_cpabe (data, &key->pub, &key->prv); | ||
327 | |||
328 | return key; | ||
329 | } | ||
330 | |||
331 | ssize_t | ||
332 | GNUNET_CRYPTO_cpabe_serialize_master_key (struct GNUNET_CRYPTO_AbeMasterKey *key, | ||
333 | void **result) | ||
334 | { | ||
335 | ssize_t len; | ||
336 | |||
337 | len = key->pub->len + key->msk->len + 12; | ||
338 | write_cpabe (result, key->pub, len, key->msk); | ||
339 | |||
340 | return len; | ||
341 | } | ||
342 | |||
343 | struct GNUNET_CRYPTO_AbeMasterKey* | ||
344 | GNUNET_CRYPTO_cpabe_deserialize_master_key (void *data, | ||
345 | size_t len) | ||
346 | { | ||
347 | struct GNUNET_CRYPTO_AbeMasterKey *key; | ||
348 | |||
349 | key = GNUNET_new (struct GNUNET_CRYPTO_AbeMasterKey); | ||
350 | read_cpabe (data, &key->pub, &key->msk); | ||
351 | |||
352 | return key; | ||
353 | } | ||