aboutsummaryrefslogtreecommitdiff
path: root/src/identity/identity_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/identity/identity_api.c')
-rw-r--r--src/identity/identity_api.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/identity/identity_api.c b/src/identity/identity_api.c
index 08a975e65..01f36b840 100644
--- a/src/identity/identity_api.c
+++ b/src/identity/identity_api.c
@@ -979,10 +979,8 @@ GNUNET_IDENTITY_key_get_length (const struct GNUNET_IDENTITY_PublicKey *key)
979 { 979 {
980 case GNUNET_IDENTITY_TYPE_ECDSA: 980 case GNUNET_IDENTITY_TYPE_ECDSA:
981 return sizeof (key->type) + sizeof (key->ecdsa_key); 981 return sizeof (key->type) + sizeof (key->ecdsa_key);
982 break;
983 case GNUNET_IDENTITY_TYPE_EDDSA: 982 case GNUNET_IDENTITY_TYPE_EDDSA:
984 return sizeof (key->type) + sizeof (key->eddsa_key); 983 return sizeof (key->type) + sizeof (key->eddsa_key);
985 break;
986 default: 984 default:
987 GNUNET_break (0); 985 GNUNET_break (0);
988 } 986 }
@@ -992,19 +990,22 @@ GNUNET_IDENTITY_key_get_length (const struct GNUNET_IDENTITY_PublicKey *key)
992 990
993ssize_t 991ssize_t
994GNUNET_IDENTITY_read_key_from_buffer (struct GNUNET_IDENTITY_PublicKey *key, 992GNUNET_IDENTITY_read_key_from_buffer (struct GNUNET_IDENTITY_PublicKey *key,
995 const void*buffer, 993 const void *buffer,
996 size_t len) 994 size_t len)
997{ 995{
998 if (len < sizeof (key->type)) 996 if (len < sizeof (key->type))
999 return -1; 997 return -1;
1000 GNUNET_memcpy (&(key->type), buffer, sizeof (key->type)); 998 GNUNET_memcpy (&key->type,
1001 const ssize_t length = GNUNET_IDENTITY_key_get_length (key); 999 buffer,
1000 sizeof (key->type));
1001 ssize_t length = GNUNET_IDENTITY_key_get_length (key);
1002 if (len < length) 1002 if (len < length)
1003 return -1; 1003 return -1;
1004 if (length < 0) 1004 if (length < 0)
1005 return -2; 1005 return -2;
1006 GNUNET_memcpy (&(key->ecdsa_key), buffer + sizeof (key->type), length 1006 GNUNET_memcpy (&key->ecdsa_key,
1007 - sizeof (key->type)); 1007 buffer + sizeof (key->type),
1008 length - sizeof (key->type));
1008 return length; 1009 return length;
1009} 1010}
1010 1011