summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ecdsa
diff options
context:
space:
mode:
authorjsing <>2018-06-13 15:05:04 +0000
committerjsing <>2018-06-13 15:05:04 +0000
commit1385f2adfdeee36db41b61c1294f507d64a60fd1 (patch)
treeda8994f3efae63494777101e1c2874396dfd7b32 /src/lib/libcrypto/ecdsa
parentc914528056cdb126fa0a225f3ee66af21a7caf66 (diff)
downloadopenbsd-1385f2adfdeee36db41b61c1294f507d64a60fd1.tar.gz
openbsd-1385f2adfdeee36db41b61c1294f507d64a60fd1.tar.bz2
openbsd-1385f2adfdeee36db41b61c1294f507d64a60fd1.zip
Avoid a timing side-channel leak when generating DSA and ECDSA signatures.
This is caused by an attempt to do fast modular arithmetic, which introduces branches that leak information regarding secret values. Issue identified and reported by Keegan Ryan of NCC Group. ok beck@ tb@
Diffstat (limited to 'src/lib/libcrypto/ecdsa')
-rw-r--r--src/lib/libcrypto/ecdsa/ecs_ossl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/libcrypto/ecdsa/ecs_ossl.c b/src/lib/libcrypto/ecdsa/ecs_ossl.c
index 4ac140a020..0f594aa86e 100644
--- a/src/lib/libcrypto/ecdsa/ecs_ossl.c
+++ b/src/lib/libcrypto/ecdsa/ecs_ossl.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ecs_ossl.c,v 1.10 2018/04/28 14:17:56 tb Exp $ */ 1/* $OpenBSD: ecs_ossl.c,v 1.11 2018/06/13 15:05:04 jsing Exp $ */
2/* 2/*
3 * Written by Nils Larsch for the OpenSSL project 3 * Written by Nils Larsch for the OpenSSL project
4 */ 4 */
@@ -290,7 +290,7 @@ ecdsa_do_sign(const unsigned char *dgst, int dgst_len,
290 ECDSAerror(ERR_R_BN_LIB); 290 ECDSAerror(ERR_R_BN_LIB);
291 goto err; 291 goto err;
292 } 292 }
293 if (!BN_mod_add_quick(s, tmp, m, order)) { 293 if (!BN_mod_add(s, tmp, m, order, ctx)) {
294 ECDSAerror(ERR_R_BN_LIB); 294 ECDSAerror(ERR_R_BN_LIB);
295 goto err; 295 goto err;
296 } 296 }