Lines Matching refs:product
274 uint128_t product; in vli_mult() local
276 product = mul_64_64(left[i], right[k - i]); in vli_mult()
278 r01 = add_128_128(r01, product); in vli_mult()
279 r2 += (r01.m_high < product.m_high); in vli_mult()
306 uint128_t product; in vli_square() local
308 product = mul_64_64(left[i], left[k - i]); in vli_square()
311 r2 += product.m_high >> 63; in vli_square()
312 product.m_high = (product.m_high << 1) | in vli_square()
313 (product.m_low >> 63); in vli_square()
314 product.m_low <<= 1; in vli_square()
317 r01 = add_128_128(r01, product); in vli_square()
318 r2 += (r01.m_high < product.m_high); in vli_square()
365 static void vli_mmod_fast(u64 *result, const u64 *product) in vli_mmod_fast() argument
371 vli_set(result, product); in vli_mmod_fast()
375 tmp[1] = product[5] & 0xffffffff00000000ull; in vli_mmod_fast()
376 tmp[2] = product[6]; in vli_mmod_fast()
377 tmp[3] = product[7]; in vli_mmod_fast()
382 tmp[1] = product[6] << 32; in vli_mmod_fast()
383 tmp[2] = (product[6] >> 32) | (product[7] << 32); in vli_mmod_fast()
384 tmp[3] = product[7] >> 32; in vli_mmod_fast()
389 tmp[0] = product[4]; in vli_mmod_fast()
390 tmp[1] = product[5] & 0xffffffff; in vli_mmod_fast()
392 tmp[3] = product[7]; in vli_mmod_fast()
396 tmp[0] = (product[4] >> 32) | (product[5] << 32); in vli_mmod_fast()
397 tmp[1] = (product[5] >> 32) | (product[6] & 0xffffffff00000000ull); in vli_mmod_fast()
398 tmp[2] = product[7]; in vli_mmod_fast()
399 tmp[3] = (product[6] >> 32) | (product[4] << 32); in vli_mmod_fast()
403 tmp[0] = (product[5] >> 32) | (product[6] << 32); in vli_mmod_fast()
404 tmp[1] = (product[6] >> 32); in vli_mmod_fast()
406 tmp[3] = (product[4] & 0xffffffff) | (product[5] << 32); in vli_mmod_fast()
410 tmp[0] = product[6]; in vli_mmod_fast()
411 tmp[1] = product[7]; in vli_mmod_fast()
413 tmp[3] = (product[4] >> 32) | (product[5] & 0xffffffff00000000ull); in vli_mmod_fast()
417 tmp[0] = (product[6] >> 32) | (product[7] << 32); in vli_mmod_fast()
418 tmp[1] = (product[7] >> 32) | (product[4] << 32); in vli_mmod_fast()
419 tmp[2] = (product[4] >> 32) | (product[5] << 32); in vli_mmod_fast()
420 tmp[3] = (product[6] << 32); in vli_mmod_fast()
424 tmp[0] = product[7]; in vli_mmod_fast()
425 tmp[1] = product[4] & 0xffffffff00000000ull; in vli_mmod_fast()
426 tmp[2] = product[5]; in vli_mmod_fast()
427 tmp[3] = product[6] & 0xffffffff00000000ull; in vli_mmod_fast()
443 u64 product[2 * NUM_ECC_DIGITS]; in vli_mod_mult_fast() local
445 vli_mult(product, left, right); in vli_mod_mult_fast()
446 vli_mmod_fast(result, product); in vli_mod_mult_fast()
452 u64 product[2 * NUM_ECC_DIGITS]; in vli_mod_square_fast() local
454 vli_square(product, left); in vli_mod_square_fast()
455 vli_mmod_fast(result, product); in vli_mod_square_fast()
803 struct ecc_point product, pk; in ecdh_shared_secret() local
811 ecc_point_mult(&product, &pk, priv, rand, vli_num_bits(priv)); in ecdh_shared_secret()
813 ecc_native2bytes(product.x, secret); in ecdh_shared_secret()
815 return !ecc_point_is_zero(&product); in ecdh_shared_secret()