Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1. alias -l ChallengeAuth.Username {
  2. if (!%ChallengeAuth.User) {
  3. !set %ChallengeAuth.User $?="Q account name?"
  4. }
  5.  
  6. return %ChallengeAuth.User
  7. }
  8.  
  9. alias -l ChallengeAuth.Password {
  10. return $ChallengeAuth.CreateHash($ChallengeAuth.Username, $?*="Password for Q account name: $ChallengeAuth.Username ")
  11. }
  12.  
  13.  
  14. ; DONT CHANGE ANYTHING UNDER THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING
  15.  
  16. alias -l ChallengeAuth.Q { return Q@CServe.quakenet.org }
  17.  
  18. ; id = whether autoauth is on or not.
  19. ; $1 = 1 for autoauth or 0 for not.
  20. alias ChallengeAuth.AutoAuth {
  21. if ($isid) return %ChallengeAuth.AutoAuth
  22.  
  23. if ($1 == $null) {
  24. echo -at ChallengeAuth: Not enough parameters.
  25. return
  26. }
  27.  
  28. if ($1 !isin 01) {
  29. echo -at ChallengeAuth: Invalid parameter. Please enter 1 to enable or 0 to disable.
  30. return
  31. }
  32.  
  33. set %ChallengeAuth.AutoAuth $1
  34. }
  35.  
  36. ; $1 = key, $2 = message
  37. alias hmac-sha1 {
  38. var %i = 1
  39. while (%i <= 64) {
  40. var %k = $iif($asc($mid($1,%i,1)),$v1,0)
  41. var %opad = %opad $xor(92,%k)
  42. var %ipad = %ipad $xor(54,%k)
  43. inc %i
  44. }
  45.  
  46. bset &ipad 1 %ipad $regsubex($2,/(.)/g,$asc(\t) $+ $chr(32))
  47. bset &opad 1 %opad $regsubex($sha1(&ipad,1),/(..)/g,$base(\t,16,10) $+ $chr(32))
  48. var %res = $sha1(&opad,1)
  49. bunset &ipad &opad
  50. return %res
  51. }
  52.  
  53. ; $1 = string to lower
  54. alias -l ChallengeAuth.IRCToLower {
  55. return $replacex($lower($1),$chr(91),$chr(123),$chr(93),$chr(125),$chr(92),$chr(124),$chr(94),$chr(126))
  56. }
  57.  
  58. ; $1 = Authname, $2 = Password
  59. alias ChallengeAuth.CreateHash {
  60. if (!$2) {
  61. echo -ta ChallengeAuth: Not enough values given.
  62. return
  63. }
  64.  
  65. !var %ChallengeAuth.Hash = $sha1($+($ChallengeAuth.IRCToLower($1),:,$sha1($left($2,10))))
  66.  
  67. if ($isid) return %ChallengeAuth.Hash
  68.  
  69. !echo -atg ChallengeAuth: Hashed user/pass: %ChallengeAuth.Hash
  70. }
  71.  
  72. ; $1 = Challenge
  73. alias -l ChallengeAuth.Auth {
  74. !.msg $ChallengeAuth.Q CHALLENGEAUTH %ChallengeAuth.User $hmac-sha1(%ChallengeAuth.Pass, $1) HMAC-SHA-1
  75. }
  76.  
  77. alias ChallengeAuth {
  78. if (!$1) {
  79. echo -at ChallengeAuth: No Username specified.
  80. return
  81. }
  82.  
  83. if (!$2) {
  84. echo -at ChallengeAuth: No Password specified.
  85. return
  86. }
  87.  
  88. !set %ChallengeAuth.Active $true
  89. !set %ChallengeAuth.User $1
  90. !set %ChallengeAuth.Pass $2
  91.  
  92. !.msg $ChallengeAuth.Q challenge
  93. }
  94.  
  95. on *:CONNECT: {
  96. if (($ChallengeAuth.AutoAuth) && ($network == QuakeNet) && ($right($server, 13) === .quakenet.org)) {
  97. ChallengeAuth $ChallengeAuth.Username $ChallengeAuth.Password
  98. }
  99. }
  100.  
  101. on ^*:NOTICE:*:*: {
  102. if ($fulladdress === Q!TheQBot@CServe.quakenet.org) && ($network === QuakeNet) && (($right($server, 13) === .quakenet.org) || ($right($server, 14) === Quakenet.proxy)) {
  103. if ($1 === CHALLENGE) && ($len($2) == 32) && (%ChallengeAuth.Active) {
  104. if ($istok($3-, HMAC-SHA-1, 32)) {
  105. .timer 1 0 ChallengeAuth.Auth $2
  106. }
  107. else {
  108. echo -ts ChallengeAuth: HMAC-SHA-1 is not supported. ChallengeAuth is NOT continuing.
  109. unset %ChallengeAuth.Active
  110. }
  111. }
  112. elseif ($1- == CHALLENGE is not available once you have authed.) && (%ChallengeAuth.Active) {
  113. echo -ts ChallengeAuth: You are already authed!
  114. unset %ChallengeAuth.Active
  115. }
  116. elseif ($1-6 == You are now logged in as) && (%ChallengeAuth.Active) {
  117. !mode $me +I
  118. unset %ChallengeAuth.Active
  119. }
  120. elseif ($1- == Username or password incorrect.) && (%ChallengeAuth.Active) {
  121. echo -ts ChallengeAuth: Username or password incorrect.
  122. unset %ChallengeAuth.Active
  123. }
  124. }
  125. }
  126.  
  127. raw 401:*: {
  128. if ($1- == $me $ChallengeAuth.Q No such nick) && (%ChallengeAuth.Active) {
  129. echo -ts ChallengeAuth: Q is currently not reachable. Please try again later.
  130. unset %ChallengeAuth.Active
  131. haltdef
  132. }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement