+static void silc_register_cipher(SilcClient client, const char *cipher)
+{
+ int i;
+
+ for (i = 0; silc_default_ciphers[i].name; i++)
+ if (!strcmp(silc_default_ciphers[i].name, cipher)) {
+ silc_cipher_register(&silc_default_ciphers[i]);
+ break;
+ }
+
+ if (!silc_cipher_is_supported(cipher)) {
+ SILC_LOG_ERROR(("Unknown cipher `%s'", cipher));
+ exit(1);
+ }
+}
+
+static void silc_register_hash(SilcClient client, const char *hash)
+{
+ int i;
+
+ for (i = 0; silc_default_hash[i].name; i++)
+ if (!strcmp(silc_default_hash[i].name, hash)) {
+ silc_hash_register(&silc_default_hash[i]);
+ break;
+ }
+
+ if (!silc_hash_is_supported(hash)) {
+ SILC_LOG_ERROR(("Unknown hash function `%s'", hash));
+ exit(1);
+ }
+}
+
+static void silc_register_hmac(SilcClient client, const char *hmac)
+{
+ int i;
+
+ for (i = 0; silc_default_hmacs[i].name; i++)
+ if (!strcmp(silc_default_hmacs[i].name, hmac)) {
+ silc_hmac_register(&silc_default_hmacs[i]);
+ break;
+ }
+
+ if (!silc_hmac_is_supported(hmac)) {
+ SILC_LOG_ERROR(("Unknown HMAC `%s'", hmac));
+ exit(1);
+ }
+}
+