-// # Expand input into buffer.
-// buf[0] = hash(cnt++ || passwd || salt)
-// for m from 1 to sCost-1:
-// buf[m] = hash(cnt++ || buf[m-1])
-// # Mix buffer contents.
-// for t from 0 to tCost-1:
-// for m from 0 to sCost-1:
-// # Hash last and current blocks.
-// prev = buf[(m-1) mod sCost]
-// buf[m] = hash(cnt++ || prev || buf[m])
-// # Hash in pseudorandomly chosen blocks.
-// for i from 0 to delta-1:
-// other = to_int(hash(cnt++ || salt || t || m || i)) mod sCost
-// buf[m] = hash(cnt++ || buf[m] || buf[other])
-// # Extract output from buffer.
-// return buf[sCost-1]
-func B(h hash.Hash, passwd, salt []byte, sCost, tCost int) []byte {
+// # Expand input into buffer.
+// buf[0] = hash(cnt++ || passwd || salt)
+// for m from 1 to sCost-1:
+// buf[m] = hash(cnt++ || buf[m-1])
+// # Mix buffer contents.
+// for t from 0 to tCost-1:
+// for m from 0 to sCost-1:
+// # Hash last and current blocks.
+// prev = buf[(m-1) mod sCost]
+// buf[m] = hash(cnt++ || prev || buf[m])
+// # Hash in pseudorandomly chosen blocks.
+// for i from 0 to delta-1:
+// other = to_int(hash(cnt++ || salt || t || m || i)) mod sCost
+// buf[m] = hash(cnt++ || buf[m] || buf[other])
+// # Extract output from buffer.
+// return buf[sCost-1]
+func B(h hash.Hash, passwd, salt []byte, sCost, tCost uint64) []byte {