aboutsummaryrefslogtreecommitdiff
path: root/src/gns/plugin_gnsrecord_gns.c
diff options
context:
space:
mode:
authorMartin Schanzenbach <mschanzenbach@posteo.de>2020-10-14 23:57:25 +0200
committerMartin Schanzenbach <mschanzenbach@posteo.de>2020-10-15 12:11:20 +0200
commitdba32dc385bf922c7cd91eecc209e1a37b96c137 (patch)
treee894b28b71b7a7baec59e713fbda59f0c4edb624 /src/gns/plugin_gnsrecord_gns.c
parent25eb1fb2acbe92b418d8643c06107ce0ab2bfb9a (diff)
downloadgnunet-dba32dc385bf922c7cd91eecc209e1a37b96c137.tar.gz
gnunet-dba32dc385bf922c7cd91eecc209e1a37b96c137.zip
- more fixes towards crypto agility
Diffstat (limited to 'src/gns/plugin_gnsrecord_gns.c')
-rw-r--r--src/gns/plugin_gnsrecord_gns.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gns/plugin_gnsrecord_gns.c b/src/gns/plugin_gnsrecord_gns.c
index 81f2b9eff..0bd1d047f 100644
--- a/src/gns/plugin_gnsrecord_gns.c
+++ b/src/gns/plugin_gnsrecord_gns.c
@@ -50,13 +50,16 @@ gns_value_to_string (void *cls,
50 size_t data_size) 50 size_t data_size)
51{ 51{
52 const char *cdata; 52 const char *cdata;
53 struct GNUNET_IDENTITY_PublicKey pk;
53 54
54 switch (type) 55 switch (type)
55 { 56 {
56 case GNUNET_GNSRECORD_TYPE_PKEY: 57 case GNUNET_GNSRECORD_TYPE_PKEY:
57 if (data_size != sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)) 58 if (data_size != sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey))
58 return NULL; 59 return NULL;
59 return GNUNET_CRYPTO_ecdsa_public_key_to_string (data); 60 pk.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
61 memcpy (&pk.ecdsa_key, data, sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
62 return GNUNET_IDENTITY_public_key_to_string (&pk);
60 63
61 case GNUNET_GNSRECORD_TYPE_NICK: 64 case GNUNET_GNSRECORD_TYPE_NICK:
62 return GNUNET_strndup (data, data_size); 65 return GNUNET_strndup (data, data_size);
@@ -154,6 +157,7 @@ gns_string_to_value (void *cls,
154 size_t *data_size) 157 size_t *data_size)
155{ 158{
156 struct GNUNET_CRYPTO_EcdsaPublicKey pkey; 159 struct GNUNET_CRYPTO_EcdsaPublicKey pkey;
160 struct GNUNET_IDENTITY_PublicKey pk;
157 161
158 if (NULL == s) 162 if (NULL == s)
159 return GNUNET_SYSERR; 163 return GNUNET_SYSERR;
@@ -161,7 +165,7 @@ gns_string_to_value (void *cls,
161 { 165 {
162 case GNUNET_GNSRECORD_TYPE_PKEY: 166 case GNUNET_GNSRECORD_TYPE_PKEY:
163 if (GNUNET_OK != 167 if (GNUNET_OK !=
164 GNUNET_CRYPTO_ecdsa_public_key_from_string (s, strlen (s), &pkey)) 168 GNUNET_IDENTITY_public_key_from_string (s, &pk))
165 { 169 {
166 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 170 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
167 _ ("Unable to parse PKEY record `%s'\n"), 171 _ ("Unable to parse PKEY record `%s'\n"),
@@ -169,7 +173,7 @@ gns_string_to_value (void *cls,
169 return GNUNET_SYSERR; 173 return GNUNET_SYSERR;
170 } 174 }
171 *data = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey); 175 *data = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
172 GNUNET_memcpy (*data, &pkey, sizeof(pkey)); 176 GNUNET_memcpy (*data, &pk.ecdsa_key, sizeof(pkey));
173 *data_size = sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey); 177 *data_size = sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey);
174 return GNUNET_OK; 178 return GNUNET_OK;
175 179