Starting with release 2.1.0 it is possible to implement a private authentication mechanism without. The private authentication mode disables all the other authentication modes (standard, ssh and certificates). On the client side Write your authentication code in the file bbftp/bbftp_private_user.c. * extern char *username; This variable contains the username given on the command line (-u option). * extern char *privatestr; This variable contains the string given on the command line with the -P option (or NULL if not used). * int bbftp_private_getargs(char *logmessage) This routine is called at the begining of the login sequence (just before setting the process in background if needed) in order to allow the programmer to set variables or to request input from the user. The return code and the variables are explained in the file. After having called this routine the main program will exchange RSA keys with the server in order to crypt all messages sent during the authentication procedure. Then the hand will be given to the next routine : * int bbftp_private_auth(char *logmessage) This routine will allow the user exchange data between the client and the server. For that it will use two routines bbftp_private_recv and bbftp_private_send whose descriptions are given in the bbftp_private_user.c file. When all this data exchange has ended, the routine will return to main code with a return code of 0 in case of success or with a return code of -1 and the string logmessage filled in case of error. On the server side Write your authentication code in the file bbftpd/bbftpd_private_user.c. * extern char currentusername[MAXLEN]; It has to be filled by the bbftpd_private_auth routine. * int bbftpd_private_auth(char *logmessage) As on the client side, this routine will exchange data using bbftpd_private_send and bbftpd_private_recv routines (whose decriptions are given in the bbftpd_private_user.c file), do all checks needed and return 0 in case of success or -1 and the string logmessage filled in case of error. Building BBFTP with a private authentication module On the client side In the bbftpc directory, run % ./configure --enable-authentication=private Then run: % make Then run: % make install On the server side In the bbftpd directory, run % ./configure --enable-authentication=private Then run: % make Then run: % make install See the installation pages for the client and for the server for more information about the BBFTP build process.