Lines Matching refs:product
316 uint128_t product; in vli_mult() local
318 product = mul_64_64(left[i], right[k - i]); in vli_mult()
320 r01 = add_128_128(r01, product); in vli_mult()
321 r2 += (r01.m_high < product.m_high); in vli_mult()
348 uint128_t product; in vli_square() local
350 product = mul_64_64(left[i], left[k - i]); in vli_square()
353 r2 += product.m_high >> 63; in vli_square()
354 product.m_high = (product.m_high << 1) | in vli_square()
355 (product.m_low >> 63); in vli_square()
356 product.m_low <<= 1; in vli_square()
359 r01 = add_128_128(r01, product); in vli_square()
360 r2 += (r01.m_high < product.m_high); in vli_square()
409 static void vli_mmod_fast_192(u64 *result, const u64 *product, in vli_mmod_fast_192() argument
415 vli_set(result, product, ndigits); in vli_mmod_fast_192()
417 vli_set(tmp, &product[3], ndigits); in vli_mmod_fast_192()
421 tmp[1] = product[3]; in vli_mmod_fast_192()
422 tmp[2] = product[4]; in vli_mmod_fast_192()
425 tmp[0] = tmp[1] = product[5]; in vli_mmod_fast_192()
436 static void vli_mmod_fast_256(u64 *result, const u64 *product, in vli_mmod_fast_256() argument
443 vli_set(result, product, ndigits); in vli_mmod_fast_256()
447 tmp[1] = product[5] & 0xffffffff00000000ull; in vli_mmod_fast_256()
448 tmp[2] = product[6]; in vli_mmod_fast_256()
449 tmp[3] = product[7]; in vli_mmod_fast_256()
454 tmp[1] = product[6] << 32; in vli_mmod_fast_256()
455 tmp[2] = (product[6] >> 32) | (product[7] << 32); in vli_mmod_fast_256()
456 tmp[3] = product[7] >> 32; in vli_mmod_fast_256()
461 tmp[0] = product[4]; in vli_mmod_fast_256()
462 tmp[1] = product[5] & 0xffffffff; in vli_mmod_fast_256()
464 tmp[3] = product[7]; in vli_mmod_fast_256()
468 tmp[0] = (product[4] >> 32) | (product[5] << 32); in vli_mmod_fast_256()
469 tmp[1] = (product[5] >> 32) | (product[6] & 0xffffffff00000000ull); in vli_mmod_fast_256()
470 tmp[2] = product[7]; in vli_mmod_fast_256()
471 tmp[3] = (product[6] >> 32) | (product[4] << 32); in vli_mmod_fast_256()
475 tmp[0] = (product[5] >> 32) | (product[6] << 32); in vli_mmod_fast_256()
476 tmp[1] = (product[6] >> 32); in vli_mmod_fast_256()
478 tmp[3] = (product[4] & 0xffffffff) | (product[5] << 32); in vli_mmod_fast_256()
482 tmp[0] = product[6]; in vli_mmod_fast_256()
483 tmp[1] = product[7]; in vli_mmod_fast_256()
485 tmp[3] = (product[4] >> 32) | (product[5] & 0xffffffff00000000ull); in vli_mmod_fast_256()
489 tmp[0] = (product[6] >> 32) | (product[7] << 32); in vli_mmod_fast_256()
490 tmp[1] = (product[7] >> 32) | (product[4] << 32); in vli_mmod_fast_256()
491 tmp[2] = (product[4] >> 32) | (product[5] << 32); in vli_mmod_fast_256()
492 tmp[3] = (product[6] << 32); in vli_mmod_fast_256()
496 tmp[0] = product[7]; in vli_mmod_fast_256()
497 tmp[1] = product[4] & 0xffffffff00000000ull; in vli_mmod_fast_256()
498 tmp[2] = product[5]; in vli_mmod_fast_256()
499 tmp[3] = product[6] & 0xffffffff00000000ull; in vli_mmod_fast_256()
515 static bool vli_mmod_fast(u64 *result, u64 *product, in vli_mmod_fast() argument
522 vli_mmod_fast_192(result, product, curve_prime, tmp); in vli_mmod_fast()
525 vli_mmod_fast_256(result, product, curve_prime, tmp); in vli_mmod_fast()
539 u64 product[2 * ECC_MAX_DIGITS]; in vli_mod_mult_fast() local
541 vli_mult(product, left, right, ndigits); in vli_mod_mult_fast()
542 vli_mmod_fast(result, product, curve_prime, ndigits); in vli_mod_mult_fast()
549 u64 product[2 * ECC_MAX_DIGITS]; in vli_mod_square_fast() local
551 vli_square(product, left, ndigits); in vli_mod_square_fast()
552 vli_mmod_fast(result, product, curve_prime, ndigits); in vli_mod_square_fast()
1057 struct ecc_point *product, *pk; in crypto_ecdh_shared_secret() local
1087 product = ecc_alloc_point(ndigits); in crypto_ecdh_shared_secret()
1088 if (!product) { in crypto_ecdh_shared_secret()
1093 ecc_point_mult(product, pk, priv, rand_z, curve->p, ndigits); in crypto_ecdh_shared_secret()
1095 ecc_swap_digits(product->x, secret, ndigits); in crypto_ecdh_shared_secret()
1097 if (ecc_point_is_zero(product)) in crypto_ecdh_shared_secret()
1100 ecc_free_point(product); in crypto_ecdh_shared_secret()