aboutsummaryrefslogtreecommitdiff
path: root/src/service/messenger/messenger_api_message.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/messenger/messenger_api_message.c')
-rw-r--r--src/service/messenger/messenger_api_message.c36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/service/messenger/messenger_api_message.c b/src/service/messenger/messenger_api_message.c
index c7762d925..181431189 100644
--- a/src/service/messenger/messenger_api_message.c
+++ b/src/service/messenger/messenger_api_message.c
@@ -25,6 +25,7 @@
25 25
26#include "messenger_api_message.h" 26#include "messenger_api_message.h"
27 27
28#include "gnunet_common.h"
28#include "gnunet_messenger_service.h" 29#include "gnunet_messenger_service.h"
29#include "gnunet_signatures.h" 30#include "gnunet_signatures.h"
30 31
@@ -1085,6 +1086,39 @@ decrypt_message (struct GNUNET_MESSENGER_Message *message,
1085} 1086}
1086 1087
1087 1088
1089struct GNUNET_MESSENGER_Message*
1090transcribe_message (const struct GNUNET_MESSENGER_Message *message,
1091 const struct GNUNET_CRYPTO_PublicKey *key)
1092{
1093 GNUNET_assert ((message) && (key));
1094
1095 struct GNUNET_MESSENGER_Message *transcript = create_message(
1096 GNUNET_MESSENGER_KIND_TRANSCRIPT);
1097
1098 if (!transcript)
1099 {
1100 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Transcribing message failed!\n");
1101 return NULL;
1102 }
1103
1104 GNUNET_memcpy(&(transcript->body.transcript.key), key, sizeof(transcript->body.transcript.key));
1105
1106 struct GNUNET_MESSENGER_ShortMessage shortened;
1107
1108 fold_short_message (message, &shortened);
1109
1110 const uint16_t data_length = get_short_message_size (
1111 &shortened, GNUNET_YES);
1112
1113 transcript->body.transcript.data = GNUNET_malloc (data_length);
1114 transcript->body.transcript.length = data_length;
1115
1116 encode_short_message (&shortened, data_length, transcript->body.transcript.data);
1117
1118 return transcript;
1119}
1120
1121
1088struct GNUNET_MQ_Envelope* 1122struct GNUNET_MQ_Envelope*
1089pack_message (struct GNUNET_MESSENGER_Message *message, 1123pack_message (struct GNUNET_MESSENGER_Message *message,
1090 struct GNUNET_HashCode *hash, 1124 struct GNUNET_HashCode *hash,
@@ -1197,7 +1231,7 @@ is_service_message (const struct GNUNET_MESSENGER_Message *message)
1197 case GNUNET_MESSENGER_KIND_TICKET: 1231 case GNUNET_MESSENGER_KIND_TICKET:
1198 return GNUNET_NO; 1232 return GNUNET_NO;
1199 case GNUNET_MESSENGER_KIND_TRANSCRIPT: 1233 case GNUNET_MESSENGER_KIND_TRANSCRIPT:
1200 return GNUNET_YES; // Allow access to self encrypted messages! 1234 return GNUNET_NO;
1201 case GNUNET_MESSENGER_KIND_TAG: 1235 case GNUNET_MESSENGER_KIND_TAG:
1202 return GNUNET_NO; 1236 return GNUNET_NO;
1203 default: 1237 default: