+/** 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)