Moved SilcClientEntry, SilcServerEntry and SilcChannelEntry
[silc.git] / lib / silcclient / idlist.h
index f6357b49900c5fe58804d4346c9941d8edcef40e..4e9d1c87ddb9b51086240ccd00c427444107a880 100644 (file)
 #ifndef IDLIST_H
 #define IDLIST_H
 
-/* Client entry status */
-typedef enum {
-  SILC_CLIENT_STATUS_NONE       = 0x0000,
-  SILC_CLIENT_STATUS_RESOLVING  = 0x0001,
-} SilcEntryStatus;
-
-/* Client entry context. When client receives information about new client
-   (it receives its ID, for example, by IDENTIFY request) we create new
-   client entry. This entry also includes the private message keys if
-   they are used. */
-struct SilcClientEntryStruct {
-  char *nickname;              /* nickname */
-  char *username;              /* username */
-  char *hostname;              /* hostname */
-  char *server;                        /* SILC server name */
-  char *realname;              /* Realname (userinfo) */
-  SilcUInt32 mode;             /* User mode in SILC */
-  SilcClientID *id;            /* The Client ID */
-  unsigned char *fingerprint;  /* Fingerprint of client's public key */
-  SilcUInt32 fingerprint_len;  /* Length of the fingerprint */
-  SilcCipher send_key;         /* Private message key for sending */
-  SilcCipher receive_key;      /* Private message key for receiving */
-  SilcClientKeyAgreement ke;   /* Current key agreement context or NULL */
-  SilcDList attrs;             /* Requested Attributes (maybe NULL) */
-  SilcEntryStatus status;      /* Status mask */
-  SilcHashTable channels;      /* All channels client has joined */
-  unsigned char *key;          /* Set only if appliation provided the
-                                  key material. NULL if the library 
-                                  generated the key. */
-  SilcUInt32 key_len;          /* Key length */
-  SilcUInt16 resolve_cmd_ident;        /* Command identifier when resolving */
-  bool generated;              /* TRUE if library generated `key' */
-  bool valid;                  /* FALSE if this entry is not valid */
-};
-
-/* Client and its mode on a channel */
-struct SilcChannelUserStruct {
-  SilcClientEntry client;
-  SilcUInt32 mode;
-  SilcChannelEntry channel;
-};
-
-/* Channel entry context. This is allocate for every channel client has
-   joined to. This includes for example the channel specific keys */
-struct SilcChannelEntryStruct {
-  char *channel_name;
-  SilcChannelID *id;
-  SilcUInt32 mode;
-  SilcUInt16 resolve_cmd_ident;
-
-  /* All clients that has joined this channel */
-  SilcHashTable user_list;
-
-  /* Channel keys */
-  SilcCipher channel_key;                    /* The channel key */
-  unsigned char *key;                       /* Raw key data */
-  SilcUInt32 key_len;                       /* Raw key data length */
-  unsigned char iv[SILC_CIPHER_MAX_IV_SIZE]; /* Current IV */
-  SilcHmac hmac;                            /* Current HMAC */
-  SilcDList private_keys;                   /* List of private keys or NULL */
-  SilcChannelPrivateKey curr_key;           /* Current private key */
-
-  /* Old channel key is saved for a short period of time when rekey occurs
-     in case if someone is sending messages after the rekey encrypted with
-     the old key, we can still decrypt them. */
-  SilcCipher old_channel_key;
-  SilcHmac old_hmac;
-  SilcTask rekey_task;
-};
-
-/* Server entry context. This represents one server. When server information
-   is resolved with INFO command the server info is saved in this context. 
-   Also the connected servers are saved here. */
-struct SilcServerEntryStruct {
-  char *server_name;
-  char *server_info;
-  SilcServerID *server_id;
-  SilcUInt16 resolve_cmd_ident;
-};
-
 /* Prototypes. These are used only by the library. Application should not
    call these directly. */