diff options
author | Markus Friedl <markus@cvs.openbsd.org> | 2001-12-27 19:54:54 +0000 |
---|---|---|
committer | Markus Friedl <markus@cvs.openbsd.org> | 2001-12-27 19:54:54 +0000 |
commit | 64f8954a83d78ce4dd0748ce2ab9825484de25d1 (patch) | |
tree | c3a2e114d88183df895f5c86fe79cf5952ee18ee | |
parent | 4abf2ad9b8fcd61c0147e8a9d170f10b4f2d9943 (diff) |
auth_rhosts_rsa now accept generic keys.
-rw-r--r-- | usr.bin/ssh/auth-rh-rsa.c | 20 | ||||
-rw-r--r-- | usr.bin/ssh/auth.h | 4 | ||||
-rw-r--r-- | usr.bin/ssh/auth1.c | 4 |
3 files changed, 10 insertions, 18 deletions
diff --git a/usr.bin/ssh/auth-rh-rsa.c b/usr.bin/ssh/auth-rh-rsa.c index 8a486b330a0..e8d22a04190 100644 --- a/usr.bin/ssh/auth-rh-rsa.c +++ b/usr.bin/ssh/auth-rh-rsa.c @@ -13,7 +13,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: auth-rh-rsa.c,v 1.26 2001/11/07 22:41:51 markus Exp $"); +RCSID("$OpenBSD: auth-rh-rsa.c,v 1.27 2001/12/27 19:54:53 markus Exp $"); #include "packet.h" #include "xmalloc.h" @@ -32,16 +32,15 @@ RCSID("$OpenBSD: auth-rh-rsa.c,v 1.26 2001/11/07 22:41:51 markus Exp $"); */ int -auth_rhosts_rsa(struct passwd *pw, const char *client_user, RSA *client_host_key) +auth_rhosts_rsa(struct passwd *pw, const char *client_user, Key *client_host_key) { extern ServerOptions options; const char *canonical_hostname; HostStatus host_status; - Key *client_key; debug("Trying rhosts with RSA host authentication for client user %.100s", client_user); - if (pw == NULL || client_host_key == NULL) + if (pw == NULL || client_host_key == NULL || client_host_key->rsa == NULL) return 0; /* Check if we would accept it using rhosts authentication. */ @@ -53,17 +52,10 @@ auth_rhosts_rsa(struct passwd *pw, const char *client_user, RSA *client_host_key debug("Rhosts RSA authentication: canonical host %.900s", canonical_hostname); - /* wrap the RSA key into a 'generic' key */ - client_key = key_new(KEY_RSA1); - BN_copy(client_key->rsa->e, client_host_key->e); - BN_copy(client_key->rsa->n, client_host_key->n); - - host_status = check_key_in_hostfiles(pw, client_key, canonical_hostname, - _PATH_SSH_SYSTEM_HOSTFILE, + host_status = check_key_in_hostfiles(pw, client_host_key, + canonical_hostname, _PATH_SSH_SYSTEM_HOSTFILE, options.ignore_user_known_hosts ? NULL : _PATH_SSH_USER_HOSTFILE); - key_free(client_key); - if (host_status != HOST_OK) { debug("Rhosts with RSA host authentication denied: unknown or invalid host key"); packet_send_debug("Your host key cannot be verified: unknown or invalid host key."); @@ -72,7 +64,7 @@ auth_rhosts_rsa(struct passwd *pw, const char *client_user, RSA *client_host_key /* A matching host key was found and is known. */ /* Perform the challenge-response dialog with the client for the host key. */ - if (!auth_rsa_challenge_dialog(client_host_key)) { + if (!auth_rsa_challenge_dialog(client_host_key->rsa)) { log("Client on %.800s failed to respond correctly to host authentication.", canonical_hostname); return 0; diff --git a/usr.bin/ssh/auth.h b/usr.bin/ssh/auth.h index 7919919fefa..45d5135d110 100644 --- a/usr.bin/ssh/auth.h +++ b/usr.bin/ssh/auth.h @@ -21,7 +21,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $OpenBSD: auth.h,v 1.25 2001/12/19 07:18:56 deraadt Exp $ + * $OpenBSD: auth.h,v 1.26 2001/12/27 19:54:53 markus Exp $ */ #ifndef AUTH_H #define AUTH_H @@ -91,7 +91,7 @@ int auth_rhosts(struct passwd *, const char *); int auth_rhosts2(struct passwd *, const char *, const char *, const char *); -int auth_rhosts_rsa(struct passwd *, const char *, RSA *); +int auth_rhosts_rsa(struct passwd *, const char *, Key *); int auth_password(Authctxt *, const char *); int auth_rsa(struct passwd *, BIGNUM *); int auth_rsa_challenge_dialog(RSA *); diff --git a/usr.bin/ssh/auth1.c b/usr.bin/ssh/auth1.c index bc62dde5734..9ac43bd6320 100644 --- a/usr.bin/ssh/auth1.c +++ b/usr.bin/ssh/auth1.c @@ -10,7 +10,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: auth1.c,v 1.29 2001/12/27 18:22:16 markus Exp $"); +RCSID("$OpenBSD: auth1.c,v 1.30 2001/12/27 19:54:53 markus Exp $"); #include "xmalloc.h" #include "rsa.h" @@ -209,7 +209,7 @@ do_authloop(Authctxt *authctxt) packet_integrity_check(plen, (4 + ulen) + 4 + elen + nlen, type); authenticated = auth_rhosts_rsa(pw, client_user, - client_host_key->rsa); + client_host_key); key_free(client_host_key); snprintf(info, sizeof info, " ruser %.100s", client_user); |