Skip to content

Instantly share code, notes, and snippets.

@yurenju
Created July 25, 2019 06:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yurenju/dba88067767c0aac5ffb30837d67c9e0 to your computer and use it in GitHub Desktop.
Save yurenju/dba88067767c0aac5ffb30837d67c9e0 to your computer and use it in GitHub Desktop.
// Register on client side
var verifier = srp.computeVerifier(params, salt, identity, password);
createAccount(identity, verifier);
// Login
// Generate A on client side
srp.genKey(function(secret1) {
var c = new srp.Client(params, salt, identity, password, secret1);
var srpA = c.computeA();
sendToServer(srpA);
});
// Generate B on server side
srp.genKey(function(secret2) {
var s = new srp.Server(params, verifier, secret2);
var srpB = s.computeB();
sendToClient(srpB);
});
// Generate session key K & send M1 to server on client side
c.setB(srpB);
var M1 = c.computeM1();
sendToServer(M1);
var K = c.computeK();
// Generate session key K & verify client on server side
s.setA(srpA)
s.checkM1(M1); // throws error if wrong
var K = s.computeK();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment