diff options
Diffstat (limited to 'lib/srp_register.js')
-rw-r--r-- | lib/srp_register.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/srp_register.js b/lib/srp_register.js new file mode 100644 index 0000000..3966d79 --- /dev/null +++ b/lib/srp_register.js @@ -0,0 +1,46 @@ +function SRP_REGISTER() +{ + var that; + + // Initiate the registration process + SRP.prototype.register = function() + { + that = this; + var handshake_url = this.geturl() + this.paths("register/salt/"); + var params = "I="+this.getI(); + this.ajaxRequest(handshake_url, params, this.register_receive_salt); + }; + + // Receive the salt for registration + SRP.prototype.register_receive_salt = function(response) + { + if(response.salt) + { + var s = response.salt; + var x = that.calcX(s); + var v = that.getg().modPow(x, that.getN()); + that.register_send_verifier(v.toString(16)); + } + else if(response.error) + { + that.error_message(response.error); + } + }; + // Send the verifier to the server + SRP.prototype.register_send_verifier = function(v) + { + var params = "v="+v; + var auth_url = that.geturl() + that.paths("register/user/"); + that.ajaxRequest(auth_url, params, that.registered_user); + }; + + // The user has been registered successfully, now login + SRP.prototype.registered_user = function(response) + { + if(response.ok) + { + that.identify(); + } + }; +}; +SRP_REGISTER(); |