BN_MOD_MUL_MONTGOMERY(3ssl) OpenSSL BN_MOD_MUL_MONTGOMERY(3ssl) BN_mod_mul_montgomery, BN_MONT_CTX_new, BN_MONT_CTX_free, BN_MONT_CTX_set, BN_MONT_CTX_copy, BN_from_montgomery, BN_to_montgomery - #include BN_MONT_CTX *BN_MONT_CTX_new(void); void BN_MONT_CTX_free(BN_MONT_CTX *mont); int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *m, BN_CTX *ctx); BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); int BN_mod_mul_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_MONT_CTX *mont, BN_CTX *ctx); int BN_from_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont, BN_CTX *ctx); int BN_to_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont, BN_CTX *ctx); . BN_mod_exp(3) . BN_MONT_CTX_new() BN_MONT_CTX. BN_MONT_CTX_set() mont m R . BN_MONT_CTX_copy() BN_MONT_CTX from to. BN_MONT_CTX_free() BN_MONT_CTX BN_MONT_CTX_new() . mont NULL . BN_mod_mul_montgomery() Mont(a,b):=a*b*R^-1 r. BN_from_montgomery() r = a*R^-1. BN_to_montgomery() Mont(a,R^2) a*R. a . ctx BN_CTX . BN_MONT_CTX_new() BN_MONT_CTX NULL . BN_MONT_CTX_free() . 1 0 . ERR_get_error(3). m . ERR_get_error(3) BN_add(3) BN_CTX_new(3) BN_MONT_CTX_init() OpenSSL 1.1.0 2000-2020 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 BN_MOD_MUL_MONTGOMERY(3ssl)