summaryrefslogtreecommitdiff
path: root/readconf.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2008-11-05 16:20:46 +1100
committerDamien Miller <djm@mindrot.org>2008-11-05 16:20:46 +1100
commit01ed2272a1545336173bf3aef66fbccc3494c8d8 (patch)
treea77f115d3b8964f0b6fcc604f9dea87d15143d7e /readconf.c
parent6f66d34308af787613d5525729953665f26367ee (diff)
- djm@cvs.openbsd.org 2008/11/04 08:22:13
[auth.h auth2.c monitor.c monitor.h monitor_wrap.c monitor_wrap.h] [readconf.c readconf.h servconf.c servconf.h ssh2.h ssh_config.5] [sshconnect2.c sshd_config.5 jpake.c jpake.h schnorr.c auth2-jpake.c] [Makefile.in] Add support for an experimental zero-knowledge password authentication method using the J-PAKE protocol described in F. Hao, P. Ryan, "Password Authenticated Key Exchange by Juggling", 16th Workshop on Security Protocols, Cambridge, April 2008. This method allows password-based authentication without exposing the password to the server. Instead, the client and server exchange cryptographic proofs to demonstrate of knowledge of the password while revealing nothing useful to an attacker or compromised endpoint. This is experimental, work-in-progress code and is presently compiled-time disabled (turn on -DJPAKE in Makefile.inc). "just commit it. It isn't too intrusive." deraadt@
Diffstat (limited to 'readconf.c')
-rw-r--r--readconf.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/readconf.c b/readconf.c
index 7f7bbfee2..ba70d9da0 100644
--- a/readconf.c
+++ b/readconf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: readconf.c,v 1.170 2008/11/03 02:44:41 stevesk Exp $ */ 1/* $OpenBSD: readconf.c,v 1.171 2008/11/04 08:22:13 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -130,7 +130,7 @@ typedef enum {
130 oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, 130 oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly,
131 oSendEnv, oControlPath, oControlMaster, oHashKnownHosts, 131 oSendEnv, oControlPath, oControlMaster, oHashKnownHosts,
132 oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand, 132 oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand,
133 oVisualHostKey, 133 oVisualHostKey, oZeroKnowledgePasswordAuthentication,
134 oDeprecated, oUnsupported 134 oDeprecated, oUnsupported
135} OpCodes; 135} OpCodes;
136 136
@@ -228,6 +228,13 @@ static struct {
228 { "localcommand", oLocalCommand }, 228 { "localcommand", oLocalCommand },
229 { "permitlocalcommand", oPermitLocalCommand }, 229 { "permitlocalcommand", oPermitLocalCommand },
230 { "visualhostkey", oVisualHostKey }, 230 { "visualhostkey", oVisualHostKey },
231#ifdef JPAKE
232 { "zeroknowledgepasswordauthentication",
233 oZeroKnowledgePasswordAuthentication },
234#else
235 { "zeroknowledgepasswordauthentication", oUnsupported },
236#endif
237
231 { NULL, oBadOption } 238 { NULL, oBadOption }
232}; 239};
233 240
@@ -412,6 +419,10 @@ parse_flag:
412 intptr = &options->password_authentication; 419 intptr = &options->password_authentication;
413 goto parse_flag; 420 goto parse_flag;
414 421
422 case oZeroKnowledgePasswordAuthentication:
423 intptr = &options->zero_knowledge_password_authentication;
424 goto parse_flag;
425
415 case oKbdInteractiveAuthentication: 426 case oKbdInteractiveAuthentication:
416 intptr = &options->kbd_interactive_authentication; 427 intptr = &options->kbd_interactive_authentication;
417 goto parse_flag; 428 goto parse_flag;
@@ -1054,6 +1065,7 @@ initialize_options(Options * options)
1054 options->local_command = NULL; 1065 options->local_command = NULL;
1055 options->permit_local_command = -1; 1066 options->permit_local_command = -1;
1056 options->visual_host_key = -1; 1067 options->visual_host_key = -1;
1068 options->zero_knowledge_password_authentication = -1;
1057} 1069}
1058 1070
1059/* 1071/*
@@ -1190,6 +1202,8 @@ fill_default_options(Options * options)
1190 options->permit_local_command = 0; 1202 options->permit_local_command = 0;
1191 if (options->visual_host_key == -1) 1203 if (options->visual_host_key == -1)
1192 options->visual_host_key = 0; 1204 options->visual_host_key = 0;
1205 if (options->zero_knowledge_password_authentication == -1)
1206 options->zero_knowledge_password_authentication = 0;
1193 /* options->local_command should not be set by default */ 1207 /* options->local_command should not be set by default */
1194 /* options->proxy_command should not be set by default */ 1208 /* options->proxy_command should not be set by default */
1195 /* options->user will be set in the main program if appropriate */ 1209 /* options->user will be set in the main program if appropriate */