summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2010-12-05 09:01:47 +1100
committerDarren Tucker <dtucker@zip.com.au>2010-12-05 09:01:47 +1100
commitadab6f12992c522e1208fa2bdf89ce572840ccf8 (patch)
tree852a4d723fce1154d227680ec9ca7764153d46ba
parent7336b904ffab8c8b412b8ef19d7d0387a584ec58 (diff)
- djm@cvs.openbsd.org 2010/12/03 23:55:27
[auth-rsa.c] move check for revoked keys to run earlier (in auth_rsa_key_allowed) bz#1829; patch from ldv AT altlinux.org; ok markus@
-rw-r--r--ChangeLog4
-rw-r--r--auth-rsa.c9
2 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 26c9b477..a8aeacc5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,10 @@
check that g^x^q === 1 mod p; recommended by JPAKE author Feng Hao
(this code is still disabled, but apprently people are treating it as
a reference implementation)
+ - djm@cvs.openbsd.org 2010/12/03 23:55:27
+ [auth-rsa.c]
+ move check for revoked keys to run earlier (in auth_rsa_key_allowed)
+ bz#1829; patch from ldv AT altlinux.org; ok markus@
20101204
- (djm) [openbsd-compat/bindresvport.c] Use arc4random_uniform(range)
diff --git a/auth-rsa.c b/auth-rsa.c
index 56702d13..4edaab05 100644
--- a/auth-rsa.c
+++ b/auth-rsa.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: auth-rsa.c,v 1.78 2010/07/13 23:13:16 djm Exp $ */
+/* $OpenBSD: auth-rsa.c,v 1.79 2010/12/03 23:55:27 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -94,9 +94,6 @@ auth_rsa_verify_response(Key *key, BIGNUM *challenge, u_char response[16])
MD5_CTX md;
int len;
- if (auth_key_is_revoked(key))
- return 0;
-
/* don't allow short keys */
if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
error("auth_rsa_verify_response: RSA modulus too small: %d < minimum %d bits",
@@ -249,6 +246,10 @@ auth_rsa_key_allowed(struct passwd *pw, BIGNUM *client_n, Key **rkey)
"actual %d vs. announced %d.",
file, linenum, BN_num_bits(key->rsa->n), bits);
+ /* Never accept a revoked key */
+ if (auth_key_is_revoked(key))
+ break;
+
/* We have found the desired key. */
/*
* If our options do not allow this key to be used,