+/****d* silccrypt/Ciphers
+ *
+ * NAME
+ *
+ * Ciphers
+ *
+ * DESCRIPTION
+ *
+ * Supported ciphers names. These names can be given as argument
+ * to silc_cipher_alloc.
+ *
+ * SOURCE
+ */
+
+/* AES in CTR mode, in different key lengths */
+#define SILC_CIPHER_AES_256_CTR "aes-256-ctr"
+#define SILC_CIPHER_AES_192_CTR "aes-192-ctr"
+#define SILC_CIPHER_AES_128_CTR "aes-128-ctr"
+
+/* AES in CBC mode, in different key lengths */
+#define SILC_CIPHER_AES_256_CBC "aes-256-cbc"
+#define SILC_CIPHER_AES_192_CBC "aes-192-cbc"
+#define SILC_CIPHER_AES_128_CBC "aes-128-cbc"
+
+/* AES in CFB mode, in different key lengths */
+#define SILC_CIPHER_AES_256_CFB "aes-256-cfb"
+#define SILC_CIPHER_AES_192_CFB "aes-192-cfb"
+#define SILC_CIPHER_AES_128_CFB "aes-128-cfb"
+
+/* AES in ECB mode, in different key lengths */
+#define SILC_CIPHER_AES_256_ECB "aes-256-ecb"
+#define SILC_CIPHER_AES_192_ECB "aes-192-ecb"
+#define SILC_CIPHER_AES_128_ECB "aes-128-ecb"
+
+/* Twofish in CTR mode, in different key lengths */
+#define SILC_CIPHER_TWOFISH_256_CTR "twofish-256-ctr"
+#define SILC_CIPHER_TWOFISH_192_CTR "twofish-192-ctr"
+#define SILC_CIPHER_TWOFISH_128_CTR "twofish-128-ctr"
+
+/* Twofish in CBC mode, in different key lengths */
+#define SILC_CIPHER_TWOFISH_256_CBC "twofish-256-cbc"
+#define SILC_CIPHER_TWOFISH_192_CBC "twofish-192-cbc"
+#define SILC_CIPHER_TWOFISH_128_CBC "twofish-128-cbc"
+
+/* Twofish in CFB mode, in different key lengths */
+#define SILC_CIPHER_TWOFISH_256_CFB "twofish-256-cfb"
+#define SILC_CIPHER_TWOFISH_192_CFB "twofish-192-cfb"
+#define SILC_CIPHER_TWOFISH_128_CFB "twofish-128-cfb"
+
+/* Twofish in ECB mode, in different key lengths */
+#define SILC_CIPHER_TWOFISH_256_ECB "twofish-256-ecb"
+#define SILC_CIPHER_TWOFISH_192_ECB "twofish-192-ecb"
+#define SILC_CIPHER_TWOFISH_128_ECB "twofish-128-ecb"
+
+/* CAST-128 in CTR, CBC, CFB, ECB modes, 128-bit key length */
+#define SILC_CIPHER_CAST5_128_CTR "cast5-128-ctr"
+#define SILC_CIPHER_CAST5_128_CBC "cast5-128-cbc"
+#define SILC_CIPHER_CAST5_128_CFB "cast5-128-cfb"
+#define SILC_CIPHER_CAST5_128_ECB "cast5-128-ecb"
+
+/* DES in CTR, CBC, CFB, ECB modes, 56-bit key length */
+#define SILC_CIPHER_DES_56_CTR "des-56-ctr"
+#define SILC_CIPHER_DES_56_CBC "des-56-cbc"
+#define SILC_CIPHER_DES_56_CFB "des-56-cfb"
+#define SILC_CIPHER_DES_56_ECB "des-56-ecb"
+
+/* 3DES in CTR, CBC, CFB, ECB modes, 168-bit (192-bit) key length */
+#define SILC_CIPHER_3DES_168_CTR "3des-168-ctr"
+#define SILC_CIPHER_3DES_168_CBC "3des-168-cbc"
+#define SILC_CIPHER_3DES_168_CFB "3des-168-cfb"
+#define SILC_CIPHER_3DES_168_ECB "3des-168-ecb"
+
+/* No encryption */
+#define SILC_CIPHER_NONE "none"
+/***/
+
+/****d* silccrypt/Cipher Algorithms
+ *
+ * NAME
+ *
+ * Cipher Algorithms
+ *
+ * DESCRIPTION
+ *
+ * Supported cipher algorithm names. These names can be give as argument
+ * to silc_cipher_alloc_full.
+ *
+ * SOURCE
+ */
+#define SILC_CIPHER_AES "aes" /* AES */
+#define SILC_CIPHER_TWOFISH "twofish" /* Twofish */
+#define SILC_CIPHER_CAST5 "cast5" /* CAST-128 */
+#define SILC_CIPHER_DES "des" /* DES */
+#define SILC_CIPHER_3DES "3des" /* Triple-DES */
+/***/
+
+/****d* silccrypt/SilcCipherMode