code: function getB(params, k, v, b) {
    assertIsBigInteger(v);
    assertIsBigInteger(k);
    assertIsBigInteger(b);
    var N = params.N;
    var r = k.multiply(v).add(params.g.modPow(b, N)).mod(N);
    return padToN(r, params);
  }
docs: /*
  The server key exchange message also contains the server's public
  value (B).  The server calculates this value as B = k*v + g^b % N,
  where b is a random number that SHOULD be at least 256 bits in length
  and k = H(N | PAD(g)).
  
  Note: as the tests imply, the entire expression is mod N.
  
  params:
  params (obj)     group parameters, with .N, .g, .hash
  v (bignum)       verifier (stored)
  b (bignum)       server secret exponent
  
  returns: B (buffer)      the server public message