void BN_RECP_CTX_init(BN_RECP_CTX *recp); BN_RECP_CTX *BN_RECP_CTX_new(); void BN_RECP_CTX_free(BN_RECP_CTX *recp); int BN_RECP_CTX_set(BN_RECP_CTX *recp,BIGNUM *div,BN_CTX *ctx); int BN_mod_exp_recp(BIGNUM *r, BIGNUM *a, BIGNUM *p, BIGNUM *m, BN_RECP_CTX *recp,BN_CTX *ctx); int BN_div_recp(BIGNUM *dv, BIGNUM *rem, BIGNUM *m, BIGNUM *d, BN_RECP_CTX *recp, BN_CTX *ctx); int BN_mod_recp(BIGNUM *rem, BIGNUM *m, BIGNUM *d, BN_RECP_CTX *recp, BN_CTX *ctx); int BN_mod_mul_recp(BIGNUM *ret,BIGNUM *a,BIGNUM *b,BIGNUM *m int BN_mod_exp_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *p, BN_MONT_CTX *m_ctx,BN_CTX *ctx); int BN_mod_exp2_montgomery(BIGNUM *r, BIGNUM *a1, BIGNUM *p1,BIGNUM *a2, BIGNUM *p2,BN_MONT_CTX *m_ctx,BN_CTX *ctx); bn_div64 -> bn_div_words