Assignment #8a. Your assignment if you choose this option is to construct an "encrypted" multi- user chat client and server programs. The client: - Should accept a host and optionally a port # from the command line. i.e.: Usage: cclient [] - Should connect to the server using a streaming internet socket. All communication with the server should be "encrypted" using a simple stream cipher using the rand_r() or better the lrand48_r() PRNG's. The port number may be used as the secret key to the PRNG. - Your client may handle the login/authorization phase and send the username and password to the server on connecting. Note however that typed passwords should not be visible. The server: - Should allow multiple incoming streaming internet client connections that are individually encrypted using the secret key via a PRNG. All messages that are received should be broadcast to all connected clients. Each connected client should have their own PRNG seed. - When a initial connection is made the server should enter into an authorization phase with the new client by either a) being sent the authorization information by the client or, b) prompting for a user-name, then password and check the credentials against a user-name/password database file "./auth.db" (that is located in the current working directory of the server.) - The auth.db file should in the following format: user-name1:hashed-password1 user-name2:hashed-password2 ... The server should allow for more than one user-name and password. Note that the client should not echo keys typed in the password entry phase. Note also that I should be able to replace your auth.db file with my own when I test your programs, do not use hard-coded paths to your home directory when referencing any files.