+/** Information about one encrypted connection. */
+struct crypt_data {
+ /** Function used to decrypt received data. */
+ crypt_function *recv;
+ /** Function used to encrypt data to be sent. */
+ crypt_function *send;
+ /**
+ * Context-dependent data (crypt keys), passed verbatim to the above
+ * crypt functions.
+ */
+ void *private_data;
+};
+/** Array holding per fd crypt data. */
+static struct crypt_data *crypt_data_array;
+/** Current size of the crypt data array. */
+static unsigned cda_size = 0;
+
+/**
+ * activate encryption for one file descriptor
+ *
+ * \param fd the file descriptor
+ * \param recv_f the function used for decrypting received data
+ * \param send_f the function used for encrypting before sending
+ * \param private_data user data supplied by the caller
+ */
+void enable_crypt(int fd, crypt_function *recv_f, crypt_function *send_f,
+ void *private_data)