summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/bn/bn_local.h4
-rw-r--r--src/lib/libcrypto/bn/bn_mont.c20
2 files changed, 22 insertions, 2 deletions
diff --git a/src/lib/libcrypto/bn/bn_local.h b/src/lib/libcrypto/bn/bn_local.h
index 4b42ae95ee..067ffab3d9 100644
--- a/src/lib/libcrypto/bn/bn_local.h
+++ b/src/lib/libcrypto/bn/bn_local.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_local.h,v 1.49 2025/02/12 21:21:34 tb Exp $ */ 1/* $OpenBSD: bn_local.h,v 1.50 2025/02/13 11:04:20 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -271,6 +271,8 @@ int bn_rand_interval(BIGNUM *rnd, BN_ULONG lower_word, const BIGNUM *upper_exc);
271 271
272void BN_init(BIGNUM *); 272void BN_init(BIGNUM *);
273 273
274BN_MONT_CTX *BN_MONT_CTX_create(const BIGNUM *bn, BN_CTX *ctx);
275
274BN_RECP_CTX *BN_RECP_CTX_create(const BIGNUM *N); 276BN_RECP_CTX *BN_RECP_CTX_create(const BIGNUM *N);
275void BN_RECP_CTX_free(BN_RECP_CTX *recp); 277void BN_RECP_CTX_free(BN_RECP_CTX *recp);
276int BN_div_reciprocal(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, 278int BN_div_reciprocal(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m,
diff --git a/src/lib/libcrypto/bn/bn_mont.c b/src/lib/libcrypto/bn/bn_mont.c
index c7e2eefb58..cfdc7e510f 100644
--- a/src/lib/libcrypto/bn/bn_mont.c
+++ b/src/lib/libcrypto/bn/bn_mont.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_mont.c,v 1.63 2024/03/26 04:23:04 jsing Exp $ */ 1/* $OpenBSD: bn_mont.c,v 1.64 2025/02/13 11:04:20 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -154,6 +154,24 @@ BN_MONT_CTX_free(BN_MONT_CTX *mctx)
154LCRYPTO_ALIAS(BN_MONT_CTX_free); 154LCRYPTO_ALIAS(BN_MONT_CTX_free);
155 155
156BN_MONT_CTX * 156BN_MONT_CTX *
157BN_MONT_CTX_create(const BIGNUM *bn, BN_CTX *bn_ctx)
158{
159 BN_MONT_CTX *mctx;
160
161 if ((mctx = BN_MONT_CTX_new()) == NULL)
162 goto err;
163 if (!BN_MONT_CTX_set(mctx, bn, bn_ctx))
164 goto err;
165
166 return mctx;
167
168 err:
169 BN_MONT_CTX_free(mctx);
170
171 return NULL;
172}
173
174BN_MONT_CTX *
157BN_MONT_CTX_copy(BN_MONT_CTX *dst, BN_MONT_CTX *src) 175BN_MONT_CTX_copy(BN_MONT_CTX *dst, BN_MONT_CTX *src)
158{ 176{
159 if (dst == src) 177 if (dst == src)