SilcHash hash)
{
int ret = SILC_AUTH_FAILED;
- SilcBuffer sign;
- SilcBufferStruct tmp;
+ SilcBuffer sign, tmp;
if (!sig || !remote_public_key || !hash)
return ret;
/* Generate the signature verification data, the Message Payload */
- memset(&tmp, 0, sizeof(tmp));
- silc_buffer_format(&tmp,
+ tmp = silc_buffer_alloc_size(6 + message->data_len + message->pad_len);
+ silc_buffer_format(tmp,
SILC_STR_UI_SHORT(message->flags),
SILC_STR_UI_SHORT(message->data_len),
SILC_STR_UI_XNSTRING(message->data, message->data_len),
SILC_STR_UI_SHORT(message->pad_len),
SILC_STR_UI_XNSTRING(message->pad, message->pad_len),
SILC_STR_END);
- sign = silc_message_signed_encode_data(tmp.data, silc_buffer_len(&tmp),
+ sign = silc_message_signed_encode_data(tmp->data, silc_buffer_len(tmp),
sig->pk_data, sig->pk_len,
sig->pk_type);
- silc_buffer_clear(&tmp);
- silc_free(silc_buffer_steal(&tmp, NULL));
+ silc_buffer_clear(tmp);
+ silc_buffer_free(tmp);
if (!sign)
return ret;
#define SILC_MESSAGE_FLAG_DATA 0x0080 /* MIME object */
#define SILC_MESSAGE_FLAG_UTF8 0x0100 /* UTF-8 string */
#define SILC_MESSAGE_FLAG_ACK 0x0200 /* ACK messages */
-#define SILC_MESSAGE_FLAG_RESERVED 0x0400 /* to 0x1000 */
+#define SILC_MESSAGE_FLAG_STOP 0x0400 /* Stop indication */
+#define SILC_MESSAGE_FLAG_RESERVED 0x0800 /* to 0x1000 */
#define SILC_MESSAGE_FLAG_PRIVATE 0x2000 /* to 0x8000 */
/***/