[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis] 05/08: modified salt api
From: |
gnunet |
Subject: |
[taler-anastasis] 05/08: modified salt api |
Date: |
Sun, 26 Apr 2020 21:33:48 +0200 |
This is an automated email from the git hooks/post-receive script.
dennis-neufeld pushed a commit to branch master
in repository anastasis.
commit 6d328935d018a611699260b5da3d1a5e15566709
Author: Dennis Neufeld <address@hidden>
AuthorDate: Sat Apr 25 15:29:28 2020 +0000
modified salt api
---
src/backend/anastasis-httpd_salt.c | 20 +++++++++++++++++---
src/include/anastasis_crypto_lib.h | 4 ++--
src/lib/anastasis_api_salt.c | 23 +++++++++++++----------
src/util/anastasis_crypto.c | 7 +++----
src/util/test_anastasis_crypto.c | 14 +++++++++++---
5 files changed, 46 insertions(+), 22 deletions(-)
diff --git a/src/backend/anastasis-httpd_salt.c
b/src/backend/anastasis-httpd_salt.c
index 7b27b7f..e2c43c2 100644
--- a/src/backend/anastasis-httpd_salt.c
+++ b/src/backend/anastasis-httpd_salt.c
@@ -38,12 +38,26 @@ AH_handler_salt (struct MHD_Connection *connection,
const char *url,
void **con_cls)
{
+ struct ANASTASIS_CRYPTO_Salt salt;
+
+ if (GNUNET_OK ==
+ GNUNET_CRYPTO_hash_from_string2 (AH_server_salt,
+ strlen (AH_server_salt),
+ &salt.salt))
+ {
+ GNUNET_break (0);
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_SERVER_JSON_INVALID,
+ "server_salt");
+ }
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Server Salt: %s\n",
- (char *) AH_server_salt);
+ "At %s:%d Server Salt is %s-%llu b\n", __FILE__, __LINE__,
+ TALER_B2S (&salt),
+ (unsigned long long) sizeof (salt));
return TALER_MHD_reply_json_pack (connection,
MHD_HTTP_OK,
"{s:s}",
"server_salt",
- (char *) AH_server_salt);
+ GNUNET_JSON_from_data_auto (&salt));
}
\ No newline at end of file
diff --git a/src/include/anastasis_crypto_lib.h
b/src/include/anastasis_crypto_lib.h
index 28ada22..44018e4 100644
--- a/src/include/anastasis_crypto_lib.h
+++ b/src/include/anastasis_crypto_lib.h
@@ -53,11 +53,11 @@ struct ANASTASIS_CRYPTO_TruthKey
/**
- * Specifies a Salt value, should be 32 Byte large.
+ * Specifies a Salt value as a hash.
*/
struct ANASTASIS_CRYPTO_Salt
{
- const char *salt;
+ struct GNUNET_HashCode salt;
};
diff --git a/src/lib/anastasis_api_salt.c b/src/lib/anastasis_api_salt.c
index f21ee59..eac5e9e 100644
--- a/src/lib/anastasis_api_salt.c
+++ b/src/lib/anastasis_api_salt.c
@@ -56,21 +56,24 @@ handle_salt_finished (void *cls,
case MHD_HTTP_OK:
{
struct GNUNET_JSON_Specification spec[] = {
- GNUNET_JSON_spec_string ("server_salt", &so->salt.salt),
+ GNUNET_JSON_spec_fixed_auto ("server_salt", &so->salt),
GNUNET_JSON_spec_end ()
};
- GNUNET_assert (GNUNET_OK ==
- GNUNET_JSON_parse (json,
- spec,
- NULL, NULL));
+ if (GNUNET_OK !=
+ GNUNET_JSON_parse (json,
+ spec,
+ NULL, NULL))
+ {
+ GNUNET_break (0);
+ return;
+ }
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Salt json from download: %s\n\n",
- json_dumps (json, JSON_COMPACT));
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Salt from download: %s\n\n",
- so->salt.salt);
+ "At %s:%d Server Salt from Download is %s-%llu b\n",
__FILE__,
+ __LINE__,
+ TALER_B2S (&so->salt),
+ (unsigned long long) sizeof (so->salt));
so->cb (so->cb_cls,
response_code,
&so->salt);
diff --git a/src/util/anastasis_crypto.c b/src/util/anastasis_crypto.c
index 841704e..338dd4f 100644
--- a/src/util/anastasis_crypto.c
+++ b/src/util/anastasis_crypto.c
@@ -329,11 +329,10 @@ ANASTASIS_CRYPTO_user_identifier_derive (
strlen (json_enc),
GCRY_KDF_SCRYPT,
1, // subalgo
- server_salt->salt,
- strlen (server_salt->salt),
+ server_salt,
+ sizeof (*server_salt),
SCRYPT_ITERATION, // iterations
- sizeof (struct
- ANASTASIS_CRYPTO_UserIdentifier),
+ sizeof (struct ANASTASIS_CRYPTO_UserIdentifier),
id))
{
GNUNET_break (0);
diff --git a/src/util/test_anastasis_crypto.c b/src/util/test_anastasis_crypto.c
index dc6eeff..ab81c3f 100644
--- a/src/util/test_anastasis_crypto.c
+++ b/src/util/test_anastasis_crypto.c
@@ -43,7 +43,9 @@ test_user_identifier_derive (void)
struct ANASTASIS_CRYPTO_UserIdentifier id_3;
struct ANASTASIS_CRYPTO_Salt salt;
- salt.salt = "Server Salt";
+ GNUNET_CRYPTO_hash_from_string2 ("Server Salt",
+ strlen ("Server Salt"),
+ &salt.salt);
// sample data 1
id_data_1 = json_object ();
@@ -99,7 +101,10 @@ test_recovery_document (void)
json_t *id_data = json_object ();
const char *test = "TEST_ERD";
- salt.salt = "Server Salt";
+
+ GNUNET_CRYPTO_hash_from_string2 ("Server Salt",
+ strlen ("Server Salt"),
+ &salt.salt);
json_object_set_new (id_data, "arg1", json_string ("ID_DATA"));
ANASTASIS_CRYPTO_user_identifier_derive (id_data,
@@ -309,7 +314,10 @@ test_public_key_derive ()
struct ANASTASIS_CRYPTO_Salt server_salt;
json_t *id_data = json_object ();
- server_salt.salt = "Server Salt";
+
+ GNUNET_CRYPTO_hash_from_string2 ("Server Salt",
+ strlen ("Server Salt"),
+ &server_salt.salt);
json_object_set_new (id_data, "arg1", json_string ("ID_DATA"));
ANASTASIS_CRYPTO_user_identifier_derive (id_data,
--
To stop receiving notification emails like this one, please contact
address@hidden.
- [taler-anastasis] branch master updated (0ca921b -> 432c38c), gnunet, 2020/04/26
- [taler-anastasis] 04/08: const in decryption routine, gnunet, 2020/04/26
- [taler-anastasis] 06/08: fixed salt api, gnunet, 2020/04/26
- [taler-anastasis] 08/08: packed structs in crypto lib, gnunet, 2020/04/26
- [taler-anastasis] 03/08: ANASTASIS_CRYPTO_Iv set to 16 Byte length, gnunet, 2020/04/26
- [taler-anastasis] 05/08: modified salt api,
gnunet <=
- [taler-anastasis] 02/08: ANASTASIS_CRYPTO_Iv set to 16 Byte length, gnunet, 2020/04/26
- [taler-anastasis] 07/08: fix json_pack, gnunet, 2020/04/26
- [taler-anastasis] 01/08: optimized error handling in anastasis_crypto, gnunet, 2020/04/26