[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis] 05/06: fixed salt issue with GNUNET_CRYPTO_pow_hash
From: |
gnunet |
Subject: |
[taler-anastasis] 05/06: fixed salt issue with GNUNET_CRYPTO_pow_hash |
Date: |
Wed, 19 Aug 2020 12:32:26 +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 5a4a7c0bd5ce3af5d496c464eafc29a75c806c8a
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Tue Aug 18 12:32:51 2020 +0000
fixed salt issue with GNUNET_CRYPTO_pow_hash
---
src/backend/anastasis-httpd_salt.c | 2 +-
src/backend/anastasis.conf | 4 ++--
src/cli/anastasis-cli-assembler.c | 4 ++--
src/cli/anastasis-cli-splitter.c | 6 +++---
src/include/anastasis.h | 6 +++---
src/include/anastasis_crypto_lib.h | 10 +++++++++-
src/include/anastasis_service.h | 4 ++--
src/include/anastasis_testing_lib.h | 4 ++--
src/lib/anastasis.c | 16 ++++++++--------
src/lib/testing_api_cmd_salt.c | 4 ++--
src/lib/testing_api_trait_salt.c | 4 ++--
src/lib/testing_cmd_recover_secret.c | 4 ++--
src/lib/testing_cmd_truth_upload.c | 2 +-
src/util/anastasis_crypto.c | 14 +++-----------
src/util/test_anastasis_crypto.c | 23 ++++++-----------------
15 files changed, 48 insertions(+), 59 deletions(-)
diff --git a/src/backend/anastasis-httpd_salt.c
b/src/backend/anastasis-httpd_salt.c
index 99099cc..34b2315 100644
--- a/src/backend/anastasis-httpd_salt.c
+++ b/src/backend/anastasis-httpd_salt.c
@@ -38,7 +38,7 @@ AH_handler_salt (struct MHD_Connection *connection,
const char *url,
void **con_cls)
{
- struct ANASTASIS_CRYPTO_SaltP salt;
+ struct ANASTASIS_CRYPTO_PowSaltP salt;
GNUNET_CRYPTO_hash (AH_server_salt,
strlen (AH_server_salt),
diff --git a/src/backend/anastasis.conf b/src/backend/anastasis.conf
index 3bb226e..eef9860 100644
--- a/src/backend/anastasis.conf
+++ b/src/backend/anastasis.conf
@@ -41,8 +41,8 @@ PAYMENT_BACKEND_URL = http://localhost:9976/
# Standard expiration time in microseconds range of truth (2 years)
TRUTH_EXPIRATION = 63115200000000
-# Server salt 256 bits
-SERVER_SALT =
gUfO1KGOKYIFlFQgBv9NeYqiSgS16Y0dcgj74YewVnSEsEkXaG5duaGphWXgQGI84OOezaS9tlffQ0J27u6iAcvWMMdR8oANz5GeoWZFAAQDW65qMrUoTfDK170hY7krj6GZ04PFgBzBRtNAyGqPTkRbOFQ04lu6pa0bYF9JAwmwrFD0csVliuvapL33ukOwHdKDyg81FQuRW1bNbj9D0GMPoVcacJUrOXk0mIWhyG3Q2OoVOfW1LiIaXwfitLGd
+# Server salt 16 Byte
+SERVER_SALT = gUfO1KGOKYIFlFQg
# Supported methods
SUPPORTED_METHODS = question
diff --git a/src/cli/anastasis-cli-assembler.c
b/src/cli/anastasis-cli-assembler.c
index ebb0ac6..8a5ed5a 100644
--- a/src/cli/anastasis-cli-assembler.c
+++ b/src/cli/anastasis-cli-assembler.c
@@ -164,7 +164,7 @@ struct RecoverSecretState
/**
* Salt to be used to derive the id
*/
- struct ANASTASIS_CRYPTO_SaltP *salt;
+ struct ANASTASIS_CRYPTO_PowSaltP *salt;
/**
* Recovery information from the lookup
@@ -697,7 +697,7 @@ core_secret_cb (void *cls,
static void
salt_cb (void *cls,
unsigned int http_status,
- const struct ANASTASIS_CRYPTO_SaltP *salt)
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt)
{
struct RecoverSecretState *rss = cls;
diff --git a/src/cli/anastasis-cli-splitter.c b/src/cli/anastasis-cli-splitter.c
index 526cfc6..d43888b 100644
--- a/src/cli/anastasis-cli-splitter.c
+++ b/src/cli/anastasis-cli-splitter.c
@@ -137,7 +137,7 @@ struct ServerInfo
/**
* server salt of the anastasis backend.
*/
- const struct ANASTASIS_CRYPTO_SaltP *backend_salt;
+ const struct ANASTASIS_CRYPTO_PowSaltP *backend_salt;
/**
* insurance of the anastasis backend.
@@ -173,7 +173,7 @@ struct SaltState
/**
* The salt value from server.
*/
- struct ANASTASIS_CRYPTO_SaltP salt;
+ struct ANASTASIS_CRYPTO_PowSaltP salt;
/**
* Reference to a ServerInfo.
@@ -624,7 +624,7 @@ config_cb (void *cls,
static void
salt_cb (void *cls,
unsigned int http_status,
- const struct ANASTASIS_CRYPTO_SaltP *salt)
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt)
{
struct SaltState *ss = cls;
struct ConfigState *cs = GNUNET_new (struct ConfigState);
diff --git a/src/include/anastasis.h b/src/include/anastasis.h
index 407a999..17f6a36 100644
--- a/src/include/anastasis.h
+++ b/src/include/anastasis.h
@@ -83,7 +83,7 @@ struct ANASTASIS_RecoveryInformation
unsigned int cs_len;
- struct ANASTASIS_CRYPTO_SaltP salt;
+ struct ANASTASIS_CRYPTO_PowSaltP salt;
unsigned int version; // actual version obtained
};
@@ -246,7 +246,7 @@ ANASTASIS_recovery_begin (struct GNUNET_CURL_Context *ctx,
const json_t *id_data,
unsigned int version,
const char *anastasis_provider_url,
- const struct ANASTASIS_CRYPTO_SaltP *salt,
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt,
ANASTASIS_PolicyCallback pc,
void *pc_cls,
ANASTASIS_CoreSecretCallback csc,
@@ -319,7 +319,7 @@ ANASTASIS_truth_upload (struct GNUNET_CURL_Context *ctx,
const char *method,
const char *instructions,
const char *mime_type,
- const struct ANASTASIS_CRYPTO_SaltP *salt,
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt,
const void *truth_data,
size_t truth_data_size,
ANASTASIS_TruthPaymentCallback tpc,
diff --git a/src/include/anastasis_crypto_lib.h
b/src/include/anastasis_crypto_lib.h
index a26c010..23d18db 100644
--- a/src/include/anastasis_crypto_lib.h
+++ b/src/include/anastasis_crypto_lib.h
@@ -77,6 +77,14 @@ struct ANASTASIS_CRYPTO_SaltP
struct GNUNET_HashCode salt GNUNET_PACKED;
};
+/**
+ * Specifies a Salt value of size 16 Byte for GNUNET_CRYPTO_pow_hash.
+*/
+struct ANASTASIS_CRYPTO_PowSaltP
+{
+ uint8_t salt[16];
+};
+
/**
* Specifies a policy key which is used to decrypt the master key
@@ -184,7 +192,7 @@ GNUNET_NETWORK_STRUCT_END
void
ANASTASIS_CRYPTO_user_identifier_derive (
const json_t *id_data,
- const struct ANASTASIS_CRYPTO_SaltP *server_salt,
+ const struct ANASTASIS_CRYPTO_PowSaltP *server_salt,
struct ANASTASIS_CRYPTO_UserIdentifierP *id);
/**
diff --git a/src/include/anastasis_service.h b/src/include/anastasis_service.h
index 70abc62..e849828 100644
--- a/src/include/anastasis_service.h
+++ b/src/include/anastasis_service.h
@@ -319,7 +319,7 @@ struct ANASTASIS_ConfigOperation
typedef void
(*ANASTASIS_SaltCallback)(void *cls,
unsigned int http_status,
- const struct ANASTASIS_CRYPTO_SaltP *salt);
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt);
struct ANASTASIS_SaltOperation *
@@ -366,7 +366,7 @@ struct ANASTASIS_SaltOperation
/**
* Server salt.
*/
- struct ANASTASIS_CRYPTO_SaltP salt;
+ struct ANASTASIS_CRYPTO_PowSaltP salt;
};
diff --git a/src/include/anastasis_testing_lib.h
b/src/include/anastasis_testing_lib.h
index 2249a65..c3ff3c2 100644
--- a/src/include/anastasis_testing_lib.h
+++ b/src/include/anastasis_testing_lib.h
@@ -434,7 +434,7 @@ ANASTASIS_TESTING_cmd_keyshare_lookup (const char *label,
int
ANASTASIS_TESTING_get_trait_salt (const struct TALER_TESTING_Command *cmd,
unsigned int index,
- const struct ANASTASIS_CRYPTO_SaltP **s);
+ const struct ANASTASIS_CRYPTO_PowSaltP **s);
/**
@@ -446,7 +446,7 @@ ANASTASIS_TESTING_get_trait_salt (const struct
TALER_TESTING_Command *cmd,
*/
struct TALER_TESTING_Trait
ANASTASIS_TESTING_make_trait_salt (unsigned int index,
- const struct ANASTASIS_CRYPTO_SaltP *s);
+ const struct ANASTASIS_CRYPTO_PowSaltP *s);
/**
diff --git a/src/lib/anastasis.c b/src/lib/anastasis.c
index 76cb9ae..ca5780e 100644
--- a/src/lib/anastasis.c
+++ b/src/lib/anastasis.c
@@ -87,15 +87,15 @@ struct ANASTASIS_Recovery
*/
size_t enc_core_secret_size;
/**
- * Length of available decryption policies
+ * Length of available decryption policies //FIXME: Copy paste?
*/
- struct ANASTASIS_CRYPTO_SaltP policy_salt;
+ struct ANASTASIS_CRYPTO_PowSaltP policy_salt;
/**
- * Length of available decryption policies
+ * Length of available decryption policies //FIXME: Copy paste?
*/
struct ANASTASIS_Challenge *solved_challenges;
/**
- * Length of available decryption policies
+ * Length of available decryption policies //FIXME: Copy paste?
*/
unsigned int solved_challenge_pos;
/**
@@ -709,7 +709,7 @@ ANASTASIS_recovery_begin (struct GNUNET_CURL_Context *ctx,
const json_t *id_data,
unsigned int version,
const char *anastasis_provider_url,
- const struct ANASTASIS_CRYPTO_SaltP *salt,
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt,
ANASTASIS_PolicyCallback pc,
void *pc_cls,
ANASTASIS_CoreSecretCallback csc,
@@ -822,7 +822,7 @@ struct ANASTASIS_Truth
/**
* server salt used to derive user identifier
*/
- const struct ANASTASIS_CRYPTO_SaltP *salt;
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt;
};
/**
@@ -976,7 +976,7 @@ ANASTASIS_truth_upload (struct GNUNET_CURL_Context *ctx,
const char *method,
const char *instructions,
const char *mime_type,
- const struct ANASTASIS_CRYPTO_SaltP *salt,
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt,
const void *truth_data,
size_t truth_data_size,
ANASTASIS_TruthPaymentCallback tpc,
@@ -1282,7 +1282,7 @@ struct PolicyStoreState
/**
* Server salt
*/
- const struct ANASTASIS_CRYPTO_SaltP *server_salt;
+ const struct ANASTASIS_CRYPTO_PowSaltP *server_salt;
/**
* Status of the transaction
diff --git a/src/lib/testing_api_cmd_salt.c b/src/lib/testing_api_cmd_salt.c
index c891215..aea43f5 100644
--- a/src/lib/testing_api_cmd_salt.c
+++ b/src/lib/testing_api_cmd_salt.c
@@ -54,7 +54,7 @@ struct SaltState
/**
* The salt value from server.
*/
- struct ANASTASIS_CRYPTO_SaltP salt;
+ struct ANASTASIS_CRYPTO_PowSaltP salt;
};
@@ -68,7 +68,7 @@ struct SaltState
static void
salt_cb (void *cls,
unsigned int http_status,
- const struct ANASTASIS_CRYPTO_SaltP *salt)
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt)
{
struct SaltState *ss = cls;
diff --git a/src/lib/testing_api_trait_salt.c b/src/lib/testing_api_trait_salt.c
index 0bf5f3a..88976ce 100644
--- a/src/lib/testing_api_trait_salt.c
+++ b/src/lib/testing_api_trait_salt.c
@@ -41,7 +41,7 @@ int
ANASTASIS_TESTING_get_trait_salt
(const struct TALER_TESTING_Command *cmd,
unsigned int index,
- const struct ANASTASIS_CRYPTO_SaltP **s)
+ const struct ANASTASIS_CRYPTO_PowSaltP **s)
{
return cmd->traits (cmd->cls,
(const void **) s,
@@ -60,7 +60,7 @@ ANASTASIS_TESTING_get_trait_salt
struct TALER_TESTING_Trait
ANASTASIS_TESTING_make_trait_salt
(unsigned int index,
- const struct ANASTASIS_CRYPTO_SaltP *s)
+ const struct ANASTASIS_CRYPTO_PowSaltP *s)
{
struct TALER_TESTING_Trait ret = {
.index = index,
diff --git a/src/lib/testing_cmd_recover_secret.c
b/src/lib/testing_cmd_recover_secret.c
index 3cd6d6d..8ec7243 100644
--- a/src/lib/testing_cmd_recover_secret.c
+++ b/src/lib/testing_cmd_recover_secret.c
@@ -75,7 +75,7 @@ struct RecoverSecretState
/**
* Salt to be used to derive the id
*/
- struct ANASTASIS_CRYPTO_SaltP *salt;
+ struct ANASTASIS_CRYPTO_PowSaltP *salt;
/**
* Recovery information from the lookup
*/
@@ -134,7 +134,7 @@ recover_secret_run (void *cls,
{
struct RecoverSecretState *rss = cls;
const struct TALER_TESTING_Command *ref;
- const struct ANASTASIS_CRYPTO_SaltP *salt;
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt;
rss->is = is;
if (NULL != rss->download_reference)
diff --git a/src/lib/testing_cmd_truth_upload.c
b/src/lib/testing_cmd_truth_upload.c
index 7d7e7e7..122cfe3 100644
--- a/src/lib/testing_cmd_truth_upload.c
+++ b/src/lib/testing_cmd_truth_upload.c
@@ -168,7 +168,7 @@ truth_upload_run (void *cls,
{
struct TruthUploadState *tus = cls;
const struct TALER_TESTING_Command *ref;
- const struct ANASTASIS_CRYPTO_SaltP *salt;
+ const struct ANASTASIS_CRYPTO_PowSaltP *salt;
tus->is = is;
if (NULL != tus->upload_reference)
diff --git a/src/util/anastasis_crypto.c b/src/util/anastasis_crypto.c
index 68d21e0..78b95c8 100644
--- a/src/util/anastasis_crypto.c
+++ b/src/util/anastasis_crypto.c
@@ -319,28 +319,20 @@ anastasis_decrypt (const void *key,
void
ANASTASIS_CRYPTO_user_identifier_derive (
const json_t *id_data,
- const struct ANASTASIS_CRYPTO_SaltP *server_salt,
+ const struct ANASTASIS_CRYPTO_PowSaltP *server_salt,
struct ANASTASIS_CRYPTO_UserIdentifierP *id)
{
char *json_enc;
- char *salt_str_buf;
- char salt_str[16];
-
- salt_str_buf = GNUNET_STRINGS_data_to_string_alloc (server_salt,
- sizeof (*server_salt));
- // GNUNET_CRYPTO_pow_hash needs a salt value of exactly 16 Bytes
- strncpy (salt_str,salt_str_buf, 16);
- salt_str[16] = '\0';
+
json_enc = json_dumps (id_data,
JSON_COMPACT | JSON_SORT_KEYS);
GNUNET_assert (NULL != json_enc);
- GNUNET_CRYPTO_pow_hash (salt_str,
+ GNUNET_CRYPTO_pow_hash (server_salt,
json_enc,
strlen (json_enc),
&id->hash);
free (json_enc);
- GNUNET_free (salt_str_buf);
}
diff --git a/src/util/test_anastasis_crypto.c b/src/util/test_anastasis_crypto.c
index 7abd455..8797882 100644
--- a/src/util/test_anastasis_crypto.c
+++ b/src/util/test_anastasis_crypto.c
@@ -41,11 +41,6 @@ test_user_identifier_derive (void)
struct ANASTASIS_CRYPTO_UserIdentifierP id_1;
struct ANASTASIS_CRYPTO_UserIdentifierP id_2;
struct ANASTASIS_CRYPTO_UserIdentifierP id_3;
- struct ANASTASIS_CRYPTO_SaltP salt;
-
- GNUNET_CRYPTO_hash_from_string2 ("Server Salt",
- strlen ("Server Salt"),
- &salt.salt);
// sample data 1
id_data_1 = json_object ();
@@ -58,13 +53,13 @@ test_user_identifier_derive (void)
json_object_set_new (id_data_3, "arg1", json_string ("Hallo2"));
ANASTASIS_CRYPTO_user_identifier_derive (id_data_1,
- &salt,
+ "Server-Salt-Test",
&id_1);
ANASTASIS_CRYPTO_user_identifier_derive (id_data_2,
- &salt,
+ "Server-Salt-Test",
&id_2);
ANASTASIS_CRYPTO_user_identifier_derive (id_data_3,
- &salt,
+ "Server-Salt-Test",
&id_3);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"UserIdentifier_1: %s\n",
@@ -97,17 +92,12 @@ test_recovery_document (void)
size_t size_plaintext;
struct ANASTASIS_CRYPTO_UserIdentifierP id;
int ret;
- struct ANASTASIS_CRYPTO_SaltP *salt = GNUNET_new (struct
- ANASTASIS_CRYPTO_SaltP);
+
json_t *id_data = json_object ();
const char *test = "TEST_ERD";
-
- GNUNET_CRYPTO_hash_from_string ("Server Salt",
- &salt->salt);
-
json_object_set_new (id_data, "arg1", json_string ("ID_DATA"));
ANASTASIS_CRYPTO_user_identifier_derive (id_data,
- salt,
+ "Server-Salt-Test",
&id);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -131,7 +121,6 @@ test_recovery_document (void)
GNUNET_assert (strlen (test) == size_plaintext);
ret = strncmp (plaintext, test, strlen (test));
json_decref (id_data);
- GNUNET_free (salt);
GNUNET_free (ciphertext);
GNUNET_free (plaintext);
return ret;
@@ -311,7 +300,7 @@ test_public_key_derive ()
{
struct ANASTASIS_CRYPTO_UserIdentifierP id;
struct ANASTASIS_CRYPTO_AccountPublicKeyP pub_key;
- struct ANASTASIS_CRYPTO_SaltP server_salt;
+ struct ANASTASIS_CRYPTO_PowSaltP server_salt;
json_t *id_data = json_object ();
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-anastasis] branch master updated (a735150 -> 8b5083a), gnunet, 2020/08/19
- [taler-anastasis] 01/06: worked on dependency-fix, gnunet, 2020/08/19
- [taler-anastasis] 02/06: fixed Anastasis to build, testing fails, gnunet, 2020/08/19
- [taler-anastasis] 03/06: fixed error with GNUNET_CRYPTO_pow_hash, gnunet, 2020/08/19
- [taler-anastasis] 06/06: fix api test, gnunet, 2020/08/19
- [taler-anastasis] 05/06: fixed salt issue with GNUNET_CRYPTO_pow_hash,
gnunet <=
- [taler-anastasis] 04/06: fixed some dependencies in testing, gnunet, 2020/08/19