BN_MONT_CTX *ctx = *pmont; CRYPTO_MUTEX_unlock_read(lock);if(ctx) {return1; } CRYPTO_MUTEX_lock_write(lock); ctx = *pmont;if(ctx) {gotoout; } ctx = BN_MONT_CTX_new();if(ctx ==NULL) {gotoout; }if(!BN_MONT_CTX_set(ctx, mod, bn_ctx)) { BN_MONT_CTX_free(ctx); ctx...
mont_ctx =BN_MONT_CTX_set_locked(&rsa->mont_n, &rsa->lock, rsa->n, ctx);if(mont_ctx ==NULL) {gotoerr; } } ret = BN_BLINDING_create_param(NULL, e, n, ctx, mont_ctx);if(ret ==NULL) { OPENSSL_PUT_ERROR(RSA, ERR_R_BN_LIB);gotoerr; } err: BN_CTX_end(ctx);if(in_...