Added support for multiple PublicKey instances in the config
[silc.git] / apps / silcd / server_util.h
index 665647f062967b17093f119555fc77e1d461c624..ca54b1b8614851b5316d44445838c8a52de0f1c8 100644 (file)
@@ -75,14 +75,30 @@ bool silc_server_client_on_channel(SilcClientEntry client,
                                   SilcChannelEntry channel);
 
 /* Checks string for bad characters and returns TRUE if they are found. */
-bool silc_server_name_bad_chars(const char *name, uint32 name_len);
+bool silc_server_name_bad_chars(const char *name, SilcUInt32 name_len);
 
 /* Modifies the `nick' if it includes bad characters and returns new
    allocated nickname that does not include bad characters. */
-char *silc_server_name_modify_bad(const char *name, uint32 name_len);
+char *silc_server_name_modify_bad(const char *name, SilcUInt32 name_len);
 
 /* Find number of sockets by IP address indicated by `ip'. Returns 0 if
    socket connections with the IP address does not exist. */
-uint32 silc_server_num_sockets_by_ip(SilcServer server, const char *ip);
+SilcUInt32 silc_server_num_sockets_by_ip(SilcServer server, const char *ip,
+                                        SilcSocketType type);
+
+/* Finds locally cached public key by the public key received in the SKE. 
+   If we have it locally cached then we trust it and will use it in the
+   authentication protocol.  Returns the locally cached public key or NULL
+   if we do not find the public key.  */
+SilcPublicKey silc_server_find_public_key(SilcServer server, 
+                                         SilcHashTable local_public_keys,
+                                         SilcPublicKey remote_public_key);
+
+/* This returns the first public key from the table of public keys.  This
+   is used only in cases where single public key exists in the table and
+   we want to get a pointer to it.  For public key tables that has multiple
+   keys in it the silc_server_find_public_key must be used. */
+SilcPublicKey silc_server_get_public_key(SilcServer server,
+                                        SilcHashTable local_public_keys);
 
 #endif /* SERVER_UTIL_H */