gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r35039 - in gnunet/src: include util


From: gnunet
Subject: [GNUnet-SVN] r35039 - in gnunet/src: include util
Date: Wed, 28 Jan 2015 19:47:09 +0100

Author: grothoff
Date: 2015-01-28 19:47:09 +0100 (Wed, 28 Jan 2015)
New Revision: 35039

Modified:
   gnunet/src/include/gnunet_crypto_lib.h
   gnunet/src/util/crypto_ecc.c
Log:
adding GNUNET_CRYPTO_eddsa_private_key_from_string

Modified: gnunet/src/include/gnunet_crypto_lib.h
===================================================================
--- gnunet/src/include/gnunet_crypto_lib.h      2015-01-28 18:29:17 UTC (rev 
35038)
+++ gnunet/src/include/gnunet_crypto_lib.h      2015-01-28 18:47:09 UTC (rev 
35039)
@@ -1048,6 +1048,20 @@
 
 
 /**
+ * Convert a string representing a private key to a private key.
+ *
+ * @param enc encoded public key
+ * @param enclen number of bytes in @a enc (without 0-terminator)
+ * @param priv where to store the private key
+ * @return #GNUNET_OK on success
+ */
+int
+GNUNET_CRYPTO_eddsa_private_key_from_string (const char *enc,
+                                             size_t enclen,
+                                             struct 
GNUNET_CRYPTO_EddsaPrivateKey *pub);
+
+
+/**
  * Convert a string representing a public key to a public key.
  *
  * @param enc encoded public key

Modified: gnunet/src/util/crypto_ecc.c
===================================================================
--- gnunet/src/util/crypto_ecc.c        2015-01-28 18:29:17 UTC (rev 35038)
+++ gnunet/src/util/crypto_ecc.c        2015-01-28 18:47:09 UTC (rev 35039)
@@ -409,6 +409,35 @@
 
 
 /**
+ * Convert a string representing a private key to a private key.
+ *
+ * @param enc encoded public key
+ * @param enclen number of bytes in @a enc (without 0-terminator)
+ * @param priv where to store the private key
+ * @return #GNUNET_OK on success
+ */
+int
+GNUNET_CRYPTO_eddsa_private_key_from_string (const char *enc,
+                                             size_t enclen,
+                                             struct 
GNUNET_CRYPTO_EddsaPrivateKey *pub)
+{
+  size_t keylen = (sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey)) * 8;
+
+  if (keylen % 5 > 0)
+    keylen += 5 - keylen % 5;
+  keylen /= 5;
+  if (enclen != keylen)
+    return GNUNET_SYSERR;
+
+  if (GNUNET_OK != GNUNET_STRINGS_string_to_data (enc, enclen,
+                                                 pub,
+                                                 sizeof (struct 
GNUNET_CRYPTO_EddsaPrivateKey)))
+    return GNUNET_SYSERR;
+  return GNUNET_OK;
+}
+
+
+/**
  * @ingroup crypto
  * Clear memory that was used to store a private key.
  *




reply via email to

[Prev in Thread] Current Thread [Next in Thread]