aboutsummaryrefslogtreecommitdiffstats
path: root/moon-abe/libbswabe-0.9/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'moon-abe/libbswabe-0.9/misc.c')
-rw-r--r--moon-abe/libbswabe-0.9/misc.c532
1 files changed, 0 insertions, 532 deletions
diff --git a/moon-abe/libbswabe-0.9/misc.c b/moon-abe/libbswabe-0.9/misc.c
deleted file mode 100644
index d6574ee8..00000000
--- a/moon-abe/libbswabe-0.9/misc.c
+++ /dev/null
@@ -1,532 +0,0 @@
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <glib.h>
-#include <pbc.h>
-
-#include "bswabe.h"
-#include "private.h"
-/* Serialize a 32 bit int
- is used to serialize the lenght of the element
- for each element first there its lenght on 32 bits then the element */
-void
-serialize_uint32( GByteArray* b, uint32_t k )
-{
- int i;
- guint8 byte;
-
- for( i = 3; i >= 0; i-- )
- {
- byte = (k & 0xff<<(i*8))>>(i*8);
- g_byte_array_append(b, &byte, 1);
- }
-}
-
-uint32_t
-unserialize_uint32( GByteArray* b, int* offset )
-{
- int i;
- uint32_t r;
-
- r = 0;
- for( i = 3; i >= 0; i-- )
- r |= (b->data[(*offset)++])<<(i*8);
-
- return r;
-}
-
-/* First stores the length of the element then the bytes of the element
- Knowing the length of the element is necessary in order to unserialize it */
-void
-serialize_element( GByteArray* b, element_t e )
-{
- uint32_t len;
- unsigned char* buf;
-
- len = element_length_in_bytes(e);
- serialize_uint32(b, len);
-
- buf = (unsigned char*) malloc(len);
- element_to_bytes(buf, e);
- g_byte_array_append(b, buf, len);
- free(buf);
-}
-
-void
-unserialize_element( GByteArray* b, int* offset, element_t e )
-{
- uint32_t len;
- unsigned char* buf;
-
- len = unserialize_uint32(b, offset);
-
- buf = (unsigned char*) malloc(len);
- memcpy(buf, b->data + *offset, len);
- *offset += len;
-
- element_from_bytes(e, buf);
- free(buf);
-}
-
-void
-serialize_string( GByteArray* b, char* s )
-{
- g_byte_array_append(b, (unsigned char*) s, strlen(s) + 1);
-}
-
-char*
-unserialize_string( GByteArray* b, int* offset )
-{
- GString* s;
- char* r;
- char c;
-
- s = g_string_sized_new(32);
- while( 1 )
- {
- c = b->data[(*offset)++];
- if( c && c != EOF )
- g_string_append_c(s, c);
- else
- break;
- }
-
- r = s->str;
- g_string_free(s, 0);
-
- return r;
-}
-
-GByteArray*
-bswabe_pub_serialize( bswabe_pub_t* pub )
-{
- GByteArray* b;
-
- b = g_byte_array_new();
- serialize_string(b, pub->pairing_desc);
- serialize_element(b, pub->g);
- serialize_element(b, pub->h);
- serialize_element(b, pub->gp);
- serialize_element(b, pub->g_hat_alpha);
-
- return b;
-}
-
-bswabe_pub_t*
-bswabe_pub_unserialize( GByteArray* b, int free )
-{
- bswabe_pub_t* pub;
- int offset;
-
- pub = (bswabe_pub_t*) malloc(sizeof(bswabe_pub_t));
- offset = 0;
-
- pub->pairing_desc = unserialize_string(b, &offset);
- pairing_init_set_buf(pub->p, pub->pairing_desc, strlen(pub->pairing_desc));
-
- element_init_G1(pub->g, pub->p);
- element_init_G1(pub->h, pub->p);
- element_init_G2(pub->gp, pub->p);
- element_init_GT(pub->g_hat_alpha, pub->p);
-
- unserialize_element(b, &offset, pub->g);
- unserialize_element(b, &offset, pub->h);
- unserialize_element(b, &offset, pub->gp);
- unserialize_element(b, &offset, pub->g_hat_alpha);
-
- if( free )
- g_byte_array_free(b, 1);
-
- return pub;
-}
-
-GByteArray*
-bswabe_msk_serialize( bswabe_msk_t* msk )
-{
- GByteArray* b;
-
- b = g_byte_array_new();
- serialize_element(b, msk->beta);
- serialize_element(b, msk->g_alpha);
-
- return b;
-}
-
-bswabe_msk_t*
-bswabe_msk_unserialize( bswabe_pub_t* pub, GByteArray* b, int free )
-{
- bswabe_msk_t* msk;
- int offset;
-
- msk = (bswabe_msk_t*) malloc(sizeof(bswabe_msk_t));
- offset = 0;
-
- element_init_Zr(msk->beta, pub->p);
- element_init_G2(msk->g_alpha, pub->p);
-
- unserialize_element(b, &offset, msk->beta);
- unserialize_element(b, &offset, msk->g_alpha);
-
- if( free )
- g_byte_array_free(b, 1);
-
- return msk;
-}
-
-GByteArray*
-bswabe_prv_serialize( bswabe_prv_t* prv )
-{
- GByteArray* b;
- int i;
-
- b = g_byte_array_new();
-
- serialize_element(b, prv->d);
- serialize_uint32( b, prv->comps->len);
-
- for( i = 0; i < prv->comps->len; i++ )
- {
- serialize_string( b, g_array_index(prv->comps, bswabe_prv_comp_t, i).attr);
- serialize_element(b, g_array_index(prv->comps, bswabe_prv_comp_t, i).d);
- serialize_element(b, g_array_index(prv->comps, bswabe_prv_comp_t, i).dp);
- }
-
- return b;
-}
-
-bswabe_prv_t*
-bswabe_prv_unserialize( bswabe_pub_t* pub, GByteArray* b, int free )
-{
- bswabe_prv_t* prv;
- int i;
- int len;
- int offset;
-
- prv = (bswabe_prv_t*) malloc(sizeof(bswabe_prv_t));
- offset = 0;
-
- element_init_G2(prv->d, pub->p);
- unserialize_element(b, &offset, prv->d);
-
- prv->comps = g_array_new(0, 1, sizeof(bswabe_prv_comp_t));
- len = unserialize_uint32(b, &offset);
-
- for( i = 0; i < len; i++ )
- {
- bswabe_prv_comp_t c;
-
- c.attr = unserialize_string(b, &offset);
-
- element_init_G2(c.d, pub->p);
- element_init_G2(c.dp, pub->p);
-
- unserialize_element(b, &offset, c.d);
- unserialize_element(b, &offset, c.dp);
-
- g_array_append_val(prv->comps, c);
- }
-
- if( free )
- g_byte_array_free(b, 1);
-
- return prv;
-}
-/*
-GByteArray*
-peks_trap_serialize( peks_trap_t* trap )
-{
- GByteArray* b;
-
- b = g_byte_array_new();
-
- serialize_element(b, trap->T);
-
- return b;
-}
-peks_trap_t*
-peks_trap_unserialize( bswabe_pub_t* pub, GByteArray* b, int free )
-{
- peks_trap_t* trap;
- int offset;
-
- trap = (peks_trap_t*) malloc(sizeof(peks_trap_t));
- offset = 0;
-
- unserialize_element(b, &offset, trap->T);
-
- if( free )
- g_byte_array_free(b, 1);
-
- return trap;
-}
-
-*/
-GByteArray*
-peks_ind_serialize( peks_ind_t* ind )
-{
- GByteArray* b;
- int i;
-
- b = g_byte_array_new();
-
- /* First serialize the number of components */
- serialize_uint32( b, ind->comps->len);
-
- for( i = 0; i < ind->comps->len; i++ )
- {
- serialize_element(b, g_array_index(ind->comps, peks_sew_t, i).A );
- serialize_element(b, g_array_index(ind->comps, peks_sew_t, i).B );
- }
-
- return b;
-}
-
-peks_ind_t*
-peks_ind_unserialize( bswabe_pub_t* pub, GByteArray* b, int free )
-{
- peks_ind_t* ind;
- int i;
- int len;
- int offset;
-
- ind = (peks_ind_t*) malloc(sizeof(peks_ind_t));
- offset = 0;
-
- ind->comps = g_array_new(0, 1, sizeof(peks_sew_t));
- len = unserialize_uint32(b, &offset);
-
- for( i = 0; i < len; i++ )
- {
- peks_sew_t sew;
-
-
- element_init_G1(sew.A, pub->p);
- element_init_GT(sew.B, pub->p);
-
- unserialize_element(b, &offset, sew.A);
- unserialize_element(b, &offset, sew.B);
-
- g_array_append_val(ind->comps, sew);
- }
-
- if( free )
- g_byte_array_free(b, 1);
-
- return ind;
-}
-
-void
-serialize_policy( GByteArray* b, bswabe_policy_t* p )
-{
- int i;
-
- serialize_uint32(b, (uint32_t) p->k);
-
- serialize_uint32(b, (uint32_t) p->children->len);
- if( p->children->len == 0 )
- {
- serialize_string( b, p->attr);
- serialize_element(b, p->c);
- serialize_element(b, p->cp);
- }
- else
- for( i = 0; i < p->children->len; i++ )
- serialize_policy(b, g_ptr_array_index(p->children, i));
-}
-
-bswabe_policy_t*
-unserialize_policy( bswabe_pub_t* pub, GByteArray* b, int* offset )
-{
- int i;
- int n;
- bswabe_policy_t* p;
-
- p = (bswabe_policy_t*) malloc(sizeof(bswabe_policy_t));
-
- p->k = (int) unserialize_uint32(b, offset);
- p->attr = 0;
- p->children = g_ptr_array_new();
-
- n = unserialize_uint32(b, offset);
- if( n == 0 )
- {
- p->attr = unserialize_string(b, offset);
- element_init_G1(p->c, pub->p);
- element_init_G1(p->cp, pub->p);
- unserialize_element(b, offset, p->c);
- unserialize_element(b, offset, p->cp);
- }
- else
- for( i = 0; i < n; i++ )
- g_ptr_array_add(p->children, unserialize_policy(pub, b, offset));
-
- return p;
-}
-
-GByteArray*
-bswabe_cph_serialize( bswabe_cph_t* cph )
-{
- GByteArray* b;
-
- b = g_byte_array_new();
- serialize_element(b, cph->cs);
- serialize_element(b, cph->c);
- serialize_policy( b, cph->p);
- serialize_string( b, cph->policy);
-
- return b;
-}
-
-bswabe_cph_t*
-bswabe_cph_unserialize( bswabe_pub_t* pub, GByteArray* b, int free )
-{
- bswabe_cph_t* cph;
- int offset;
-
- cph = (bswabe_cph_t*) malloc(sizeof(bswabe_cph_t));
- offset = 0;
-
- element_init_GT(cph->cs, pub->p);
- element_init_G1(cph->c, pub->p);
- unserialize_element(b, &offset, cph->cs);
- unserialize_element(b, &offset, cph->c);
- cph->p = unserialize_policy(pub, b, &offset);
- cph->policy = unserialize_string(b, &offset);
- if( free )
- g_byte_array_free(b, 1);
-
- return cph;
-}
-
-GByteArray*
-peks_sew_serialize( peks_sew_t* sew )
-{
- GByteArray* b;
-
- b = g_byte_array_new();
- serialize_element(b, sew->A);
- serialize_element(b, sew->B);
-
- return b;
-}
-
-peks_sew_t*
-peks_sew_unserialize( bswabe_pub_t* pub, GByteArray* b, int free )
-{
- peks_sew_t* sew;
- int offset;
-
- sew = (peks_sew_t*) malloc(sizeof(peks_sew_t));
- offset = 0;
-
- element_init_G1(sew->A, pub->p);
- element_init_GT(sew->B, pub->p);
-
- unserialize_element(b, &offset, sew->A);
- unserialize_element(b, &offset, sew->B);
-
- if( free )
- g_byte_array_free(b, 1);
-
- return sew;
-}
-
-GByteArray*
-peks_trap_serialize( peks_trap_t* trap )
-{
- GByteArray* b;
-
- b = g_byte_array_new();
- serialize_element(b, trap->T);
-
- return b;
-}
-
-peks_trap_t*
-peks_trap_unserialize( bswabe_pub_t* pub, GByteArray* b, int free )
-{
- peks_trap_t* trap;
- int offset;
-
- trap = (peks_trap_t*) malloc(sizeof(peks_trap_t));
- offset = 0;
-
- element_init_G1(trap->T, pub->p);
-
- unserialize_element(b, &offset, trap->T);
-
- if( free )
- g_byte_array_free(b, 1);
-
- return trap;
-}
-
-void
-bswabe_pub_free( bswabe_pub_t* pub )
-{
- element_clear(pub->g);
- element_clear(pub->h);
- element_clear(pub->gp);
- element_clear(pub->g_hat_alpha);
- pairing_clear(pub->p);
- free(pub->pairing_desc);
- free(pub);
-}
-
-void
-bswabe_msk_free( bswabe_msk_t* msk )
-{
- element_clear(msk->beta);
- element_clear(msk->g_alpha);
- free(msk);
-}
-
-void
-bswabe_prv_free( bswabe_prv_t* prv )
-{
- int i;
-
- element_clear(prv->d);
-
- for( i = 0; i < prv->comps->len; i++ )
- {
- bswabe_prv_comp_t c;
-
- c = g_array_index(prv->comps, bswabe_prv_comp_t, i);
- free(c.attr);
- element_clear(c.d);
- element_clear(c.dp);
- }
-
- g_array_free(prv->comps, 1);
-
- free(prv);
-}
-
-void
-bswabe_policy_free( bswabe_policy_t* p )
-{
- int i;
-
- if( p->attr )
- {
- free(p->attr);
- element_clear(p->c);
- element_clear(p->cp);
- }
-
- for( i = 0; i < p->children->len; i++ )
- bswabe_policy_free(g_ptr_array_index(p->children, i));
-
- g_ptr_array_free(p->children, 1);
-
- free(p);
-}
-
-void
-bswabe_cph_free( bswabe_cph_t* cph )
-{
- element_clear(cph->cs);
- element_clear(cph->c);
- bswabe_policy_free(cph->p);
-}