INNER CODE UNIT · TypeScript

mult

privy-io/shamir-secret-sharing · src/index.ts:86

function mult(a: number, b: number): number {
  if (!Number.isInteger(a) || a < 0 || a > 255) {
    throw new RangeError('Number is out of Uint8 range');
  }
  if (!Number.isInteger(b) || b < 0 || b > 255) {
    throw new RangeError('Number is out of Uint8 range');
  }
  const logA = LOG_TABLE[a]!;
  const logB = LOG_TABLE[b]!;
  const sum = (logA + logB) % 255;
  const result = EXP_TABLE[sum]!;

  return a === 0 || b === 0 ? 0 : result;
}

// Takes N sample points and returns the value at a given x using a lagrange interpolation.
function interpolatePolynomial(xSamples: Uint8Array, ySamples: Uint8Array, x: number): number {
  if (xSamples.length !== ySamples.length) {

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…