aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSchanzenbach, Martin <mschanzenbach@posteo.de>2017-07-09 19:25:54 +0200
committerSchanzenbach, Martin <mschanzenbach@posteo.de>2017-07-09 19:25:54 +0200
commit0e13b88e8f727543317f80757646606bf8269983 (patch)
treec7f620bfaf2ce02307f55afe61f2c17c8158a83d
parent32b2ebbdc17d168f3ab60ff72b6b5ea64951422c (diff)
parentcfc492f5d6c7c5786bd5d033892238a6889b5d7d (diff)
downloadgnunet-0e13b88e8f727543317f80757646606bf8269983.tar.gz
gnunet-0e13b88e8f727543317f80757646606bf8269983.zip
-merge
-rw-r--r--src/include/gnunet_crypto_lib.h4
-rw-r--r--src/util/crypto_abe.c19
2 files changed, 21 insertions, 2 deletions
diff --git a/src/include/gnunet_crypto_lib.h b/src/include/gnunet_crypto_lib.h
index 4d00103ab..69f6ce5d4 100644
--- a/src/include/gnunet_crypto_lib.h
+++ b/src/include/gnunet_crypto_lib.h
@@ -2138,6 +2138,8 @@ GNUNET_CRYPTO_rsa_verify (const struct GNUNET_HashCode *hash,
2138 */ 2138 */
2139struct GNUNET_CRYPTO_AbeMasterKey * 2139struct GNUNET_CRYPTO_AbeMasterKey *
2140GNUNET_CRYPTO_cpabe_create_master_key (void); 2140GNUNET_CRYPTO_cpabe_create_master_key (void);
2141void
2142GNUNET_CRYPTO_cpabe_delete_master_key (struct GNUNET_CRYPTO_AbeMasterKey *key);
2141 2143
2142/** 2144/**
2143 * @ingroup crypto 2145 * @ingroup crypto
@@ -2148,6 +2150,8 @@ GNUNET_CRYPTO_cpabe_create_master_key (void);
2148struct GNUNET_CRYPTO_AbeKey * 2150struct GNUNET_CRYPTO_AbeKey *
2149GNUNET_CRYPTO_cpabe_create_key (struct GNUNET_CRYPTO_AbeMasterKey *msk, 2151GNUNET_CRYPTO_cpabe_create_key (struct GNUNET_CRYPTO_AbeMasterKey *msk,
2150 char **attrs); 2152 char **attrs);
2153void
2154GNUNET_CRYPTO_cpabe_delete_key (struct GNUNET_CRYPTO_AbeKey *key);
2151 2155
2152 2156
2153/** 2157/**
diff --git a/src/util/crypto_abe.c b/src/util/crypto_abe.c
index f835a38dd..ddaec83eb 100644
--- a/src/util/crypto_abe.c
+++ b/src/util/crypto_abe.c
@@ -148,6 +148,14 @@ GNUNET_CRYPTO_cpabe_create_master_key (void)
148 return key; 148 return key;
149} 149}
150 150
151void
152GNUNET_CRYPTO_cpabe_delete_master_key (struct GNUNET_CRYPTO_AbeMasterKey *key)
153{
154 g_byte_array_unref (key->msk);
155 g_byte_array_unref (key->pub);
156 GNUNET_free (key);
157}
158
151struct GNUNET_CRYPTO_AbeKey* 159struct GNUNET_CRYPTO_AbeKey*
152GNUNET_CRYPTO_cpabe_create_key (struct GNUNET_CRYPTO_AbeMasterKey *key, 160GNUNET_CRYPTO_cpabe_create_key (struct GNUNET_CRYPTO_AbeMasterKey *key,
153 char **attrs) 161 char **attrs)
@@ -171,13 +179,21 @@ GNUNET_CRYPTO_cpabe_create_key (struct GNUNET_CRYPTO_AbeMasterKey *key,
171 return prv_key; 179 return prv_key;
172} 180}
173 181
182void
183GNUNET_CRYPTO_cpabe_delete_key (struct GNUNET_CRYPTO_AbeKey *key)
184{
185 g_byte_array_unref (key->prv);
186 g_byte_array_unref (key->pub);
187 GNUNET_free (key);
188}
189
174ssize_t 190ssize_t
175write_cpabe (void **result, GByteArray* cph_buf, 191write_cpabe (void **result, GByteArray* cph_buf,
176 uint32_t file_len, GByteArray* aes_buf) 192 uint32_t file_len, GByteArray* aes_buf)
177{ 193{
178 char *ptr; 194 char *ptr;
179 uint32_t *len; 195 uint32_t *len;
180 int i; 196
181 *result = GNUNET_malloc (12 + cph_buf->len + aes_buf->len); 197 *result = GNUNET_malloc (12 + cph_buf->len + aes_buf->len);
182 ptr = *result; 198 ptr = *result;
183 len = (uint32_t*) ptr; 199 len = (uint32_t*) ptr;
@@ -198,7 +214,6 @@ write_cpabe (void **result, GByteArray* cph_buf,
198ssize_t 214ssize_t
199read_cpabe (const void *data, GByteArray** cph_buf, GByteArray** aes_buf) 215read_cpabe (const void *data, GByteArray** cph_buf, GByteArray** aes_buf)
200{ 216{
201 int i;
202 int buf_len; 217 int buf_len;
203 int tmp_len; 218 int tmp_len;
204 char *ptr; 219 char *ptr;