diff options
Diffstat (limited to 'src/lib/libcrypto/bn/bn_blind.c')
-rw-r--r-- | src/lib/libcrypto/bn/bn_blind.c | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/src/lib/libcrypto/bn/bn_blind.c b/src/lib/libcrypto/bn/bn_blind.c index 996b1d6965..e126865754 100644 --- a/src/lib/libcrypto/bn/bn_blind.c +++ b/src/lib/libcrypto/bn/bn_blind.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_blind.c,v 1.41 2023/08/09 08:39:46 tb Exp $ */ | 1 | /* $OpenBSD: bn_blind.c,v 1.42 2023/08/09 09:09:24 tb Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -131,8 +131,10 @@ struct bn_blinding_st { | |||
131 | const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); | 131 | const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); |
132 | }; | 132 | }; |
133 | 133 | ||
134 | static BN_BLINDING * | 134 | BN_BLINDING * |
135 | BN_BLINDING_new(const BIGNUM *e, const BIGNUM *mod) | 135 | BN_BLINDING_new(const BIGNUM *e, BIGNUM *mod, BN_CTX *ctx, |
136 | int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | ||
137 | const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), BN_MONT_CTX *m_ctx) | ||
136 | { | 138 | { |
137 | BN_BLINDING *ret = NULL; | 139 | BN_BLINDING *ret = NULL; |
138 | 140 | ||
@@ -155,6 +157,11 @@ BN_BLINDING_new(const BIGNUM *e, const BIGNUM *mod) | |||
155 | ret->counter = BN_BLINDING_COUNTER - 1; | 157 | ret->counter = BN_BLINDING_COUNTER - 1; |
156 | CRYPTO_THREADID_current(&ret->tid); | 158 | CRYPTO_THREADID_current(&ret->tid); |
157 | 159 | ||
160 | if (bn_mod_exp != NULL) | ||
161 | ret->bn_mod_exp = bn_mod_exp; | ||
162 | if (m_ctx != NULL) | ||
163 | ret->m_ctx = m_ctx; | ||
164 | |||
158 | return ret; | 165 | return ret; |
159 | 166 | ||
160 | err: | 167 | err: |
@@ -250,26 +257,3 @@ BN_BLINDING_thread_id(BN_BLINDING *b) | |||
250 | { | 257 | { |
251 | return &b->tid; | 258 | return &b->tid; |
252 | } | 259 | } |
253 | |||
254 | BN_BLINDING * | ||
255 | BN_BLINDING_create_param(const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, | ||
256 | int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | ||
257 | const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), BN_MONT_CTX *m_ctx) | ||
258 | { | ||
259 | BN_BLINDING *ret = NULL; | ||
260 | |||
261 | if ((ret = BN_BLINDING_new(e, m)) == NULL) | ||
262 | goto err; | ||
263 | |||
264 | if (bn_mod_exp != NULL) | ||
265 | ret->bn_mod_exp = bn_mod_exp; | ||
266 | if (m_ctx != NULL) | ||
267 | ret->m_ctx = m_ctx; | ||
268 | |||
269 | return ret; | ||
270 | |||
271 | err: | ||
272 | BN_BLINDING_free(ret); | ||
273 | |||
274 | return NULL; | ||
275 | } | ||