summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/rsa/rsa_blinding.c
diff options
context:
space:
mode:
authortb <>2023-08-09 12:09:06 +0000
committertb <>2023-08-09 12:09:06 +0000
commitf6afd562e52c37d3b28855caea8e1d7b0cf643c5 (patch)
treef4fecd7ecfa8d410a74dcbae6bc89fcfc2d35975 /src/lib/libcrypto/rsa/rsa_blinding.c
parent5beb145459dc0be8af47bc0b606d828fbe0e0910 (diff)
downloadopenbsd-f6afd562e52c37d3b28855caea8e1d7b0cf643c5.tar.gz
openbsd-f6afd562e52c37d3b28855caea8e1d7b0cf643c5.tar.bz2
openbsd-f6afd562e52c37d3b28855caea8e1d7b0cf643c5.zip
Rework BN_BLINDING to use pthread_t directly
Instead of CRYPTO_THREADID, which passes pthread_via through unsigned long, we can use pthread_self() and pthread_equal() directly. This commit keeps using the awkward 'local' nomenclature as that is used throughout the rsa code. This will be changed after the blinding code will have been fully merged into rsa_blinding.c. ok jsing
Diffstat (limited to 'src/lib/libcrypto/rsa/rsa_blinding.c')
-rw-r--r--src/lib/libcrypto/rsa/rsa_blinding.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_blinding.c b/src/lib/libcrypto/rsa/rsa_blinding.c
index e6fd67242d..cac5bd91d2 100644
--- a/src/lib/libcrypto/rsa/rsa_blinding.c
+++ b/src/lib/libcrypto/rsa/rsa_blinding.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_blinding.c,v 1.2 2023/08/09 09:26:43 tb Exp $ */ 1/* $OpenBSD: rsa_blinding.c,v 1.3 2023/08/09 12:09:06 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 *
@@ -109,6 +109,7 @@
109 * [including the GNU Public Licence.] 109 * [including the GNU Public Licence.]
110 */ 110 */
111 111
112#include <pthread.h>
112#include <stdio.h> 113#include <stdio.h>
113 114
114#include <openssl/opensslconf.h> 115#include <openssl/opensslconf.h>
@@ -126,7 +127,7 @@ struct bn_blinding_st {
126 BIGNUM *Ai; 127 BIGNUM *Ai;
127 BIGNUM *e; 128 BIGNUM *e;
128 BIGNUM *mod; 129 BIGNUM *mod;
129 CRYPTO_THREADID tid; 130 pthread_t tid;
130 int counter; 131 int counter;
131 BN_MONT_CTX *m_ctx; 132 BN_MONT_CTX *m_ctx;
132 int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 133 int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
@@ -157,7 +158,7 @@ BN_BLINDING_new(const BIGNUM *e, const BIGNUM *mod, BN_CTX *ctx,
157 158
158 /* Update on first use. */ 159 /* Update on first use. */
159 ret->counter = BN_BLINDING_COUNTER - 1; 160 ret->counter = BN_BLINDING_COUNTER - 1;
160 CRYPTO_THREADID_current(&ret->tid); 161 ret->tid = pthread_self();
161 162
162 if (bn_mod_exp != NULL) 163 if (bn_mod_exp != NULL)
163 ret->bn_mod_exp = bn_mod_exp; 164 ret->bn_mod_exp = bn_mod_exp;
@@ -254,10 +255,10 @@ BN_BLINDING_invert(BIGNUM *n, const BIGNUM *inv, BN_BLINDING *b, BN_CTX *ctx)
254 return BN_mod_mul(n, n, inv, b->mod, ctx); 255 return BN_mod_mul(n, n, inv, b->mod, ctx);
255} 256}
256 257
257CRYPTO_THREADID * 258int
258BN_BLINDING_thread_id(BN_BLINDING *b) 259BN_BLINDING_is_local(BN_BLINDING *b)
259{ 260{
260 return &b->tid; 261 return pthread_equal(pthread_self(), b->tid) != 0;
261} 262}
262 263
263static BIGNUM * 264static BIGNUM *
@@ -320,7 +321,6 @@ RSA_setup_blinding(RSA *rsa, BN_CTX *in_ctx)
320 RSAerror(ERR_R_BN_LIB); 321 RSAerror(ERR_R_BN_LIB);
321 goto err; 322 goto err;
322 } 323 }
323 CRYPTO_THREADID_current(BN_BLINDING_thread_id(ret));
324 324
325 err: 325 err:
326 BN_CTX_end(ctx); 326 BN_CTX_end(ctx);