Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alias -l ChallengeAuth.Username {
- if (!%ChallengeAuth.User) {
- !set %ChallengeAuth.User $?="Q account name?"
- }
- return %ChallengeAuth.User
- }
- alias -l ChallengeAuth.Password {
- return $ChallengeAuth.CreateHash($ChallengeAuth.Username, $?*="Password for Q account name: $ChallengeAuth.Username ")
- }
- ; DONT CHANGE ANYTHING UNDER THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING
- alias -l ChallengeAuth.Q { return Q@CServe.quakenet.org }
- ; id = whether autoauth is on or not.
- ; $1 = 1 for autoauth or 0 for not.
- alias ChallengeAuth.AutoAuth {
- if ($isid) return %ChallengeAuth.AutoAuth
- if ($1 == $null) {
- echo -at ChallengeAuth: Not enough parameters.
- return
- }
- if ($1 !isin 01) {
- echo -at ChallengeAuth: Invalid parameter. Please enter 1 to enable or 0 to disable.
- return
- }
- set %ChallengeAuth.AutoAuth $1
- }
- ; $1 = key, $2 = message
- alias hmac-sha1 {
- var %i = 1
- while (%i <= 64) {
- var %k = $iif($asc($mid($1,%i,1)),$v1,0)
- var %opad = %opad $xor(92,%k)
- var %ipad = %ipad $xor(54,%k)
- inc %i
- }
- bset &ipad 1 %ipad $regsubex($2,/(.)/g,$asc(\t) $+ $chr(32))
- bset &opad 1 %opad $regsubex($sha1(&ipad,1),/(..)/g,$base(\t,16,10) $+ $chr(32))
- var %res = $sha1(&opad,1)
- bunset &ipad &opad
- return %res
- }
- ; $1 = string to lower
- alias -l ChallengeAuth.IRCToLower {
- return $replacex($lower($1),$chr(91),$chr(123),$chr(93),$chr(125),$chr(92),$chr(124),$chr(94),$chr(126))
- }
- ; $1 = Authname, $2 = Password
- alias ChallengeAuth.CreateHash {
- if (!$2) {
- echo -ta ChallengeAuth: Not enough values given.
- return
- }
- !var %ChallengeAuth.Hash = $sha1($+($ChallengeAuth.IRCToLower($1),:,$sha1($left($2,10))))
- if ($isid) return %ChallengeAuth.Hash
- !echo -atg ChallengeAuth: Hashed user/pass: %ChallengeAuth.Hash
- }
- ; $1 = Challenge
- alias -l ChallengeAuth.Auth {
- !.msg $ChallengeAuth.Q CHALLENGEAUTH %ChallengeAuth.User $hmac-sha1(%ChallengeAuth.Pass, $1) HMAC-SHA-1
- }
- alias ChallengeAuth {
- if (!$1) {
- echo -at ChallengeAuth: No Username specified.
- return
- }
- if (!$2) {
- echo -at ChallengeAuth: No Password specified.
- return
- }
- !set %ChallengeAuth.Active $true
- !set %ChallengeAuth.User $1
- !set %ChallengeAuth.Pass $2
- !.msg $ChallengeAuth.Q challenge
- }
- on *:CONNECT: {
- if (($ChallengeAuth.AutoAuth) && ($network == QuakeNet) && ($right($server, 13) === .quakenet.org)) {
- ChallengeAuth $ChallengeAuth.Username $ChallengeAuth.Password
- }
- }
- on ^*:NOTICE:*:*: {
- if ($fulladdress === Q!TheQBot@CServe.quakenet.org) && ($network === QuakeNet) && (($right($server, 13) === .quakenet.org) || ($right($server, 14) === Quakenet.proxy)) {
- if ($1 === CHALLENGE) && ($len($2) == 32) && (%ChallengeAuth.Active) {
- if ($istok($3-, HMAC-SHA-1, 32)) {
- .timer 1 0 ChallengeAuth.Auth $2
- }
- else {
- echo -ts ChallengeAuth: HMAC-SHA-1 is not supported. ChallengeAuth is NOT continuing.
- unset %ChallengeAuth.Active
- }
- }
- elseif ($1- == CHALLENGE is not available once you have authed.) && (%ChallengeAuth.Active) {
- echo -ts ChallengeAuth: You are already authed!
- unset %ChallengeAuth.Active
- }
- elseif ($1-6 == You are now logged in as) && (%ChallengeAuth.Active) {
- !mode $me +I
- unset %ChallengeAuth.Active
- }
- elseif ($1- == Username or password incorrect.) && (%ChallengeAuth.Active) {
- echo -ts ChallengeAuth: Username or password incorrect.
- unset %ChallengeAuth.Active
- }
- }
- }
- raw 401:*: {
- if ($1- == $me $ChallengeAuth.Q No such nick) && (%ChallengeAuth.Active) {
- echo -ts ChallengeAuth: Q is currently not reachable. Please try again later.
- unset %ChallengeAuth.Active
- haltdef
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement