updates. New data types.
[silc.git] / lib / silccore / id.c
index c531badce4cbe89208264f17be522a0a0371a42c..f39783ced657afcde45f2f086eb459fda5dc4927 100644 (file)
@@ -62,7 +62,7 @@ unsigned char *silc_id_id2str(void *id, SilcIdType type)
 
 /* Converts string to a ID */
 
-void *silc_id_str2id(unsigned char *id, unsigned int id_len, SilcIdType type)
+void *silc_id_str2id(unsigned char *id, uint32 id_len, SilcIdType type)
 {
 
   switch(type) {
@@ -115,7 +115,7 @@ void *silc_id_str2id(unsigned char *id, unsigned int id_len, SilcIdType type)
 
 /* Returns length of the ID */
 
-unsigned int silc_id_get_len(SilcIdType type)
+uint32 silc_id_get_len(SilcIdType type)
 {
   switch(type) {
   case SILC_ID_SERVER:
@@ -131,3 +131,13 @@ unsigned int silc_id_get_len(SilcIdType type)
 
   return 0;
 }
+
+/* Duplicate ID data */
+
+void *silc_id_dup(void *id, SilcIdType type)
+{
+  int len = silc_id_get_len(type);
+  void *new = silc_calloc(1, len);
+  memcpy(new, id, len);
+  return new;
+}