summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/bn/bn.h7
-rw-r--r--src/lib/libcrypto/bn/bn_mont.c8
2 files changed, 13 insertions, 2 deletions
diff --git a/src/lib/libcrypto/bn/bn.h b/src/lib/libcrypto/bn/bn.h
index 4bfb81d32e..af4dd41bd5 100644
--- a/src/lib/libcrypto/bn/bn.h
+++ b/src/lib/libcrypto/bn/bn.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn.h,v 1.48 2021/12/04 16:02:44 tb Exp $ */ 1/* $OpenBSD: bn.h,v 1.49 2021/12/04 16:05:46 tb Exp $ */
2/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -609,8 +609,13 @@ BN_MONT_CTX *BN_MONT_CTX_new(void );
609void BN_MONT_CTX_init(BN_MONT_CTX *ctx); 609void BN_MONT_CTX_init(BN_MONT_CTX *ctx);
610int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 610int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
611 BN_MONT_CTX *mont, BN_CTX *ctx); 611 BN_MONT_CTX *mont, BN_CTX *ctx);
612#if defined(LIBRESSL_OPAQUE_BN) || defined(LIBRESSL_CRYPTO_INTERNAL)
613int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont,
614 BN_CTX *ctx);
615#else
612#define BN_to_montgomery(r,a,mont,ctx) BN_mod_mul_montgomery(\ 616#define BN_to_montgomery(r,a,mont,ctx) BN_mod_mul_montgomery(\
613 (r),(a),&((mont)->RR),(mont),(ctx)) 617 (r),(a),&((mont)->RR),(mont),(ctx))
618#endif
614int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, 619int BN_from_montgomery(BIGNUM *r, const BIGNUM *a,
615 BN_MONT_CTX *mont, BN_CTX *ctx); 620 BN_MONT_CTX *mont, BN_CTX *ctx);
616void BN_MONT_CTX_free(BN_MONT_CTX *mont); 621void BN_MONT_CTX_free(BN_MONT_CTX *mont);
diff --git a/src/lib/libcrypto/bn/bn_mont.c b/src/lib/libcrypto/bn/bn_mont.c
index eeac046826..45e312a3a6 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.26 2017/01/21 11:00:46 beck Exp $ */ 1/* $OpenBSD: bn_mont.c,v 1.27 2021/12/04 16:05:46 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 *
@@ -175,6 +175,12 @@ err:
175 return (ret); 175 return (ret);
176} 176}
177 177
178int
179BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, BN_CTX *ctx)
180{
181 return BN_mod_mul_montgomery(r, a, &mont->RR, mont, ctx);
182}
183
178#ifdef MONT_WORD 184#ifdef MONT_WORD
179static int 185static int
180BN_from_montgomery_word(BIGNUM *ret, BIGNUM *r, BN_MONT_CTX *mont) 186BN_from_montgomery_word(BIGNUM *ret, BIGNUM *r, BN_MONT_CTX *mont)