/* Implementation of Attribute Payload routines */
/* $Id$ */
-#include "silcincludes.h"
+#include "silc.h"
#include "silcattrs.h"
/******************************************************************************
case SILC_ATTRIBUTE_EXTENSION:
case SILC_ATTRIBUTE_USER_ICON:
{
- SilcAttributeObjMime *mime = object;
+ SilcMime mime = object;
if (object_size != sizeof(*mime))
return NULL;
- object = (void *)mime->mime;
- object_size = mime->mime_len;
+ str = silc_mime_encode(mime, &object_size);
+ if (!str)
+ return NULL;
}
break;
/* Construct digital signature verification data */
unsigned char *silc_attribute_get_verify_data(SilcDList attrs,
- bool server_verification,
+ SilcBool server_verification,
SilcUInt32 *data_len)
{
SilcAttributePayload attr;
/* Return parsed attribute object */
-bool silc_attribute_get_object(SilcAttributePayload payload,
+SilcBool silc_attribute_get_object(SilcAttributePayload payload,
void *object, SilcUInt32 object_size)
{
SilcUInt16 len;
- bool ret = FALSE;
+ SilcBool ret = FALSE;
if (!object || payload->flags & SILC_ATTRIBUTE_FLAG_INVALID)
return FALSE;
case SILC_ATTRIBUTE_EXTENSION:
case SILC_ATTRIBUTE_USER_ICON:
{
- SilcAttributeObjMime *mime = object;
+ SilcMime mime = object;
if (object_size != sizeof(*mime))
break;
- mime->mime = (const unsigned char *)payload->data;
- mime->mime_len = payload->data_len;
+ if (!silc_mime_decode(mime, payload->data, payload->data_len))
+ break;
ret = TRUE;
}
break;