/* gcd */ static int gcd(void *a, void *b, void *c) { LTC_ARGCHK(a != NULL); LTC_ARGCHK(b != NULL); LTC_ARGCHK(c != NULL); mpa_gcd((mpanum) c, (const mpanum) a, (const mpanum) b, external_mem_pool); return CRYPT_OK; }
/*------------------------------------------------------------ * * has_small_factors * * returns 1 if n has small factors * returns 0 if not. */ static int has_small_factors(mpanum n, mpa_scratch_mem pool) { const mpa_num_base *factors = &const_small_prime_factors; int result; mpanum res; mpa_alloc_static_temp_var(&res, pool); mpa_gcd(res, n, (const mpanum)factors, pool); result = (mpa_cmp_short(res, 1) == 0) ? 0 : 1; mpa_free_static_temp_var(&res, pool); return result; }
/* * TEE_BigIntRelativePrime */ bool TEE_BigIntRelativePrime(const TEE_BigInt *op1, const TEE_BigInt *op2) { mpanum mpa_op1 = (mpa_num_base *)op1; mpanum mpa_op2 = (mpa_num_base *)op2; mpanum gcd; uint32_t cmp; mpa_alloc_static_temp_var(&gcd, mempool); mpa_gcd(gcd, mpa_op1, mpa_op2, mempool); cmp = mpa_cmp_short(gcd, 1); mpa_free_static_temp_var(&gcd, mempool); return cmp == 0 ? true : false; }