21chanservaddcommand("auth", QCMD_ALIAS | QCMD_SECURE | QCMD_NOTAUTHED,2, csa_doauth,"Authenticates you on the bot.","");
22chanservaddcommand("authhistory", QCMD_AUTHED,1, csa_doauthhistory,"View auth history for an account.","");
23chanservaddcommand("challenge", QCMD_SECURE | QCMD_NOTAUTHED,0, csa_dochallenge,"Returns a challenge for use in challengeauth.","Usage: challenge\nSupplies you with a challenge and a list of algorithms accepted\nfor challenge response authentication, see CHALLENGEAUTH help\nfor more details.\n");
24chanservaddcommand("challengeauth", QCMD_SECURE | QCMD_NOTAUTHED,3, csa_dochallengeauth,"Authenticates you on the bot using challenge response.","Usage: challengeauth <username> <response> <hmac algorithm>\nAuthenticates using challenge response.\nTo generate the response from the challenge, calculate the following:\nHMAC(challenge){k}\nwhere HMAC is the hash message authentication code as described in\nRFC 2104, k is HEXDIGEST(<lower case username>:HEXDIGEST(<password>))\nand HEXDIGEST is the hash function used in the MAC construction.\nFor example code see the website.\n");
25chanservaddcommand("checkhashpass", QCMD_OPER,3, csa_docheckhashpass,"Checks supplied password against a version hashed in the database.","");
26chanservaddcommand("email", QCMD_SECURE | QCMD_AUTHED,3, csa_doemail,"Change your email address.","");
27chanservaddcommand("getpassword", QCMD_OPER,2, csa_dogetpw,"Gets a users password","");
28chanservaddcommand("hello", QCMD_NOTAUTHED,2, csa_dohello,"Creates a new user account.","");
29chanservaddcommand("login", QCMD_SECURE | QCMD_NOTAUTHED,2, csa_doauth,"Authenticates you on the bot.","Usage: login <username> <password>\nAuthenticates using the supplied username and password.\n");
30chanservaddcommand("newpass", QCMD_SECURE | QCMD_AUTHED,3, csa_donewpw,"Change your password.","");
31chanservaddcommand("requestpassword", QCMD_NOTAUTHED,2, csa_doreqpw,"Requests the current password by email.","");
32chanservaddcommand("setemail", QCMD_OPER,2, csa_dosetmail,"Set the email address.","");
33chanservaddcommand("setpassword", QCMD_OPER,2, csa_dosetpw,"Set a new password.","");