- dtucker@cvs.openbsd.org 2005/01/17 22:48:39
[sshd.c]
Make debugging output continue after reexec; ok djm@
+ - dtucker@cvs.openbsd.org 2005/01/19 13:11:47
+ [auth-bsdauth.c auth2-chall.c]
+ Have keyboard-interactive code call the drivers even for responses for
+ invalid logins. This allows the drivers themselves to decide how to
+ handle them and prevent leaking information where possible. Existing
+ behaviour for bsdauth is maintained by checking authctxt->valid in the
+ bsdauth driver. Note that any third-party kbdint drivers will now need
+ to be able to handle responses for invalid logins. ok markus@
20050118
- (dtucker) [INSTALL Makefile.in configure.ac survey.sh.in] Implement
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "includes.h"
-RCSID("$OpenBSD: auth-bsdauth.c,v 1.5 2002/06/30 21:59:45 deraadt Exp $");
+RCSID("$OpenBSD: auth-bsdauth.c,v 1.6 2005/01/19 13:11:47 dtucker Exp $");
#ifdef BSD_AUTH
#include "xmalloc.h"
Authctxt *authctxt = ctx;
int authok;
+ if (!authctxt->valid)
+ return -1;
+
if (authctxt->as == 0)
error("bsdauth_respond: no bsd auth session");
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "includes.h"
-RCSID("$OpenBSD: auth2-chall.c,v 1.21 2004/06/01 14:20:45 dtucker Exp $");
+RCSID("$OpenBSD: auth2-chall.c,v 1.22 2005/01/19 13:11:47 dtucker Exp $");
#include "ssh2.h"
#include "auth.h"
}
packet_check_eom();
- if (authctxt->valid) {
- res = kbdintctxt->device->respond(kbdintctxt->ctxt,
- nresp, response);
- } else {
- res = -1;
- }
+ res = kbdintctxt->device->respond(kbdintctxt->ctxt, nresp, response);
for (i = 0; i < nresp; i++) {
memset(response[i], 'r', strlen(response[i]));
switch (res) {
case 0:
/* Success! */
- authenticated = 1;
+ authenticated = authctxt->valid ? 1 : 0;
break;
case 1:
/* Authentication needs further interaction */