diff options
author | jsing <> | 2018-06-13 15:05:04 +0000 |
---|---|---|
committer | jsing <> | 2018-06-13 15:05:04 +0000 |
commit | 1385f2adfdeee36db41b61c1294f507d64a60fd1 (patch) | |
tree | da8994f3efae63494777101e1c2874396dfd7b32 /src/lib/libcrypto/ecdsa | |
parent | c914528056cdb126fa0a225f3ee66af21a7caf66 (diff) | |
download | openbsd-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.c | 4 |
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 | } |