/* setup */ static int montgomery_setup(void *a, void **b) { LTC_ARGCHK(a != NULL); LTC_ARGCHK(b != NULL); mpa_word_t len = mpa_fmm_context_size_in_U32(count_bits(a)); *b = malloc(len * sizeof(mpa_word_t)); if (*b == NULL) { return CRYPT_MEM; } mpa_fmm_context_base * b_tmp = (mpa_fmm_context_base *) *b; mpa_init_static_fmm_context(b_tmp, len); mpa_compute_fmm_context((const mpanum) a, b_tmp->r_ptr, b_tmp->r2_ptr, &(b_tmp->n_inv), external_mem_pool); return CRYPT_OK; }
/* * TEE_BigIntFMMContextSizeInU32 */ uint32_t TEE_BigIntFMMContextSizeInU32(uint32_t modulusSizeInBits) { return mpa_fmm_context_size_in_U32(modulusSizeInBits); }