summaryrefslogtreecommitdiff
path: root/hostfile.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2000-11-13 22:57:25 +1100
committerDamien Miller <djm@mindrot.org>2000-11-13 22:57:25 +1100
commit0bc1bd814e3c2b5e92d6f595930051960d17f47f (patch)
tree176c7dc2844ecc2c1de0f72d221449556ffa5209 /hostfile.c
parent559d383037b0872fcde4e6c40188b649c574be74 (diff)
- (djm) Merge OpenBSD changes:
- markus@cvs.openbsd.org 2000/11/06 16:04:56 [channels.c channels.h clientloop.c nchan.c serverloop.c] [session.c ssh.c] agent forwarding and -R for ssh2, based on work from jhuuskon@messi.uku.fi - markus@cvs.openbsd.org 2000/11/06 16:13:27 [ssh.c sshconnect.c sshd.c] do not disabled rhosts(rsa) if server port > 1024; from pekkas@netcore.fi - markus@cvs.openbsd.org 2000/11/06 16:16:35 [sshconnect.c] downgrade client to 1.3 if server is 1.4; help from mdb@juniper.net - markus@cvs.openbsd.org 2000/11/09 18:04:40 [auth1.c] typo; from mouring@pconline.com - markus@cvs.openbsd.org 2000/11/12 12:03:28 [ssh-agent.c] off-by-one when removing a key from the agent - markus@cvs.openbsd.org 2000/11/12 12:50:39 [auth-rh-rsa.c auth2.c authfd.c authfd.h] [authfile.c hostfile.c kex.c kex.h key.c key.h myproposal.h] [readconf.c readconf.h rsa.c rsa.h servconf.c servconf.h ssh-add.c] [ssh-agent.c ssh-keygen.1 ssh-keygen.c ssh.1 ssh.c ssh_config] [sshconnect1.c sshconnect2.c sshd.8 sshd.c sshd_config ssh-dss.c] [ssh-dss.h ssh-rsa.c ssh-rsa.h dsa.c dsa.h] add support for RSA to SSH2. please test. there are now 3 types of keys: RSA1 is used by ssh-1 only, RSA and DSA are used by SSH2. you can use 'ssh-keygen -t rsa -f ssh2_rsa_file' to generate RSA keys for SSH2 and use the RSA keys for hostkeys or for user keys. SSH2 RSA or DSA keys are added to .ssh/authorised_keys2 as before. - (djm) Fix up Makefile and Redhat init script to create RSA host keys - (djm) Change to interim version
Diffstat (limited to 'hostfile.c')
-rw-r--r--hostfile.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/hostfile.c b/hostfile.c
index 9c03a4688..3b0f286fd 100644
--- a/hostfile.c
+++ b/hostfile.c
@@ -36,7 +36,7 @@
36 */ 36 */
37 37
38#include "includes.h" 38#include "includes.h"
39RCSID("$OpenBSD: hostfile.c,v 1.20 2000/09/07 20:27:51 deraadt Exp $"); 39RCSID("$OpenBSD: hostfile.c,v 1.21 2000/11/12 19:50:37 markus Exp $");
40 40
41#include "packet.h" 41#include "packet.h"
42#include "match.h" 42#include "match.h"
@@ -54,15 +54,13 @@ RCSID("$OpenBSD: hostfile.c,v 1.20 2000/09/07 20:27:51 deraadt Exp $");
54int 54int
55hostfile_read_key(char **cpp, unsigned int *bitsp, Key *ret) 55hostfile_read_key(char **cpp, unsigned int *bitsp, Key *ret)
56{ 56{
57 unsigned int bits;
58 char *cp; 57 char *cp;
59 58
60 /* Skip leading whitespace. */ 59 /* Skip leading whitespace. */
61 for (cp = *cpp; *cp == ' ' || *cp == '\t'; cp++) 60 for (cp = *cpp; *cp == ' ' || *cp == '\t'; cp++)
62 ; 61 ;
63 62
64 bits = key_read(ret, &cp); 63 if (key_read(ret, &cp) != 1)
65 if (bits == 0)
66 return 0; 64 return 0;
67 65
68 /* Skip trailing whitespace. */ 66 /* Skip trailing whitespace. */
@@ -71,14 +69,14 @@ hostfile_read_key(char **cpp, unsigned int *bitsp, Key *ret)
71 69
72 /* Return results. */ 70 /* Return results. */
73 *cpp = cp; 71 *cpp = cp;
74 *bitsp = bits; 72 *bitsp = key_size(ret);
75 return 1; 73 return 1;
76} 74}
77 75
78int 76int
79auth_rsa_read_key(char **cpp, unsigned int *bitsp, BIGNUM * e, BIGNUM * n) 77auth_rsa_read_key(char **cpp, unsigned int *bitsp, BIGNUM * e, BIGNUM * n)
80{ 78{
81 Key *k = key_new(KEY_RSA); 79 Key *k = key_new(KEY_RSA1);
82 int ret = hostfile_read_key(cpp, bitsp, k); 80 int ret = hostfile_read_key(cpp, bitsp, k);
83 BN_copy(e, k->rsa->e); 81 BN_copy(e, k->rsa->e);
84 BN_copy(n, k->rsa->n); 82 BN_copy(n, k->rsa->n);
@@ -89,7 +87,7 @@ auth_rsa_read_key(char **cpp, unsigned int *bitsp, BIGNUM * e, BIGNUM * n)
89int 87int
90hostfile_check_key(int bits, Key *key, const char *host, const char *filename, int linenum) 88hostfile_check_key(int bits, Key *key, const char *host, const char *filename, int linenum)
91{ 89{
92 if (key == NULL || key->type != KEY_RSA || key->rsa == NULL) 90 if (key == NULL || key->type != KEY_RSA1 || key->rsa == NULL)
93 return 1; 91 return 1;
94 if (bits != BN_num_bits(key->rsa->n)) { 92 if (bits != BN_num_bits(key->rsa->n)) {
95 log("Warning: %s, line %d: keysize mismatch for host %s: " 93 log("Warning: %s, line %d: keysize mismatch for host %s: "