 
 		result = B
 			.subtract(
-				@params.g.modPow(x, @params.N)
+				@k().multiply(
+					@params.g.modPow(x, @params.N)
+				)
 			)
 			.modPow(
 				a.add(


		# This actually ends up being (v + (g^b % N)) % N, this is the way
		# everyone else is doing it, so it's the way we're gonna do it.
		result = v.add(@params.g.modPow(b, @params.N), @params.N).mod(@params.N)
		result = transform.pad.toN result, @params

		return result

		result = transform.pad.toN result, @params
		return result

	# SRP-6 multiplier
	# Returns BigInteger
	k: ->
		result = crypto
			.createHash(@params.hash)
			.update(
				transform.pad.toN(@params.N, @params)
			)
			.update(
				transform.pad.toN(@params.g, @params)
			)
			.digest()

		result = transform.buffer.toBigInteger result
		return result

	K: (options) ->
		S = options.S # Buffer

