+/******************************************************************************
+
+ Common functions
+
+******************************************************************************/
+
+/* This function is used to add keys and stuff to common ID entry data
+ structure. */
+
+void silc_idlist_add_data(void *entry, SilcIDListData idata)
+{
+ SilcIDListData data = (SilcIDListData)entry;
+ data->send_key = idata->send_key;
+ data->receive_key = idata->receive_key;
+ data->hmac = idata->hmac;
+ data->hmac_key = idata->hmac_key;
+ data->hmac_key_len = idata->hmac_key_len;
+ data->pkcs = idata->pkcs;
+ data->public_key = idata->public_key;
+ data->last_receive = idata->last_receive;
+ data->last_sent = idata->last_sent;
+ data->registered = idata->registered;
+}
+
+/* Free's all data in the common ID entry data structure. */
+
+void silc_idlist_del_data(void *entry)
+{
+ SilcIDListData idata = (SilcIDListData)entry;
+ if (idata->send_key)
+ silc_cipher_free(idata->send_key);
+ if (idata->receive_key)
+ silc_cipher_free(idata->receive_key);
+ if (idata->hmac)
+ silc_hmac_free(idata->hmac);
+ if (idata->hmac_key) {
+ memset(idata->hmac_key, 0, idata->hmac_key_len);
+ silc_free(idata->hmac_key);
+ }
+ if (idata->pkcs)
+ silc_pkcs_free(idata->pkcs);
+ if (idata->public_key)
+ silc_pkcs_public_key_free(idata->public_key);
+}
+