<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/56972a0fee5653095a828f7ab4e6e80461c21096">https://github.com/macports/macports-ports/commit/56972a0fee5653095a828f7ab4e6e80461c21096</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 56972a0fee5653095a828f7ab4e6e80461c21096
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Wed Feb 12 17:16:57 2025 +0100
<span style='display:block; white-space:pre;color:#404040;'> openssl3: Update to 3.4.1, fixes CVE-2024-12797
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Upstream advisory is at
</span><span style='display:block; white-space:pre;color:#404040;'> https://openssl-library.org/news/secadv/20250211.txt
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> CVE: CVE-2024-12797
</span>---
devel/openssl3/Portfile | 17 +--
.../5549fcd4783cb6c2a7f07e74505a2eea4939e5b1.patch | 32 ------
.../77c608f4c8857e63e98e66444e2e761c9627916f.patch | 121 ---------------------
3 files changed, 5 insertions(+), 165 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/openssl3/Portfile b/devel/openssl3/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 9879fdce45f..43c4d2ab6f0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/openssl3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/openssl3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,14 +12,14 @@ legacysupport.newest_darwin_requires_legacy 8
</span> set major_v 3
# For former rollback to 3.1.x release where needed. Must now stay.
epoch 1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup openssl openssl ${major_v}.4.0 openssl-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup openssl openssl ${major_v}.4.1 openssl-
</span> name openssl3
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span>
github.tarball_from releases
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 d300c74dce877d7099bd59fa82d8f0691f13cc97 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 18320899
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 0ed35dcf4a93ad96e1844c03e655c89e08fe3340 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 18346056
</span>
# Please revbump these ports when updating the openssl3 version/revision
# - freeradius (#43461)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -94,13 +94,6 @@ if {${os.platform} eq "darwin" && ${os.major} < 18 && ${os.major} > 8} {
</span> #
patchfiles-append patch-use-timegm.diff
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Backport fix for negative caching issue with 3rd party providers, see
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://trac.macports.org/ticket/71760
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append 5549fcd4783cb6c2a7f07e74505a2eea4939e5b1.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# CVE-2024-13176
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append 77c608f4c8857e63e98e66444e2e761c9627916f.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> if {${os.platform} eq "darwin" && ${os.major} < 11} {
# Having the stdlib set to libc++ on 10.6 causes a dependency on a
# macports-clang compiler to be added, which would be a dep cycle.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/openssl3/files/5549fcd4783cb6c2a7f07e74505a2eea4939e5b1.patch b/devel/openssl3/files/5549fcd4783cb6c2a7f07e74505a2eea4939e5b1.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index bba85601a3a..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/openssl3/files/5549fcd4783cb6c2a7f07e74505a2eea4939e5b1.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,32 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 5549fcd4783cb6c2a7f07e74505a2eea4939e5b1 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Dmitry Belyavskiy <beldmit@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Wed, 18 Dec 2024 21:28:14 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Take into account no_store when pushing algorithm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-When we put algorithm to the store, we have a fallback to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-OSSL_LIB_CTX level store when store is NULL.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Matt Caswell <matt@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Tomas Mraz <tomas@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(Merged from https://github.com/openssl/openssl/pull/26197)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit b3bb214720f20f3b126ae4b9c330e9a48b835415)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Upstream-Status: Backport [https://github.com/openssl/openssl/commit/5549fcd4783cb6c2a7f07e74505a2eea4939e5b1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- crypto/core_fetch.c | 2 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/crypto/core_fetch.c b/crypto/core_fetch.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index d311158d77589..70715e7d6a99c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ./crypto/core_fetch.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./crypto/core_fetch.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -120,7 +120,7 @@ static void ossl_method_construct_this(OSSL_PROVIDER *provider,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * It is *expected* that the put function increments the refcnt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * of the passed method.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- data->mcm->put(data->store, method, provider, algo->algorithm_names,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ data->mcm->put(no_store ? data->store : NULL, method, provider, algo->algorithm_names,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- algo->property_definition, data->mcm_data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* refcnt-- because we're dropping the reference */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/openssl3/files/77c608f4c8857e63e98e66444e2e761c9627916f.patch b/devel/openssl3/files/77c608f4c8857e63e98e66444e2e761c9627916f.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index be1967f6d00..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/openssl3/files/77c608f4c8857e63e98e66444e2e761c9627916f.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,121 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 77c608f4c8857e63e98e66444e2e761c9627916f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Tomas Mraz <tomas@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Wed, 15 Jan 2025 18:27:02 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Fix timing side-channel in ECDSA signature computation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-There is a timing signal of around 300 nanoseconds when the top word of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the inverted ECDSA nonce value is zero. This can happen with significant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-probability only for some of the supported elliptic curves. In particular
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the NIST P-521 curve is affected. To be able to measure this leak, the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-attacker process must either be located in the same physical computer or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-must have a very fast network connection with low latency.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Attacks on ECDSA nonce are also known as Minerva attack.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Fixes CVE-2024-13176
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Tim Hudson <tjh@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Neil Horman <nhorman@openssl.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Paul Dale <ppzgs1@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(Merged from https://github.com/openssl/openssl/pull/26429)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit 63c40a66c5dc287485705d06122d3a6e74a6a203)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- crypto/bn/bn_exp.c | 21 +++++++++++++++------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- crypto/ec/ec_lib.c | 7 ++++---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- include/crypto/bn.h | 3 +++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3 files changed, 22 insertions(+), 9 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/crypto/bn/bn_exp.c b/crypto/bn/bn_exp.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b876edbfac36e..af52e2ced6914 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ./crypto/bn/bn_exp.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./crypto/bn/bn_exp.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -606,7 +606,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBUF(BIGNUM *b, int top,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * out by Colin Percival,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * http://www.daemonology.net/hyperthreading-considered-harmful/)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int bn_mod_exp_mont_fixed_top(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const BIGNUM *m, BN_CTX *ctx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BN_MONT_CTX *in_mont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -623,10 +623,6 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int t4 = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bn_check_top(a);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bn_check_top(p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bn_check_top(m);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!BN_is_odd(m)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ERR_raise(ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1146,7 +1142,7 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- goto err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!BN_from_montgomery(rr, &tmp, mont, ctx))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!bn_from_mont_fixed_top(rr, &tmp, mont, ctx))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- goto err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ret = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- err:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1160,6 +1156,19 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const BIGNUM *m, BN_CTX *ctx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ BN_MONT_CTX *in_mont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bn_check_top(a);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bn_check_top(p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bn_check_top(m);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!bn_mod_exp_mont_fixed_top(rr, a, p, m, ctx, in_mont))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bn_correct_top(rr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/crypto/ec/ec_lib.c b/crypto/ec/ec_lib.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 284fc05951b92..d9a6510d55cce 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ./crypto/ec/ec_lib.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./crypto/ec/ec_lib.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -21,6 +21,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <openssl/opensslv.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <openssl/param_build.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "crypto/ec.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include "crypto/bn.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "internal/nelem.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "ec_local.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1265,10 +1266,10 @@ static int ec_field_inverse_mod_ord(const EC_GROUP *group, BIGNUM *r,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!BN_sub(e, group->order, e))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- goto err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * Exponent e is public.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * No need for scatter-gather or BN_FLG_CONSTTIME.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Although the exponent is public we want the result to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * fixed top.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!BN_mod_exp_mont(r, x, e, group->order, ctx, group->mont_data))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!bn_mod_exp_mont_fixed_top(r, x, e, group->order, ctx, group->mont_data))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- goto err;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ret = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/include/crypto/bn.h b/include/crypto/bn.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 47d9b44f879f0..bdee28625ce60 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ./include/crypto/bn.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ ./include/crypto/bn.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -73,6 +73,9 @@ int bn_set_words(BIGNUM *a, const BN_ULONG *words, int num_words);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int bn_mul_mont_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BN_MONT_CTX *mont, BN_CTX *ctx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int bn_mod_exp_mont_fixed_top(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const BIGNUM *m, BN_CTX *ctx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ BN_MONT_CTX *in_mont);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int bn_to_mont_fixed_top(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BN_CTX *ctx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int bn_from_mont_fixed_top(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont,
</span></pre><pre style='margin:0'>
</pre>