diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-01-19 13:54:03 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-01-19 13:54:03 +0100 |
commit | 18c53ce9ac45efbf6bcb53995eb5d10a357c5846 (patch) | |
tree | f117b89a82a664988291ed21387c0bf6dae50516 | |
parent | 5694afc25e4363c15756fe6c529c441750870cff (diff) | |
download | anastasis-18c53ce9ac45efbf6bcb53995eb5d10a357c5846.tar.gz anastasis-18c53ce9ac45efbf6bcb53995eb5d10a357c5846.zip |
-upload encrypted meta data during backup
-rw-r--r-- | src/lib/anastasis_backup.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/anastasis_backup.c b/src/lib/anastasis_backup.c index f5b91fb..20c77e4 100644 --- a/src/lib/anastasis_backup.c +++ b/src/lib/anastasis_backup.c | |||
@@ -895,6 +895,8 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx, | |||
895 | void *recovery_data; | 895 | void *recovery_data; |
896 | size_t recovery_data_size; | 896 | size_t recovery_data_size; |
897 | struct ANASTASIS_CRYPTO_AccountPrivateKeyP anastasis_priv; | 897 | struct ANASTASIS_CRYPTO_AccountPrivateKeyP anastasis_priv; |
898 | size_t enc_meta_size = 0; | ||
899 | void *enc_meta = NULL; | ||
898 | 900 | ||
899 | pss->ss = ss; | 901 | pss->ss = ss; |
900 | pss->anastasis_url = GNUNET_strdup (providers[l].provider_url); | 902 | pss->anastasis_url = GNUNET_strdup (providers[l].provider_url); |
@@ -903,6 +905,12 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx, | |||
903 | ANASTASIS_CRYPTO_user_identifier_derive (id_data, | 905 | ANASTASIS_CRYPTO_user_identifier_derive (id_data, |
904 | &pss->server_salt, | 906 | &pss->server_salt, |
905 | &pss->id); | 907 | &pss->id); |
908 | if (NULL != secret_name) | ||
909 | ANASTASIS_CRYPTO_recovery_metadata_encrypt (&pss->id, | ||
910 | secret_name, | ||
911 | strlen (secret_name), | ||
912 | &enc_meta, | ||
913 | &enc_meta_size); | ||
906 | ANASTASIS_CRYPTO_account_private_key_derive (&pss->id, | 914 | ANASTASIS_CRYPTO_account_private_key_derive (&pss->id, |
907 | &anastasis_priv); | 915 | &anastasis_priv); |
908 | ANASTASIS_CRYPTO_recovery_document_encrypt (&pss->id, | 916 | ANASTASIS_CRYPTO_recovery_document_encrypt (&pss->id, |
@@ -919,7 +927,8 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx, | |||
919 | &anastasis_priv, | 927 | &anastasis_priv, |
920 | recovery_data, | 928 | recovery_data, |
921 | recovery_data_size, | 929 | recovery_data_size, |
922 | NULL, 0, /* FIXME: meta-data! */ | 930 | enc_meta, |
931 | enc_meta_size, | ||
923 | payment_years_requested, | 932 | payment_years_requested, |
924 | (! GNUNET_is_zero (&pss->payment_secret)) | 933 | (! GNUNET_is_zero (&pss->payment_secret)) |
925 | ? &pss->payment_secret | 934 | ? &pss->payment_secret |
@@ -928,6 +937,7 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx, | |||
928 | &policy_store_cb, | 937 | &policy_store_cb, |
929 | pss); | 938 | pss); |
930 | GNUNET_free (recovery_data); | 939 | GNUNET_free (recovery_data); |
940 | GNUNET_free (enc_meta); | ||
931 | if (NULL == pss->pso) | 941 | if (NULL == pss->pso) |
932 | { | 942 | { |
933 | GNUNET_break (0); | 943 | GNUNET_break (0); |